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

Публикация № 907192

Разработка - Печать - Пакетная печать

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

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

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

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

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

Решение

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

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

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

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

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

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

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

 

Специальные предложения

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

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

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

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

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

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

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

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

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

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

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

сделал
Для Сч = 1 По КоличествоКопийКомплектов Цикл
	Для Каждого Элемент Из ТабличныеДокументы Цикл
		ТабличныйДокумент = Элемент.Значение;
		ТабличныйДокумент.Напечатать(РежимИспользованияДиалогаПечати.НеИспользовать);
	КонецЦикла;
КонецЦикла;
19. crazycat 45 26.11.19 05:35 Сейчас в теме
(18) спасибо за пример, в Вашем примере табличные документы отправляются на печать как отдельные задания, соответственно проблема с очередью печати сохраняется, т.к. "В силу различных особенностей ПО, ОС, драйверов и т.д. порядок печати документов не всегда совпадает с порядком их отправки на печать".
Оставьте свое сообщение

См. также

Внешняя компонента печати PDF (Native Win 32/64) Промо

Разработка внешних компонент v8 1cv8.cf Платные (руб)

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

1000 руб.

17.09.2018    12117    23    40    

Печать на мобильных принтерах TSC и Zebra по сети

Пакетная печать v8 УТ10 Розничная и сетевая торговля (FMCG) Бесплатно (free)

Описан метод печати на мобильных принтерах марок TSC и Zebra, подключенных к корпоративной сети по Wi-Fi, без необходимости устанавливать драйверы на сервере и/или клиенте.

08.03.2020    1486    0    marquis    0    

Внешняя печатная форма "Пакетная печать документов"

Пакетная печать v8 1cv8.cf БП2.0 УТ10 УПП1 Россия Бесплатно (free)

Внешняя печатная форма для пакетной печати докуменов

14.03.2011    22170    0    Bazil    24    

[* ЗУП 2.5 *] Групповая печать регламентированных форм (ОПС, ЕСН, 1-НДФЛ)

Пакетная печать Регламентированная отчетность Зарплата Зарплата v8 ЗУП2.5 Россия БУ ФОМС, ПФ, ФСС Бесплатно (free)

Групповая печать регламентированных форм (карточка ОПС, Карточка ЕСН, Форма 1-НДФЛ).

21.09.2009    16069    0    WiseSnake    8    

Пакетная печать документов "Реализация товаров и услуг"

Пакетная печать Оптовая торговля Розничная торговля Оптовая торговля Розничная торговля v8 БП2.0 УТ10 Россия БУ УУ НДС Бесплатно (free)

Обработка позволяет распечатать пакет отгрузочных документов для конфигураций УТ и БП, должна выдерживать обновления конфигураций. Что она позволяет распечатать 2 торг12, 2 счет фактуры , 2 ттн за два нажатия кнопки. + Встроен универсальный отбор по документам реализации товаров и услуг (н-р можно распечатать все документы за опред период по опред. контрагенту) + Возможность отсылки сразу на принтер и распределения по копиям + все общие модули вынесены в модуль обработки) + Печатает пакетно также и внешние печатные формы для документов реализация товаров и услуг и счетов фактур + при печати использует типовые модули печати документов в конфигурации (как будто вы сами отправляете на печать из формы документов) проверялась УТ 10.3.3.3 и БП 1.6.10.6

02.09.2009    24377    0    y22-k    33    

Универсальная настраиваемая печать документов

Пакетная печать v8 1cv8.cf Россия Бесплатно (free)

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

05.07.2009    16443    0    Magister    39    

Групповая печать карточек 1-НДФЛ

Пакетная печать Зарплата Зарплата v8 ЗУП2.5 Россия БУ НДФЛ Бесплатно (free)

В 2009 не нашла в типовой печати 1-НДФЛ по всем сотрудникам. Сделала групповую печать карточек 1-НДФЛ по документу "Сведения о доходах физлиц", подготовленному для передачи в ИФНС. Может быть кому-нибудь пригодится. В 2010 году обработку посчитала уже неактуальной, так как в типовой появилась возможность групповой печати в стандартном отчете. Но расчетчица попросила и на последнем релизе (2.5.20) сделать печать по документу "Сведения о доходах физлиц". Поэтому выкладываю обновленную обработку, так как предыдущая версия не работает на более ранних релизах.

06.02.2009    14505    0    Ирка    12    

Обработка для печати регистра налоговых накладных

Пакетная печать Оптовая торговля Оптовая торговля v8 1cv8.cf Украина НУ Бесплатно (free)

Обработка сама выводит на печать налоговые накладные (за укр. законодательством - неплательщик НДС (два экземпляра) и плательщик НДС(вариант организации)...

04.06.2008    8050    0    mut_mut    1    

Помощник печати

Пакетная печать v8 1cv8.cf Россия Бесплатно (free)

Помощник печати с выбором печатных форм, подключенных к документу.

21.12.2007    12545    0    Legavaz    1    

Универсальный редактор реквизитов документов и справочников из УПП 8.0

Обработка документов Пакетная печать Обработка справочников v8 УПП1 Бесплатно (free)

Обработка не моя. Добавил пару строк и процедур. Но чтоб никто больше не пыхтел зря, рекомендую воспользоваться. Если бы кто-нибудь написал DLL-ку, которая вытаскивала бы из 8.0 тексты процедур во внешние текстовые файлы, тогда и групповую печать для встроенных печатных форм можно было бы сделать универсальной. Потому что макет-то доступен, а вот процедура печати должна быть только в модуле объекта, да еще и с директивой "Экспорт". Конечно можно все документы конфигурации снабдить такими процедурами, но увы, это будет уже не универсально... Призываю крутых помочь! См. идею в дополнительно.

13.08.2007    12156    0    ge_ni    3    

Пакетная печать РКО, ПКО для 1С 8.0 Бухгалтерия

Пакетная печать Кассовые операции Кассовые операции v8 БП2.0 Россия БУ Бесплатно (free)

Пакетная печать РКО, ПКО для 1С 8.0 Бухгалтерия

09.08.2007    9787    0    vitkovsky    2    

Групповая печать документов

Пакетная печать v8 1cv8.cf Бесплатно (free)

"Множественная" печать документов из любой типовой конфигурации. "Сканирует" виды документов конфигурации, общие макеты и макеты документов. Выбираете вид документов и макет на основании которого будет формироваться печатная форма. К примеру: документы - "Перемещение товаров", макет - "ТОРГ13". Можно настроить непосредственную печать на принтер без предварительного просмотра, количество копий и др. Если для выбранных документа и макета не существует печатных форм, то выдаётся сообщение при попытки печати. Обработка писалась "на скорую руку", поэтому не судите строго. Рабочая, быстронастраиваемая программулина.

11.05.2007    9763    0    yalex9    14    

Пакетная печать документов

Пакетная печать v8 1cv8.cf Россия Бесплатно (free)

Пакетная печать документов

27.07.2006    19280    0    acsent    16