Имя: Пароль:
1C
1C 7.7
v7: Глючит простенький отчет.
,
0 Zombi
 
03.10.11
09:27
Есть база бухгалтерия 7.7, используется исключительно для учета выданных денег из кассы и возврату этих денег в кассу в разрезе подразделений и статей затрат, есть отчет, который выводит 2 таблицы - расходы и возвраты. Происходит такой глюк: формирую отчет, несколько раз он отображает верные данные, но иногда в выводимой таблице цифры смещаются относительно колонок. Отчет делается бух запросом к счетам и перебором по субконто, то есть получается иногда не все субконто выбираются. Почему может быть так?
Код отчета:

Процедура Сформировать()
   
   Таб = СоздатьОбъект("Таблица");
   Таб.ИсходнаяТаблица("Таблица");
   ТабВозвраты = СоздатьОбъект("Таблица");
   ТабВозвраты.ИсходнаяТаблица("ТаблицаВозвраты");
   Таб.ВывестиСекцию("Заголовок|Строки");
   ТабВозвраты.ВывестиСекцию("Заголовок|Строки");
   БИ=СоздатьОбъект("БухгалтерскиеИтоги");
   БИ.ИспользоватьСубконто(ВидыСубконто.ПрочиеДоходыИРасходы);
   БИ.ИспользоватьКорСубконто(ВидыСубконто.Подразделения);
   КорСубконтоПервыйРаз = 1;
   БИ.ВыполнитьЗапрос(НачДата,КонДата,"91.2,91.1","50.1",,2,);
   БИ.ВыбратьСубконто(1,1,,,,"Наименование",);
   Пока БИ.ПолучитьСубконто()=1 Цикл
       Если КорСубконтоПервыйРаз = 1 Тогда
           БИ.ВыбратьКорСубконто(1,1,,,"Наименование",);
           Пока БИ.ПолучитьКорСубконто(1)=1 Цикл
               ЗаголовокСтолбца = БИ.КорСубконто();
               Таб.ПрисоединитьСекцию("Заголовок|Столбцы");
               ТабВозвраты.ПрисоединитьСекцию("Заголовок|Столбцы");
               КорСубконтоПервыйРаз = 0;
           КонецЦикла;
       КонецЕсли;
       ЗаголовокСтроки = БИ.Субконто();
       Таб.ВывестиСекцию("Строка|Строки");
       ТабВозвраты.ВывестиСекцию("Строка|Строки");
       БИ.ВыбратьКорСубконто(1,1,,,"Наименование",);
       Пока БИ.ПолучитьКорСубконто(1)=1 Цикл
           Значение = ?(БИ.КорДО() = 0,"",БИ.КорДО());
           Если БИ.Счет.Код = "91.2" Тогда
               Таб.ПрисоединитьСекцию("Строка|Столбцы");
           ИначеЕсли БИ.Счет.Код = "91.1" Тогда
               ТабВозвраты.ПрисоединитьСекцию("Строка|Столбцы");
           КонецЕсли;
       КонецЦикла;
   КонецЦикла;
   
   Таб.Показать("Расходы");
   ТабВозвраты.Показать("Возвраты");
   
КонецПроцедуры


КонДата = КонМесяца(ТекущаяДата());
НачДата = НачМесяца(ТекущаяДата());
1 CrecerRu
 
03.10.11
10:46
(0) потому что ты шапку выводишь только один раз для первого субконто.

например, в цикле ты получаешь статью "Прочая статья 1". она корреспондирует со статьми на 50.1 - "Статься ДС1" и "Статься ДС2". Таким образом в шапке у тебя два стобца.

А в цикле по данным попадается статья "Прочая статья 2", которая корреспондирует с тремя статьями ДС. В результате, в шапке два столбца, а в данных 3.
2 Zombi
 
03.10.11
10:47
(1) Спасибо, я уже переписал отчет.