Здравствуйте, подскажите как реализовать вывод печатной формы? Сам сделал следующее, но последний элемент в каждом подразделении не выводит. сначала проверяю на заполненность организации и предприятия, потом сверяю текущую строку с предыдущей. Если строки одинаковы и есть "причина отказа", то в строку добавляется "причина отказа" через слэш.
Код 1C v 8.2 УП
НомерСтраницы = 1;
ЗаголовокТаблицы = Макет.ПолучитьОбласть("ЗаголовокТЧ");
ЗаголовокТаблицы.Параметры.НомерСтраницы = "Страница " + НомерСтраницы;
ТабДок.Вывести(ЗаголовокТаблицы);
ОрганизацияТЧ = Справочники.Организации.ПустаяСсылка();
ЦФОТЧ = Справочники.Подразделения.ПустаяСсылка();
НоменклатураТЧ = Справочники.Номенклатура.ПустаяСсылка();
ХарактеристикаНоменклатурыТЧ = Справочники.ХарактеристикиНоменклатуры.ПустаяСсылка();
СтатьяЗатратТЧ = Справочники.СтатьиЗатрат.ПустаяСсылка();
Номер = 0;
Разрыв = 1;
КоличествоСтрок = 1;
Для Каждого Строка из ЗапросНоменклатура Цикл
Если ТабДок.КоличествоСтраниц()<>Разрыв Тогда
НомерСтраницы = НомерСтраницы + 1;
ТабДок.ВывестиГоризонтальныйРазделительСтраниц();
ЗаголовокТаблицы.Параметры.НомерСтраницы = "Страница " + НомерСтраницы;
ТабДок.Вывести(ЗаголовокТаблицы);
Разрыв = ТабДок.КоличествоСтраниц();
КонецЕсли;
Если Не ЗначениеЗаполнено(Организация) и Не ЗначениеЗаполнено(ПодразделениеЦФО) Тогда
Если ОрганизацияТЧ <> Строка.Организация Тогда
ОргТаб = Макет.ПолучитьОбласть("Организация");
ОргТаб.Параметры.ОрганизацияТаб = Строка.Организация;
ТабДок.Вывести(ОргТаб);
КонецЕсли;
Если ЦФОТЧ <> Строка.ЦФО Тогда
ЦФОТаб = Макет.ПолучитьОбласть("Подразделение");
ЦФОТаб.Параметры.ПодразделениеТаб = Строка.ЦФО;
ТабДок.Вывести(ЦФОТаб);
Если КоличествоСтрок = 2 Тогда
ПричинаОтказа = Строка(ЗапросНоменклатура[Номер-1]);
СтрокаТЧ = Макет.ПолучитьОбласть("СтрокаТЧ");
СтрокаТЧ.Параметры.Номер = КоличествоСтрок;
СтрокаТЧ.Параметры.СтатьяЗатрат = ЗапросНоменклатура[Номер-1].СтатьяЗатрат;
СтрокаТЧ.Параметры.Номенклатура = ЗапросНоменклатура[Номер-1].Номенклатура;
СтрокаТЧ.Параметры.ХарактеристикаНоменклатуры = ЗапросНоменклатура[Номер-1].ХарактеристикаНоменклатуры;
СтрокаТЧ.Параметры.ЕдиницаИзмерения = ЗапросНоменклатура[Номер-1].Номенклатура.ЕдиницаХраненияОстатков;
СтрокаТЧ.Параметры.ПлановоеКолВо = ЗапросНоменклатура[Номер-1].ПлановоеКоличество;
СтрокаТЧ.Параметры.ФактПолучКолВо = ЗапросНоменклатура[Номер-1].ФактическоеКоличество;
СтрокаТЧ.Параметры.Отклонение = ЗапросНоменклатура[Номер-1].Отклонение;
СтрокаТЧ.Параметры.ПричиныОтказа = ЗапросНоменклатура[Номер-1].ПричинаОтказа;
ТабДок.Вывести(СтрокаТЧ);
КонецЕсли;
КоличествоСтрок = 1;
КонецЕсли;
ИначеЕсли ЗначениеЗаполнено(Организация) И Не ЗначениеЗаполнено(ПодразделениеЦФО) Тогда
Если ЦФОТЧ <> Строка.ЦФО Тогда
ЦФОТаб = Макет.ПолучитьОбласть("Подразделение");
ЦФОТаб.Параметры.ПодразделениеТаб = Строка.ЦФО;
ТабДок.Вывести(ЦФОТаб);
Если КоличествоСтрок = 2 Тогда
ПричинаОтказа = Строка(ЗапросНоменклатура[Номер-1]);
СтрокаТЧ = Макет.ПолучитьОбласть("СтрокаТЧ");
СтрокаТЧ.Параметры.Номер = КоличествоСтрок;
СтрокаТЧ.Параметры.СтатьяЗатрат = ЗапросНоменклатура[Номер-1].СтатьяЗатрат;
СтрокаТЧ.Параметры.Номенклатура = ЗапросНоменклатура[Номер-1].Номенклатура;
СтрокаТЧ.Параметры.ХарактеристикаНоменклатуры = ЗапросНоменклатура[Номер-1].ХарактеристикаНоменклатуры;
СтрокаТЧ.Параметры.ЕдиницаИзмерения = ЗапросНоменклатура[Номер-1].Номенклатура.ЕдиницаХраненияОстатков;
СтрокаТЧ.Параметры.ПлановоеКолВо = ЗапросНоменклатура[Номер-1].ПлановоеКоличество;
СтрокаТЧ.Параметры.ФактПолучКолВо = ЗапросНоменклатура[Номер-1].ФактическоеКоличество;
СтрокаТЧ.Параметры.Отклонение = ЗапросНоменклатура[Номер-1].Отклонение;
СтрокаТЧ.Параметры.ПричиныОтказа = ЗапросНоменклатура[Номер-1].ПричинаОтказа;
ТабДок.Вывести(СтрокаТЧ);
КонецЕсли;
КоличествоСтрок = 1;
КонецЕсли;
ИначеЕсли ЗначениеЗаполнено(ПодразделениеЦФО) И Не ЗначениеЗаполнено(Организация) Тогда
Если ОрганизацияТЧ <> Строка.Организация Тогда
ОргТаб = Макет.ПолучитьОбласть("Организация");
ОргТаб.Параметры.ОрганизацияТаб = Строка.Организация;
ТабДок.Вывести(ОргТаб);
Если КоличествоСтрок = 2 Тогда
ПричинаОтказа = Строка(ЗапросНоменклатура[Номер-1]);
СтрокаТЧ = Макет.ПолучитьОбласть("СтрокаТЧ");
СтрокаТЧ.Параметры.Номер = КоличествоСтрок;
СтрокаТЧ.Параметры.СтатьяЗатрат = ЗапросНоменклатура[Номер-1].СтатьяЗатрат;
СтрокаТЧ.Параметры.Номенклатура = ЗапросНоменклатура[Номер-1].Номенклатура;
СтрокаТЧ.Параметры.ХарактеристикаНоменклатуры = ЗапросНоменклатура[Номер-1].ХарактеристикаНоменклатуры;
СтрокаТЧ.Параметры.ЕдиницаИзмерения = ЗапросНоменклатура[Номер-1].Номенклатура.ЕдиницаХраненияОстатков;
СтрокаТЧ.Параметры.ПлановоеКолВо = ЗапросНоменклатура[Номер-1].ПлановоеКоличество;
СтрокаТЧ.Параметры.ФактПолучКолВо = ЗапросНоменклатура[Номер-1].ФактическоеКоличество;
СтрокаТЧ.Параметры.Отклонение = ЗапросНоменклатура[Номер-1].Отклонение;
СтрокаТЧ.Параметры.ПричиныОтказа = ЗапросНоменклатура[Номер-1].ПричинаОтказа;
ТабДок.Вывести(СтрокаТЧ);
КонецЕсли;
КоличествоСтрок = 1;
КонецЕсли;
КонецЕсли;
Если КоличествоСтрок = 1 Тогда
ПричинаОтказа = Строка(ЗапросНоменклатура[Номер].ПричинаОтказа);
СтрокаТЧ = Макет.ПолучитьОбласть("СтрокаТЧ");
СтрокаТЧ.Параметры.Номер = КоличествоСтрок;
СтрокаТЧ.Параметры.СтатьяЗатрат = ЗапросНоменклатура[Номер].СтатьяЗатрат;
СтрокаТЧ.Параметры.Номенклатура = ЗапросНоменклатура[Номер].Номенклатура;
СтрокаТЧ.Параметры.ХарактеристикаНоменклатуры = ЗапросНоменклатура[Номер].ХарактеристикаНоменклатуры;
СтрокаТЧ.Параметры.ЕдиницаИзмерения = ЗапросНоменклатура[Номер].Номенклатура.ЕдиницаХраненияОстатков;
СтрокаТЧ.Параметры.ПлановоеКолВо = ЗапросНоменклатура[Номер].ПлановоеКоличество;
СтрокаТЧ.Параметры.ФактПолучКолВо = ЗапросНоменклатура[Номер].ФактическоеКоличество;
СтрокаТЧ.Параметры.Отклонение = ЗапросНоменклатура[Номер].Отклонение;
СтрокаТЧ.Параметры.ПричиныОтказа = ПричинаОтказа;
Иначе
Если
ОрганизацияТЧ = ЗапросНоменклатура[Номер].Организация
И ЦФОТЧ = ЗапросНоменклатура[Номер].ЦФО
И НоменклатураТЧ = ЗапросНоменклатура[Номер].Номенклатура
И ХарактеристикаНоменклатурыТЧ = ЗапросНоменклатура[Номер].ХарактеристикаНоменклатуры
И СтатьяЗатратТЧ = ЗапросНоменклатура[Номер].СтатьяЗатрат Тогда
КоличествоСтрок = КоличествоСтрок - 1;
Если ЗапросНоменклатура[Номер].ПричинаОтказа = "" Тогда
ПричинаОтказа = Строка(ПричинаОтказа);
Иначе
ПричинаОтказа = Строка(ЗапросНоменклатура[Номер].ПричинаОтказа) + " / " + ПричинаОтказа;
КонецЕсли;
СтрокаТЧ.Параметры.ПричиныОтказа = ПричинаОтказа;
Иначе
ТабДок.Вывести(СтрокаТЧ);
СтрокаТЧ = Макет.ПолучитьОбласть("СтрокаТЧ");
ПричинаОтказа = Строка(ЗапросНоменклатура[Номер].ПричинаОтказа);
СтрокаТЧ.Параметры.Номер = КоличествоСтрок;
СтрокаТЧ.Параметры.СтатьяЗатрат = ЗапросНоменклатура[Номер].СтатьяЗатрат;
СтрокаТЧ.Параметры.Номенклатура = ЗапросНоменклатура[Номер].Номенклатура;
СтрокаТЧ.Параметры.ХарактеристикаНоменклатуры = ЗапросНоменклатура[Номер].ХарактеристикаНоменклатуры;
СтрокаТЧ.Параметры.ЕдиницаИзмерения = ЗапросНоменклатура[Номер].Номенклатура.ЕдиницаХраненияОстатков;
СтрокаТЧ.Параметры.ПлановоеКолВо = ЗапросНоменклатура[Номер].ПлановоеКоличество;
СтрокаТЧ.Параметры.ФактПолучКолВо = ЗапросНоменклатура[Номер].ФактическоеКоличество;
СтрокаТЧ.Параметры.Отклонение = ЗапросНоменклатура[Номер].Отклонение;
СтрокаТЧ.Параметры.ПричиныОтказа = ПричинаОтказа;
КонецЕсли;
КонецЕсли;
НоменклатураТЧ = Строка.Номенклатура;
ХарактеристикаНоменклатурыТЧ = Строка.ХарактеристикаНоменклатуры;
СтатьяЗатратТЧ = Строка.СтатьяЗатрат;
ОрганизацияТЧ = Строка.Организация;
ЦФОТЧ = Строка.ЦФО;
Номер = Номер + 1;
КоличествоСтрок = КоличествоСтрок + 1;
КонецЦикла;
ТабДок.Вывести(СтрокаТЧ);