Back to top

Пакетная печать табличных документов в 1С 8.3

Опубликовано e-1c@mail.ru - вт, 05/16/2017 - 08:50

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

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

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

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

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

Рассмотрим пример:

Необходимо распечатать 2 табличных документа, причем первого 3 экземпляра, а второго 2.

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