0
Андрей89
19.01.14
✎
12:19
|
Добрый день, форумчане!
Прошу вашей помощи при работе с бухгалтерскими итогами в бухгалтерии 7.7. Задача стоит в следующем: отобрать кредитовые обороты 10го счета в корреспонденции с 20м с отбором по субконто 20го счета (списание материалов в производство на конкретную продукцию). Написал следующий код, но почему то обороты рассчитывает без отбора по субконто. Например списывали за период один материал на 2 изделия. БИ.КО(3) возвращает сумму списанного материала на оба изделия, а мне нужно по каждому.
БИ=СоздатьОбъект("БухгалтерскиеИтоги");
БИ.ИспользоватьСубконто("Материалы");
БИ.ИспользоватьСубконто("МестаХранения");
БИ.ИспользоватьКорСубконто("ВидыНоменклатуры");
БИ.ВключатьСубсчета(1,1);
Если БИ.ВыполнитьЗапрос(НачДата,КонДата,"10", "20",,2) = 0 Тогда
Предупреждение("Не удается выполнить запрос к бухгалтерским итогам!");
Возврат;
КонецЕсли;
ТабЗнач = СоздатьОбъект("ТаблицаЗначений");
ТабЗнач.НоваяКолонка("Затрата");
ТабЗнач.НоваяКолонка("ЕдИзм");
ТабЗнач.НоваяКолонка("Сумма");
ТабЗнач.НоваяКолонка("Количество");
ТабЗнач.НоваяКолонка("Цена");
СуммаИтог = 0;
БИ.ВыбратьСубконто(1);
Пока БИ.ПолучитьСубконто()=1 Цикл
// выводим итоги по субконто
БИ.ВыбратьКорСубконто(1);
Пока БИ.ПолучитьКорСубконто()=1 Цикл
Если (ПустоеЗначение(ОбъектСтроительства) = 0) И (БИ.КорСубконто(1) <> ОбъектСтроительства) Тогда
Продолжить;
КонецЕсли;
Если (ПустоеЗначение(МОЛ) = 0) И (БИ.Субконто(2).МОЛ <> МОЛ) Тогда
Продолжить;
КонецЕсли;
ТабЗнач.НоваяСтрока();
ТабЗнач.Затрата = БИ.Субконто(1);
ТабЗнач.ЕдИзм = ТабЗнач.Затрата.ЕдиницаИзмерения;
ТабЗнач.Сумма = Формат(БИ.КО(1), "Ч15.2");
ТабЗнач.Количество = Формат(БИ.КО(3), "Ч15.2");
ТабЗнач.Цена = Формат(?(БИ.КО(3) = 0, 0, БИ.КО(1)/БИ.КО(3)), "Ч15.2");
СуммаИтог = СуммаИтог + ТабЗнач.Сумма;
КонецЦикла;
КонецЦикла;
|
|