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

19.09.18

Задачи пользователя - Пакетная печать

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

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

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

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

Решение

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

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

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

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

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

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

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

 

пакетная печать

См. также

SALE! 15%

Пакетная печать Печатные формы Инструментарий разработчика Программист Платформа 1С v8.3 Запросы 1С:Зарплата и кадры бюджетного учреждения 1С:Конвертация данных 1С:ERP Управление предприятием 2 1С:Управление торговлей 11 Платные (руб)

Инструмент, позволяющий абсолютно по-новому взглянуть на процесс разработки печатных форм. Благодаря конструктору можно значительно снизить затраты времени на разработку печатных форм, повысить качество и "прозрачность" разработки, а также навести порядок в многообразии корпоративных печатных форм.

22200 19980 руб.

06.10.2023    15430    35    7    

70

Пакетная печать Банковские операции Кассовые операции Бухгалтер Платформа 1С v8.3 Бухгалтерский учет 1С:Бухгалтерия 3.0 Бухгалтерский учет Платные (руб)

Обработка для групповой печати чеков ККМ с настройкой, загруженных из банковской выписки. На основании документа Поступление на расчетный счет!

4800 руб.

21.08.2019    20275    75    10    

24

Пакетная печать Регламентированный учет и отчетность Файловый обмен (TXT, XML, DBF), FTP Загрузка и выгрузка в Excel Бухгалтер Платформа 1С v8.3 1С:Бухгалтерия 3.0 Россия Бухгалтерский учет Налоговый учет Платные (руб)

Быстрое формирование сразу нескольких видов стандартных бухгалтерских отчетов - .Анализ счета, Карточка счета, Оборотно-сальдовая ведомость по счету, Отчет по проводкам. В периоды проведения проверок со стороны ФНС в деятельности предприятий часто возникает необходимость предоставления сведений из бухгалтерского учета. Обработка сократит время на формирование отчетов бухгалтеру.

6000 руб.

30.03.2023    6422    5    0    

7

Разработка внешних компонент Программист Платформа 1С v8.3 Конфигурации 1cv8 Платные (руб)

Внешняя компонента позволяет печатать PDF файлы непосредственно из 1С, не используя при этом сторонних программ. Прекрасно работает на сервере, тонком клиенте и веб-клиенте. Основана на проекте PDFium из состава проекта Chromium/Chrome

1500 руб.

17.09.2018    36484    113    127    

114

Печатные формы Пакетная печать Оптовая торговля Бухгалтер Платформа 1С v8.3 Оперативный учет 1С:Управление торговлей 10 Оптовая торговля, дистрибуция, логистика Россия Управленческий учет Платные (руб)

Мастер пакетной печати отгрузочных и товаросопроводительных документов. Продукт оптимизирован для алкогольной продукции. Поддерживает печатные формы ТОРГ-12, счет-фактура, разделы А и Б справки к ТТН, копии сертификатов, ТТН (1-Т), а также ТН (Приложение4). Все формы заполняются автоматически, а данные в полях формы (актуально для ТН и ТТН) сохраняются для каждого документа и не требуют заполнения при повторных открытиях. Предназначена для конфигурации "1С:Управление торговлей" , ред. 10.3, ред. 11.1, "1С:Бухгалтерия предприятия, ред. 3.0". Не требует изменений конфигурации. Печать суммы акциза в с/ф, УПД и справке А. Поддержка требований торговых сетей "Метро" и "Ашан".

6000 руб.

04.04.2013    129719    142    188    

112

Пакетная печать Документооборот и делопроизводство (СЭД) Оптовая торговля Печатные формы Бухгалтер Платформа 1С v8.3 Бухгалтерский учет 1С:Бухгалтерия 3.0 Россия Бухгалтерский учет Платные (руб)

Обработка содержит новую форму Транспортной накладной с 01.01.2021 г. (в ред. Постановления Правительства РФ от 30.11.2021 № 2116) В отличие от внешних печатных форм, подключаемых к документу реализации, позволяет вести отдельный журнал документов. Дополнительным преимуществом является возможность формирования документов за поставщика.

2280 руб.

15.04.2014    53488    53    51    

