Здравствуйте!
Помогите пожалуйста понять...
Самописный отчёт. Вывожу таблицу значений в табличный документ через макет. Набор областей таков:
Шапка
ШапкаТаблицы
ТекущаяУлица
СтрокаТаблицы
На каждой странице повторяю ШапкаТаблицы. И сразу под шапкой ТекущаяУлица, для того чтобы в каждой строке не выводить улицу, чтобы не повторять в каждой строке одну и ту же улицу. Также ТекущаяУлица выводится когда по списку начинается другая улица. В цикле вывода СтрокаТаблицы при начале каждой итерации обновляю параметр отвечающий за значение параметра в области ТекущаяУлица текущей улицей из списка.
Так вот, проблема в том, что когда через конструкцию
ТабДок.ПовторятьПриПечатиСтроки = ТабДок.Область(4,,5,); // 4 - ШапкаТаблицы, 5 - ТекущаяУлица
&НаСервере
Процедура ВывестиНаПечать(ТабДок)
ТабДОк.Очистить();
ТабДок.ОриентацияСтраницы = ОриентацияСтраницы.Портрет;
ТабДок.РазмерСтраницы= "A4";
ТабДок.АвтоМасштаб=Истина;
Макет = РеквизитФормыВЗначение("Объект").ПолучитьМакет("Макет");
ОбластьШапка = Макет.ПолучитьОбласть("Шапка");
ОбластьШапкаТаб = Макет.ПолучитьОбласть("ШапкаТаблицы");
ОбластьУлицаТаб = Макет.ПолучитьОбласть("УлицаВТаблице");
ОбластьСтрокаТаб = Макет.ПолучитьОбласть("СтрокаТаблицы");
ОбластьШапка.Параметры.ТекущаяДата = Формат(ТекущаяДата(),"ДФ=dd.MM.yyyy");
ОбластьШапка.Параметры.Период = ""+Формат(Объект.Период.ДатаНачала,"ДФ=dd.MM.yyyy")+" - "+Формат(Объект.Период.ДатаОкончания,"ДФ=dd.MM.yyyy");
ТабДок.Вывести(ОбластьШапка);
ПовторятьПриПечатиОбласть = ТабДок.Вывести(ОбластьШапкаТаб);
ТабДок.ПовторятьПриПечатиСтроки = ПовторятьПриПечатиОбласть;
ЭтаУлица="";
сч=0;
Для Каждого Стр ИЗ ТЗ Цикл
//ТабДок.ПовторятьПриПечатиСтроки = ТабДок.Область(5,,5,);
Уличка=""+НасПункт+", "+лев(Стр.ТипУлицы,3)+". "+Стр.Улица;
ОбластьУлицаТаб.Параметры.НасПунктУлица = Уличка;
ОбластьШапкаТаб.Параметры.НасПунктУлица = Уличка;
Если ЭтаУлица<>Стр.КодУлицы Тогда
ТабДок.Вывести(ОбластьУлицаТаб);
КонецЕсли;
ОбластьСтрокаТаб.Параметры.ЛС = Стр.ЛС;
ОбластьСтрокаТаб.Параметры.Договор = Стр.Договор;
ОбластьСтрокаТаб.Параметры.ФИОВладельца = ПреобразоватьФИОВИнициалы(Стр.ВладелецЛС);
ЭтаУлица = Стр.КодУлицы;
ТабДок.Вывести(ОбластьСтрокаТаб);
КонецЦикла;
КонецПроцедуры
Prana @ Сегодня, 18:47
,
Вот тут проблема ?
Если ЭтаУлица<>Стр.КодУлицы Тогда
ТабДок.Вывести(ОбластьУлицаТаб);
КонецЕсли;
Если ЭтаУлица<>Стр.КодУлицы Тогда
ОбластьУлицаТаб.Параметры.НасПунктУлица = Уличка;
ТабДок.Вывести(ОбластьУлицаТаб);
КонецЕсли;
ТабДок.Вывести(ОбластьУлицаТаб);
andrew76 @ Сегодня, 18:13
,
Да, текущая по циклу улица не выводится под шапкой на каждой странице.
УЛичка и ЭтаУлица штатно принимают значения согласно условий при каждой итерации.
Тут какая-та особенность метода ПовторятьПриПечатиСтроки...
Prana @ Сегодня, 20:26
,
поборол!
в этом месте
ТабДок.Вывести(ОбластьСтрокаТаб);
ТабДок.Вывести(ОбластьСтрокаТаб);
Если НЕ ТабДок.ПроверитьВывод(ОбластьСтрокаТаб) Тогда
ТабДок.Вывести(ОбластьУлицаТаб);
КонецЕсли;
Да, всё на месте. Колхоз, конечно, но работает.
andrew76, спасибо вам!
Prana @ Сегодня, 0:08
,
Ну вот и хорошо.а на форуме (для спасибо) есть кнопка "c пальцем".
Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7
https://pro1c.org.ua