Имя: Пароль:
1C
1С v8
Обработка проведения
0 karisha
 
20.10.11
14:50
Доброе время суток всем.
У меня вопрос по поводу проведения по рег.бухгалтерии: как можно сгруппировать проводки?

Первая проводка:
  СчетДт=XXX - СчетКт=YYY - Сумма=1000
Вторая проводка идентичная:
  СчетДт=XXX - СчетКт=YYY - Сумма=1000

Мне нужно: СчетДт=XXX - СчетКт=YYY - Сумма=2000

Вот код:
Для каждого СтрокаТЧ из ТаблицаНоменклатура Цикл

  Проводки = Движения.РегистрОсновногоПланаСчетов;
  Проводка = Проводки.Добавить();
  Проводка.Период = Дата;
  Проводка.Организация = Организация;
  Проводка.Содержание = "НДС с продаж";
  Проводка.СчетДт = СчетУчетаКонтрагента;
  Проводка.СубконтоДт[СчетУчетаКонтрагента.ВидыСубконто[0].ВидСубконто] = Контрагент;
   
           Проводка.СубконтоДт[СчетУчетаКонтрагента.ВидыСубконто[1].ВидСубконто] = ДоговорКонтрагента;

  Проводка.СчетКт = СтрокаТЧ.СчетУчетаНДС;
           Проводка.СубконтоКт[СтрокаТЧ.СчетУчетаНДС.ВидыСубконто[0].ВидСубконто] = СтрокаТЧ.СтавкаНДС;
           
           
  Проводка.Сумма = СтрокаТЧ.СуммаНДС;
  Проводки.Записать();

КонецЦикла;
1 lubja
 
20.10.11
14:57
запросом выбрать нужные данные, сгруппировать и уже проходиться по результату запроса...
2 Starhan
 
20.10.11
14:58
вариант 1.
Сгруппировать таблицу в запросе, по интересующим тебя полям группировки.
И обходить ее.

Вариант 2.
Выгрузить ТЧ в ТЗ использовать метод свернуть()
Обойти полученную таблицу
3 Irbis
 
20.10.11
14:59
Выгружай движения в ТЗ и сворачивай, потом обратно, причем можно сделать в модуле набора записей, чтобы всем документам не прописывать такое
4 karisha
 
20.10.11
15:01
ТЗ - ТаблицаНоменклатура.
Свернуть() - покажите простой пример.
Спасибо.
5 Irbis
 
20.10.11
15:02
РегистрБухгалтерииНаборЗаписей.<Имя регистра бухгалтерии> (AccountingRegisterRecordSet.<Имя регистра бухгалтерии>)
Выгрузить (Unload)
Синтаксис:
Выгрузить(<Строки>, <Колонки>)
Параметры:
<Строки> (необязательный)
Тип: Массив. Массив строк для выгрузки. Если не указан, выгружаются все строки набора записей.
<Колонки> (необязательный)
Тип: Строка. Список колонок для выгрузки в формате: "Колонка1, Колонка2...". Если список не задан, то будут выгружены все колонки.
Возвращаемое значение:
Тип: ТаблицаЗначений.
Описание:
Создает таблицу значений и копирует в нее записи набора. Структура полученной таблицы совпадает со структурой набора записей. Значения субконто выгружаются вместе с видами субконто. Для каждого субконто создается пара колонок с идентификаторами вида ВидСубконто<Номер>, Субконто<Номер>, для регистра не поддерживающего корреспонденцию, и ВидСубконтоДт<Номер>, СубконтоДт<Номер>, ВидСубконтоКт<Номер>, СубконтоКт<Номер>, для регистра поддерживающего корреспонденцию. При этом номера <Номер> могут не совпадать с номерами видов субконто на соответствующем счете.
Пример:
Рег = РегистрыБухгалтерии.Хозрасчетный;
НаборЗаписей = Рег.СоздатьНаборЗаписей();
НаборЗаписей.Отбор.Документ.Значение = Ссылка;
ОсновныеДанные = НаборЗаписей.Выгрузить();
6 karisha
 
20.10.11
15:03
Всё понял и нашёл. Спасибо
7 Starhan
 
20.10.11
15:05
1. Ахтунг
2. Прочитай Радченко.
8 Starhan
 
20.10.11
15:06
ТЗ = Таблица значений, общепринятое сокращение в 1С.
9 karisha
 
22.10.11
12:21
(2) C первым вариантом разобрался, но хотелось бы понять второй
Вот код:

ТаблицаПоНоменклатуре = РезультатЗапросаПоНоменклатуре.Выгрузить();
ТаблицаПоНоменклатуре.Свернуть("Номенклатура,ЕдиницаИзмерения,СтавкаНДС,Сумма,СуммаНДС,СчетУчета,СчетУчетаНДС,СчетУчетаРасходов,СчетУчетаДоходов,СтатьяЗатрат");

       Для каждого стр из ТаблицаПоНоменклатуре Цикл
           
           Проводка = Проводки.Добавить();
           Проводка.Период = Дата;
           Проводка.Организация = СтруктураШапкиДокумента.Организация;
           Проводка.Содержание = "Реализация, продажа товаров";
           Проводка.СчетДт = СтруктураШапкиДокумента.СчетУчетаКонтрагента;
           БухгалтерскийУчет.УстановитьСубконто(Проводка.СчетДт, Проводка.СубконтоДт, "Контрагенты", СтруктураШапкиДокумента.Контрагент);
           БухгалтерскийУчет.УстановитьСубконто(Проводка.СчетДт, Проводка.СубконтоДт, "Договора", СтруктураШапкиДокумента.ДоговорКонтрагента);
           Проводка.СчетКт = стр.СчетУчетаДоходов;
           БухгалтерскийУчет.УстановитьСубконто(Проводка.СчетКт, Проводка.СубконтоКт,"СтавкиНДС", стр.СтавкаНДС);
           
           Проводка.Сумма = стр.Сумма;
           
       КонецЦикла;



Но в результате та же самая история.