Платформа 1С:Предприятие 8.3
08.08.2014

Особенности пакетной печати табличных документов

Режим пакетной печати предназначен для печати нескольких табличных документов. Для печати используются объекты встроенного языка: ПакетОтображаемыхДокументов, ЭлементыПакетаОтображаемыхДокументов, ЭлементПакетаОтображаемыхДокументов.

ПакетОтображаемыхДокументов – это собственно сам пакет, который содержит документы и настройки печати. У него есть свойство Состав, представляющее собой объект ЭлементыПакетаОтображаемыхДокументов – коллекцию объектов  ЭлементПакетаОтображаемыхДокументов.

ЭлементПакетаОтображаемыхДокументов – объект, который содержит либо адрес временного хранилища, в котором расположен табличный документ, либо объект ПакетОтображаемыхДокументов, обозначающий вложенный пакет документов.

Настройки печати устанавливаются для всего пакета, индивидуальные настройки печати документов игнорируются. Доступны настройки КоличествоЭкземпляров, РазборПоКопиям, ИмяПринтера, ДвусторонняяПечать, ТочностьПечати, Вывод.

Чтобы установить индивидуальные параметры печати для конкретного документа, следует добавить вложенный пакет, поместить документ в него и установить параметры печати для этого вложенного пакета.

Например, необходимо распечатать 3 табличных документа, причем два из них по 5 экземпляров каждый, а третий - в 2 экземплярах:

Копировать в буфер обмена
// Создаем пакет
Пакет = Новый ПакетОтображаемыхДокументов;

// Документы, находящиеся в этом пакете, печатаются в 5 экземплярах
Пакет.КоличествоЭкземпляров = 5;

// Добавляем документы в пакет
ЭлементПакета1 = Пакет.Состав.Добавить();
ЭлементПакета1.Данные = ПоместитьВоВременноеХранилище(ТабличныйДокумент1, УникальныйИдентификатор);
ЭлементПакета2 = Пакет.Состав.Добавить();
ЭлементПакета2.Данные = ПоместитьВоВременноеХранилище(ТабличныйДокумент2, УникальныйИдентификатор);

// Добавляем вложенный пакет для третьего документа
ВложенныйПакет = Новый ПакетОтображаемыхДокументов;
ЭлементПакета3 = Пакет.Состав.Добавить();
ЭлементПакета3.Данные = ВложенныйПакет;

// Документ во вложенном пакете печатается в 2 экземплярах
ВложенныйПакет.КоличествоЭкземпляров = 2;

// Добавляем документ во вложенный пакет
ЭлементВложенногоПакета1 = ВложенныйПакет.Состав.Добавить();
ЭлементВложенногоПакета1.Данные = ПоместитьВоВременноеХранилище(ТабличныйДокумент3, УникальныйИдентификатор);

// Печатаем пакет
Пакет.Напечатать(); 

Для вложенного пакета можно установить те же параметры печати, что и для всего пакета, при этом если какие-то параметры не установлены, то они определяются из параметров родительского пакета.

Пакет позволяет также экспортировать табличные документы в один PDF файл. Для этого предназначен метод пакета ЗаписатьФайлДляПечати(), которому передается полное имя файла.