HelpF.pro

Как при печати выводить шапку на каждой странице (ПовторятьПриПечатиСтроки)?

Необходимо при печати, если происходит переход на следующую страницу таблицы, выводить шапку таблицы вверху на новой странице.

для печати шапки на каждой странице в языке программирования есть специальный метод - ПовторятьПриПечатиСтроки

Примеры его использования:

Код 1C v 8.х
 ТабДок.ПовторятьПриПечатиСтроки = ТабДок.Область(1, , 2, );
ЭлементыФормы.Поле_ТД.ПовторятьПриПечатиСтроки = Макет.Область("Шапка_Спецификации"); //или так  
ЭлементыФормы.Поле_ТД.ПовторятьПриПечатиСтроки = Макет.Область("R777:R778");

Полный код вывода табличного документа с повторением шапки на каждой странице:

Код 1C v 8.х
 Функция ПечатьПриказаТ11а()

ТабДокумент = Новый ТабличныйДокумент;
ТабДокумент.ИмяПараметровПечати = "ПАРАМЕТРЫ_ПЕЧАТИ_ПечатнаяФорма_МатериальнаяПомощь_Т11а";
ТабДокумент.ПовторятьПриПечатиСтроки = ТабДокумент.Область("R21:R22");

Макет = ПолучитьМакет("Т11а");
ОбластьМакетаШапкаДокумента = Макет.ПолучитьОбласть("Шапка");
ОбластьПовторятьПриПечати = Макет.ПолучитьОбласть("ПовторятьПриПечати");
ОбластьМакетаСтрока = Макет.ПолучитьОбласть("Строка");
ОбластьМакетаПодвал = Макет.ПолучитьОбласть("Подвал");


ВыборкаДляШапкиДокумента = СформироватьЗапросДляШапкиДокумента().Выбрать();
ВыборкаРаботники = СформироватьЗапросДляТабличнойЧасти(1).Выбрать();   // ТЧ "Начисления"
Если ВыборкаРаботники.Количество() = 0 Тогда
ВыборкаРаботники = СформироватьЗапросДляТабличнойЧасти(2).Выбрать(); // ТЧ "Доп.Начисления"
КонецЕсли;

// Массив с двумя строками - для разбиения на страницы
ВыводимыеОбласти = Новый Массив();
ВыводимыеОбласти.Добавить(ОбластьМакетаСтрока);

// Вывод шапки документа
Пока ВыборкаДляШапкиДокумента.Следующий() Цикл
ОбластьМакетаШапкаДокумента.Параметры.Заполнить(ВыборкаДляШапкиДокумента);
  ОбластьМакетаШапкаДокумента.Параметры.НазваниеОрганизации = СокрЛП(ОбластьМакетаШапкаДокумента.Параметры.НазваниеОрганизации);
КонецЦикла;
ТабДокумент.Вывести(ОбластьМакетаШапкаДокумента);
ном=0;
Пока ВыборкаРаботники.Следующий() Цикл
ОбластьМакетаСтрока.Параметры.Заполнить(ВыборкаРаботники);
ном=ном+1;
ОбластьМакетаСтрока.Параметры.ПодразделениеОрганизации = ВыборкаРаботники.ПодразделениеОрганизации.ПолноеНаименование();
ОбластьМакетаСтрока.Параметры.ном=ном;
ТабДокумент.Вывести(ОбластьМакетаСтрока);
КонецЦикла;

ОбластьМакетаПодвал.Параметры.Заполнить(ВыборкаДляШапкиДокумента); // Из запроса шапка документа.
ТабДокумент.Вывести(ОбластьМакетаПодвал);


Если ТабДокумент.ВысотаТаблицы > 0 Тогда
Возврат УниверсальныеМеханизмы.НапечататьДокумент(ТабДокумент, 1, Ложь, ОбщегоНазначения.СформироватьЗаголовокДокумента(СсылкаНаОбъект,"Приказ о поощрении работника "));
КонецЕсли;
//Возврат ТабДокумент;

КонецФункции

Опубликовано на сайте: https://HelpF.pro
Прямая ссылка: https://HelpF.pro/faq82/view/1730.html