41
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. efin 19.09.18 21:08 Сейчас в теме
Подскажите, пожалуйста, те, кто пользовался этим "Пакетом"...
Вот есть конфа (на БСП, но это не важно), веб-клиент.
Есть печатная форма у документа, а есть где-то снаружи сделанный pdf-файл, прикрепленный к этому документу.

Можно ли сделать команду "Печатать все" таким образом, чтобы в результирующий pdf для печати вывелся и табличный документ, и все страницы прикрепленного pdf'а?
2. efin 19.09.18 21:11 Сейчас в теме
(1) из ИТС я знаю, что Режим пакетной печати предназначен для печати нескольких табличных документов

Может можно как-то извернуться и встроенными средствами запихнуть pdf в табличный документ, а затем уже добавить его в пакет?
3. crazycat 223 20.09.18 02:06 Сейчас в теме
(2) К сожалению, встроенных средств для работы с PDF в 1С нет, есть возможность сохранения в PDF и все.
В вашем случае есть несколько вариантов решения:
1. Внешняя компонента печати PDF для браузера, я сейчас как раз занимаюсь ее разработкой;
2. Конвертация PDF в картинки и размещение их в табличном документе для последующей печати;
3. Вывод PDF в табличный документ - идея в том, чтобы все объекты PDF транслировать в объекты табличного документа (линии, надписи, картинки) - была мысль реализовать такое, но пока даже не знаю насколько это реально, буду пробовать.

У первых двух методов решения есть недостатки, а вот 3-й вариант, кажется, наиболее универсальным и правильным.
5. maxvcb 68 24.09.18 11:22 Сейчас в теме
(3) А как на счет использования командной строки?

"Foxit Reader.exe" PdfFile /t PrinterName
6. crazycat 223 24.09.18 15:49 Сейчас в теме
(5) в публикации я упоминал про это, но меня этот вариант не удовлетворил, у компоненты есть преимущества, например:
1. Скорость выполнения;
2. Нет необходимости в дополнительном ПО;
3. Компонента умеет выводить PDF из памяти, без сохранения файла на диск.
4. crazycat 223 20.09.18 06:48 Сейчас в теме
(2) Я добавил версию внешней компоненты печати PDF для Веб-клиента (поддерживаются браузеры Firefox и Chrome), думаю, Вам должен подойти этот вариант. Вам нужно будет передавать файл с сервера на клиент, сохранять его во временный файл и вызывать печать через компоненту.

Скоро добавлю возможность печати PDF из двоичных данных, чтобы не нужно было сохранять PDF перед печатью.
7. triviumfan 97 28.09.18 12:23 Сейчас в теме
Извините, но ведь прошло уже... "тысячелетие" в 1с.
Достаточно просто воспользоваться https://its.1c.ru/db/metod8dev#content:5792:hdoc
Статья от 08.08.2014
8. crazycat 223 28.09.18 15:46 Сейчас в теме
(7) а Вы читали статью? большой разницы нет как компонуются документы перед печатью и какими методами / объектами, в конечном итоге они отправляются на печать отдельными пакетами и дальше уже платформа 1с не контролирует процесс, проблема существует и я с ней столкнулся, при этом перед печатью документы компоновались как раз-таки через ПакетОтображаемыхДокументов, но в итоге печатались совсем не в том порядке, в каком они были в пакете.
9. triviumfan 97 28.09.18 17:06 Сейчас в теме
(8) Режим совместимости?
https://its.1c.ru/db/v838doc#bookmark:dev:TI000001244

