Отчеты в ЗиК
18.06.2007
10:09
#1
"Здравствуйте! Народ, нужна помощь. При выводе таблицы на печать происходит смещение секций. Программный код такой:
…Спр = СоздатьОбъект("Справочник.Должности");
Для Ном = 1 по Метаданные.ВидРасчета() цикл
катВР = Метаданные.ВидРасчета(Ном);
ВР = ВидРасчета.ПолучитьАтрибут(катВР.Идентификатор);
//ВР = ВидРасчета.ПолучитьАтрибут("ПроизвольнаяДоплата29");
Запрос.Получить(ВР,);
Если Запрос.Результат<>0 тогда
Таб.ВывестиСекцию("Список|Начисления");
Спр.ПорядокКодов();
Спр.ВыбратьЭлементы();
ТаблицаДляОтчета = СоздатьОбъект("ТаблицаЗначений");
ТаблицаДляОтчета.НоваяКолонка("Кат");
ТаблицаДляОтчета.НоваяКолонка("Сум");
ТаблицаДляОтчетаФОТ = СоздатьОбъект("ТаблицаЗначений");
ТаблицаДляОтчетаФОТ.НоваяКолонка("Кат");
ТаблицаДляОтчетаФОТ.НоваяКолонка("СумФОТ");
Пока Спр.ПолучитьЭлемент() = 1 цикл
Запрос.Получить(ВР, Спр.Категория);
ТаблицаДляОтчета.НоваяСтрока();
ТаблицаДляОтчета.Кат = Запрос.Категория;
ТаблицаДляОтчета.Сум = Запрос.СуммаВсеНачисления;
ТаблицаДляОтчетаФОТ.НоваяСтрока();
ТаблицаДляОтчетаФОТ.Кат = Запрос.Категория;
ТаблицаДляОтчетаФОТ.СумФОТ = Запрос.СуммаФОТ;
КонецЦикла;
ТаблицаДляОтчета.Свернуть("Кат, Сум", "Кат");
ТаблицаДляОтчета.ВыбратьСтроки();
ТаблицаДляОтчетаФОТ.Свернуть("Кат, СумФОТ", "Кат");
ТаблицаДляОтчетаФОТ.ВыбратьСтроки();
Пока ТаблицаДляОтчета.ПолучитьСтроку() = 1 цикл
Таб.ПрисоединитьСекцию("Список|Категория");
КонецЦикла;
Пока ТаблицаДляОтчетаФОТ.ПолучитьСтроку() = 1 цикл
Таб.ПрисоединитьСекцию("Список|КатегорияФОТ");
КонецЦикла;
Запрос.Получить(ВР,);
СумИтог = Запрос.СуммаВсеНачисления;
Таб.ПрисоединитьСекцию("Список|Итого");
КонецЕсли;
КонецЦикла;
Получается так, что если в определенном виде отсутствует какая-либо категория, то он не берет ее и даже не ставит нули, а на это место встает ячейка из другой секции. Проверку на пустые строки и значения делала, ничего не помогает. Если не сворачивать таблицу значений, то все нормально, но тогда 1с перебирает эти значения в цикле столько раз сколько видов расчета. Уже голова кипит. А отчет сегодня сдавать. Помогите, пожалуйста!!!!!!!!!!!!!!!!!
"
…Спр = СоздатьОбъект("Справочник.Должности");
Для Ном = 1 по Метаданные.ВидРасчета() цикл
катВР = Метаданные.ВидРасчета(Ном);
ВР = ВидРасчета.ПолучитьАтрибут(катВР.Идентификатор);
//ВР = ВидРасчета.ПолучитьАтрибут("ПроизвольнаяДоплата29");
Запрос.Получить(ВР,);
Если Запрос.Результат<>0 тогда
Таб.ВывестиСекцию("Список|Начисления");
Спр.ПорядокКодов();
Спр.ВыбратьЭлементы();
ТаблицаДляОтчета = СоздатьОбъект("ТаблицаЗначений");
ТаблицаДляОтчета.НоваяКолонка("Кат");
ТаблицаДляОтчета.НоваяКолонка("Сум");
ТаблицаДляОтчетаФОТ = СоздатьОбъект("ТаблицаЗначений");
ТаблицаДляОтчетаФОТ.НоваяКолонка("Кат");
ТаблицаДляОтчетаФОТ.НоваяКолонка("СумФОТ");
Пока Спр.ПолучитьЭлемент() = 1 цикл
Запрос.Получить(ВР, Спр.Категория);
ТаблицаДляОтчета.НоваяСтрока();
ТаблицаДляОтчета.Кат = Запрос.Категория;
ТаблицаДляОтчета.Сум = Запрос.СуммаВсеНачисления;
ТаблицаДляОтчетаФОТ.НоваяСтрока();
ТаблицаДляОтчетаФОТ.Кат = Запрос.Категория;
ТаблицаДляОтчетаФОТ.СумФОТ = Запрос.СуммаФОТ;
КонецЦикла;
ТаблицаДляОтчета.Свернуть("Кат, Сум", "Кат");
ТаблицаДляОтчета.ВыбратьСтроки();
ТаблицаДляОтчетаФОТ.Свернуть("Кат, СумФОТ", "Кат");
ТаблицаДляОтчетаФОТ.ВыбратьСтроки();
Пока ТаблицаДляОтчета.ПолучитьСтроку() = 1 цикл
Таб.ПрисоединитьСекцию("Список|Категория");
КонецЦикла;
Пока ТаблицаДляОтчетаФОТ.ПолучитьСтроку() = 1 цикл
Таб.ПрисоединитьСекцию("Список|КатегорияФОТ");
КонецЦикла;
Запрос.Получить(ВР,);
СумИтог = Запрос.СуммаВсеНачисления;
Таб.ПрисоединитьСекцию("Список|Итого");
КонецЕсли;
КонецЦикла;
Получается так, что если в определенном виде отсутствует какая-либо категория, то он не берет ее и даже не ставит нули, а на это место встает ячейка из другой секции. Проверку на пустые строки и значения делала, ничего не помогает. Если не сворачивать таблицу значений, то все нормально, но тогда 1с перебирает эти значения в цикле столько раз сколько видов расчета. Уже голова кипит. А отчет сегодня сдавать. Помогите, пожалуйста!!!!!!!!!!!!!!!!!
"
Читают тему
(гостей: 1)