Разные колонтитулы в одном табличном документе

Задача:
Табличный документ состоит из нескольких документов, необходимо пронумеровать страницы — в первом на каждой странице необходимо писать «Документ 1 из 2», во втором — «Документ 2 из 2», и т.д.
В результате должен возвращаться один табличный документ.

Варианты решения:
1) Назначить колонтитулы для каждого документа отдельно, и затем «склеить» их в один табличный документ.
Не взлетит, т.к. при «склейке» результирующему табличному документу будет присвоен колонтитул последнего присоединенного.
Штатными механизмами в табличном документе нельзя задать отдельный колонтитул для каждого листа.

2) Доработать макеты документов, формировать строку «Документ n из n» программно и передавать в процедуру формирования каждой печатной формы.
Можно, но трудозатратно, а если табличный документ состоит из 5-10 разных документов? Сомнительный вариант.

Решение:
Можно назначить колонтитулы для каждого документа отдельно, и сформировать из них «склеенный» табличный документ с помощью «ПакетаОтображаемыхДокументов».
Быстро и легко, единственный минус — в результате получится файл PDF.
Пример кода:

// Создаем пакет
Пакет = Новый ПакетОтображаемыхДокументов;
 
// Добавляем документы в пакет
ЭлементПакета                   = Пакет.Состав.Добавить();
ЭлементПакета.Данные       = ПоместитьВоВременноеХранилище(Документ1, Новый УникальныйИдентификатор);
ЭлементПакета                   = Пакет.Состав.Добавить();
ЭлементПакета.Данные       = ПоместитьВоВременноеХранилище(Документ2, Новый УникальныйИдентификатор);
 
//Сохраняем файл для печати
ИмяФайла = ПолучитьИмяВременногоФайла(".pdf");
Пакет.ЗаписатьФайлДляПечати(ИмяФайла);
 
//Открываем файл
ЗапуститьПриложение(ИмяФайла);

Таким образом получится один файл PDF, где все документы будут пронумерованы как нам нужно.

Подписаться
Уведомить о
guest
0 комментариев
Межтекстовые Отзывы
Посмотреть все комментарии