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

Пакетная печать в строго заданном порядке

Пакетная печать в строго заданном порядке

В наличии

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

Категория:

Описание

В чем проблема?

Основная проблема хаотичного порядка печати — это произвольная отправка документов из очереди на печать. При печати одного документа его страницы всегда будут напечатаны в заданном порядке. Идея состоит в том, чтобы сформировать из печатных документов один документ и уже его отправить на печать.

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

Решение

Начиная с версии 8.3.3 платформы 1С реализован объект ПакетОтображаемыхДокументов, через который и реализована печать во всех современных типовых конфигурациях.

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

К сожалению, встроенные средства платформы позволяют только сохранять в PDF, но не читать их, а уж, тем более, печатать.

На помощь могут прийти различные консольные программы, которые позволят отправить файл на печать.

Но для себя я не нашел достойной программы, которая могла бы удовлетворить всем моим потребностям: то проблемы со скоростью, то качеством печати, то авторазворотом страниц, в итоге пришлось написать небольшую компоненту, которая бы удовлетворяла всем моим потребностям Внешняя компонента печати PDF, возможно, и вам она поможет.

Вместо метода Напечатать вызываем ЗаписатьФайлДляПечати, сохраняем PDF во временный файл и отправляем на печать уже PDF:

ИмяВременногоФайла = ПолучитьИмяВременногоФайла("pdf");
ПакетОтображаемыхДокументов.ЗаписатьФайлДляПечати(ИмяВременногоФайла);
КомпонентаПечатиPDF.Печать(ИмяВременногоФайла, "Пакет документов");

 

has been added to your cart:
Оформление заказа