Версия для печати темы (https://pro1c.org.ua/index.php?s=8a3e09742d153128303c6998f0802196&showtopic=23519)

Нажмите сюда для просмотра этой темы в обычном формате

Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7 _ Программирование в 1С Предприятие 8.3 _ Фоновая печать табличных документов с клиента

Автор: logist 03.06.15, 9:25

Собственно проблема - печать большого количества табдоков с клиента, пользователь долго ожидает завершения процесса печати. Очень хочется сделать что-то что позволит печатать в фоне (с клиента или сервера не важно), что бы после нажатия на кнопку - печать пошла отдельным "процессом", а пользователь мог работать с приложением дальше.
Условия местности: есть ~7 ПК и сервер объединенные в локальную сеть, и есть ~5 принтеров в той же сети, доки печатаются на разные принтеры в зависимости от неких условий (пользователь не принимает участия в процессе печати, он просто нажимает кнопку, дальше 1С сама выполняет печать)

Печать через Adobe/Foxit API не предлагать, т.к. в серверном варианте не работает (у процесса под которым запущен сервер нет активного сеанса для запуска приложений), rundll32 printui.dll,PrintUIEntry не подходит по схожей причине.
Отдельный сеанс 1С который будет печатать некую очередь - не подходит, печать должна происходить сразу, поэтому опрашивать очередь каждую секунду и держать активный сеанс на сервере не вариант.

С удовольствием выслушаю предложения и пожедлания smile.gif

Автор: Vofka 03.06.15, 10:07

Запустить фоновое задание, которое напечатает всё.

Автор: logist 03.06.15, 11:52

Цитата(Vofka @ 03.06.15, 11:07) *
Запустить фоновое задание, которое напечатает всё.

А подробней?

Автор: Vofka 03.06.15, 12:28

ФоновыеЗадания.Выполнить(...);

Одним из параметров есть имя метода, ещё одним - дополнительные параметры, которые можно в метод передать. В результате метод будет выполняться в фоне. В самом методе прописываете алгоритм печати.

Автор: logist 03.06.15, 12:50

Фоновое задание выполняется на сервере, там же будет недоступно ТабДок.Напечатать()

Автор: Vofka 03.06.15, 13:59

Тогда да, не получится. Я думал, что на сервере печать доступна.

Автор: logist 03.06.15, 14:22

Цитата(Vofka @ 03.06.15, 14:59) *
Я думал, что на сервере печать доступна.

Если бы была доступна - проблемы бы не было sad.gif

Автор: Vofka 03.06.15, 15:28

Можно отправить файл на печать из командной строки. Так вот можно попробовать сохранить файл на сервере и выпонить соответствующую команду системы. И на сервере и где угодно должно работать по идее (если сервер или что угодно работают под ОС Windows).

Ну и, соответственно, делать все это в фоне.

Автор: logist 03.06.15, 16:15

Цитата(Vofka @ 03.06.15, 16:28) *
Можно отправить файл на печать из командной строки.

это либо rundll32 о котором я писал выше, либо "copy filename printername" но тут filename должен быть либо простым текстом, либо какими-то специальными двоичными данными которые воспримет принтер, что усложняет разработку, т.к. принтеры разные, и что надо разрабатывать - непонятно, хотя мне кажется это тоже требует командной строки которая требует активного сеанса, что в режиме работы сервера 1с не возможно.

Автор: Vofka 03.06.15, 16:25

Установите на сервер какую-то прогу для чтения pdf, сохраните печатную форму в соответствующий формат и попробуйте напечатать.

Автор: logist 03.06.15, 16:47

Цитата(Vofka @ 03.06.15, 17:25) *
Установите на сервер какую-то прогу для чтения pdf

Не работает это в серверном варианте, это я писал в первом посте (adobe, foxit).

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

Автор: Alpha666 13.06.15, 12:20

Используйте вкладку "Быстрая печать"
http://pro1c.org.ua/redirect.php?http://vk.cc/3TpmGQ

Автор: logist 15.06.15, 9:03

Цитата(Alpha666 @ 13.06.15, 13:20) *
Используйте вкладку "Быстрая печать"

Смотрю вам было нечего делать, пройтись по форуму и оставить иногда бессмысленные сообщений. Не делайте так больше, читайте проблему - потом отвечайте. p.s. количество сообщений никаких привилегий не дает.

Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7
https://pro1c.org.ua