Разные колонтитулы в одном табличном документе
Задача:
Табличный документ состоит из нескольких документов, необходимо пронумеровать страницы — в первом на каждой странице необходимо писать «Документ 1 из 2», во втором — «Документ 2 из 2», и т.д.
В результате должен возвращаться один табличный документ.
Варианты решения:
1) Назначить колонтитулы для каждого документа отдельно, и затем «склеить» их в один табличный документ.
Не взлетит, т.к. при «склейке» результирующему табличному документу будет присвоен колонтитул последнего присоединенного.
Штатными механизмами в табличном документе нельзя задать отдельный колонтитул для каждого листа.
2) Доработать макеты документов, формировать строку «Документ n из n» программно и передавать в процедуру формирования каждой печатной формы.
Можно, но трудозатратно, а если табличный документ состоит из 5-10 разных документов? Сомнительный вариант.
Решение:
Можно назначить колонтитулы для каждого документа отдельно, и сформировать из них «склеенный» табличный документ с помощью «ПакетаОтображаемыхДокументов».
Быстро и легко, единственный минус — в результате получится файл PDF.
Пример кода:
// Создаем пакет Пакет = Новый ПакетОтображаемыхДокументов; // Добавляем документы в пакет ЭлементПакета = Пакет.Состав.Добавить(); ЭлементПакета.Данные = ПоместитьВоВременноеХранилище(Документ1, Новый УникальныйИдентификатор); ЭлементПакета = Пакет.Состав.Добавить(); ЭлементПакета.Данные = ПоместитьВоВременноеХранилище(Документ2, Новый УникальныйИдентификатор); //Сохраняем файл для печати ИмяФайла = ПолучитьИмяВременногоФайла(".pdf"); Пакет.ЗаписатьФайлДляПечати(ИмяФайла); //Открываем файл ЗапуститьПриложение(ИмяФайла); |
Таким образом получится один файл PDF, где все документы будут пронумерованы как нам нужно.