● Поведение метода ПакетОтображаемыхДокументов.Напечатать():
● Используется режим совместимости с версией 8.3.7 – каждый документ печатается в отдельном задании.
● Не используется режим совместимости:
● Для ОС Windows:
● создается одно задание на принтер;
● весь пакет выводится в один файл, имя которого запрашивается перед выводом.
● Для ОС Linux:
● если параметры печати всех документов в пакете совпадают – поведение совпадает с поведением в ОС Windows;
● если параметры различаются – каждый документ печатается в отдельном задании принтера.
10. crazycat 223 28.09.18 23:44 Сейчас в теме
(9) Режим совместимости отключен
11. scherbakovya 03.12.18 12:10 Сейчас в теме
Как решается вопрос двусторонней печати пакета документов? Т.е. если выкинуть пакет в pdf, а потом запустить двустороннюю печать, то следующий документ может распечататься на обратной стороне предыдущего?! Также как решен вопрос с разным количеством экземпляров разных документов пакета, т.е. одних нужно 3 копии других 2 и т.п.?
12. crazycat 223 03.12.18 18:06 Сейчас в теме
(11) С двусторонней печатью попробую, отпишусь. Что касается разного количества экземпляров для разных документов, то при выводе в PDF платформа уже делает несколько копий документов, следующих друг за другом в самом PDF, компонента лишь выводит готовый PDF.
13. scherbakovya 04.12.18 09:07 Сейчас в теме
(12) Насчет вывода в pdf нескольких копий все верно, я видел, но вот заметил одну интересную вещь. Если в ПФ использовать штрихкоды, то при выводе в pdf первая копия выводится отлично, а вот вторая и последующие копии (если их больше 2-х) выводятся с не верным штрихкодом (он размазан). С таким не сталкивались?
14. crazycat 223 09.12.18 06:59 Сейчас в теме
(13) нужно смотреть реализацию печати при выводе штрих-кода, возможно, печать происходит не средствами платформы
15. crazycat 223 09.12.18 06:59 Сейчас в теме
(11) двустороннюю печать реализую в ближайшее время, напишу, пока ее поддержки нет
16. scherbakovya 25.12.18 16:09 Сейчас в теме
(15)Как успехи с реализаций печати в двустороннем варианте?
Еще заметил, что при печати большого количества документов иногда они выходят не по порядку.
17. user619273_alevtina 30.12.18 18:21 Сейчас в теме
Что с реализацией двусторонней печати?
SmArtist; +1 Ответить
20. crazycat 223 27.11.19 19:26 Сейчас в теме
(17) День добрый!

Извиняюсь за долгую реализацию, двусторонняя печать реализована.
Если ещё актуально, просьба обновить компоненту и протестировать.

Спасибо!
18. skyadmin 60 22.11.19 18:03 Сейчас в теме
Я сделал с момощью расширения модуля УправлениеПечатьюКлиент

Процедура РаспечататьТабличныеДокументы(ТабличныеДокументы, .....)

ТабличныеДокументы это список значений, подменил в нем представления (добавил в начале нужные мне цифры)
и отсортировал по представлению, а вместо
//ПакетОтображаемыхДокументов = УправлениеПечатьюВызовСервера.ПакетДокументов(ТабличныеДокументы,
//	ОбъектыПечати, ПечататьКомплектами, КоличествоКопийКомплектов);
//ПакетОтображаемыхДокументов.Напечатать(РежимИспользованияДиалогаПечати.НеИспользовать);

сделал
Для Сч = 1 По КоличествоКопийКомплектов Цикл
	Для Каждого Элемент Из ТабличныеДокументы Цикл
		ТабличныйДокумент = Элемент.Значение;
		ТабличныйДокумент.Напечатать(РежимИспользованияДиалогаПечати.НеИспользовать);
	КонецЦикла;
КонецЦикла;
19. crazycat 223 26.11.19 05:35 Сейчас в теме
(18) спасибо за пример, в Вашем примере табличные документы отправляются на печать как отдельные задания, соответственно проблема с очередью печати сохраняется, т.к. "В силу различных особенностей ПО, ОС, драйверов и т.д. порядок печати документов не всегда совпадает с порядком их отправки на печать".
21. 7OH 70 27.07.20 12:46 Сейчас в теме
А не подскажете, как при сохранении через ПакетОтображаемыхДокументов сделать так, чтобы при открытии файла был активен ОДИН конкретный лист, а не все имеющиеся сразу?
Поясню - сохраняем два листа, открываем файл - кнопка фильтр не работает, так как выделены оба листа. Приходится сначала клацать на один лист, потом на первый и тогда всё работает.
22. Mishy 26.02.21 16:45 Сейчас в теме
Как решается вопрос двусторонней печати пакета документов? Т.е. если выкинуть пакет в pdf, а потом запустить двустороннюю печать, то следующий документ может распечататься на обратной стороне предыдущего?!

Извиняюсь за долгую реализацию, двусторонняя печать реализована.

Каким механизмом реализована двусторонняя печать? Если параметром (ДвусторонняяПечать - необязательный, тип "Число", режим двусторонней печати), то проблема с печатью документа на обратной стороне предыдущего не решена.
Оставьте свое сообщение