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

1. comol 5052 20.05.14 14:12 Сейчас в теме
Добрый день. Задача вроде стандартная - печатаем из 1С определенные наборы документов, но нужно чтобы после печати они собирались последовательно, в том порядке в котором их отправляли. На выходе же получаем "кашу" из разных документов в том порядке в котором они "понравились принтеру". Если между отправкой на печать сделать паузу 3-5 секунд как правило это существенно улучшает ситуацию, но полностью не избавляет. Кто-нибудь сталкивался с подобной проблемой? Как решали?
По теме из базы знаний
Вознаграждение за ответ
Показать полностью
Найденные решения
54. serg_info 116 24.05.14 10:28 Сейчас в теме
(15) rozer,

У меня печатается по такому принципу порядка 250 000 страниц в неделю, и неплохо уже много лет.
Алкашка - очень много сопроводительной документации на отгрузку.
Решение как вы написали, все на сервере в терминале
1) PDF принтер который печатает все в определенный каталог из 1С
2) в 1С сделана "кнопка" печати комплекта документов, куда входят все нужные документы в нужном порядке. Она посылает документы по одному на PDF принтер, а в финале создает cmd файл который обеспечивает сборку из отдельных PDF файлов - одного файла с комплектом документов. На этом же этапе прицепляются все необходимые сканированные документы.
3) Робот печати который запущен в 1С проверяет наличие cmd файлов в каталоге, затем проверяет что в файловой системе появились все нужные PDF файлы (вы не можете знать заранее время их появления, ведь PDF принтер выдает их не в реальном времени, а фоном)и запускает cmd файл на исполнение. При этом контролируется кол-во одновременно запущенных файлов на сборку комплектов (необходимо чтобы не занять все ресурсы сервера)
4) как итог получается 1 PDF = 1 комплект документов который у нас лежит в определенных папках (по пользователям) и запускается на печать сотрудниками в отделе распечатки, которые находятся поближе к складу, а не в офисе...

Решаемые задачи:
- не путаются документы никогда (есть ШК комплекта документов с версионированием)
- контроль что все комплекты распечатаны и они соответствуют версии в 1с
- минимальное время ожидания у операторов при запуске на печать комплекта документов
- все задачи по склейке отдельных PDF файлов в комплект происходят на RAM диске для максимального быстродействия

Минусы:
- нужно реализовывать кнопку "Печать комплекта", ну или обработку
- программировать алгоритм робота в 1С робота
- организационные затраты
dresh2110; +1 Ответить
Остальные ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
58. andrewrocker 1 24.05.14 19:45 Сейчас в теме
(1) comol, решали эту проблему.
сделали микрообработку "печать последовательно" т. е. обработка печатает 4 документа к реализации товаров и услуг строго пачкой.
прикрепляли вместо кнопки "оформить документы"
128. comol 5052 28.04.15 14:21 Сейчас в теме
Блин, а я же решение, кстати, не написал:

Процедура ЖдатьОчередьПечати() Экспорт

Locator = Новый COMОбъект("WbemScripting.SWbemLocator");
ИмяСервера = ".";
ИмяЮзера = ПолучитьИмяПользователя();
ТочкаПодключения = "root\cimv2";
objWMIService = Locator.ConnectServer(ИмяСервера, ТочкаПодключения);

МассивЗаданий = objWMIService.ExecQuery("Sel ect * fr om Win32_PrintJob where Owner='" + ИмяЮзера + "'",,48);
ЗаданийВОчереди = КоличествоЗаданий(МассивЗаданий);


Пока ЗаданийВОчереди > 0 Цикл
Пауза(1);
МассивЗаданий = objWMIService.ExecQuery("Select * fr om Win32_PrintJob wh ere Owner='" + ИмяЮзера + "'",,48);
ЗаданийВОчереди = КоличествоЗаданий(МассивЗаданий);
КонецЦикла;

КонецПроцедуры
Показать
129. user656994_375296904276 02.11.17 12:04 Сейчас в теме
(128)Немного допилил под 8ку. Работает чудейснейшим образом
Locator = Новый COMОбъект("WbemScripting.SWbemLocator"); 
ИмяСервера = "."; 
Скрипт=Новый COMОбъект("WScript.Network");
ИмяПользователя=Скрипт.UserName;
ТочкаПодключения = "root\cimv2"; 
objWMIService = Locator.ConnectServer(ИмяСервера, ТочкаПодключения); 

МассивЗаданий = objWMIService.ExecQuery("Sel ect * fr om Win32_PrintJob where Owner='" + ИмяПользователя + "'"); 
ЗаданийВОчереди =МассивЗаданий.Count;
Пока ЗаданийВОчереди > 0 Цикл 
//Задержка в 1 секунду	
scr = Новый COMОбъект("WScript.Shell"); 
scr.Run("ping 127.0.0.1 -n "+СокрЛП(Число(1)),0,1); 
//--------------------
МассивЗаданий = objWMIService.ExecQuery("Select * fr om Win32_PrintJob wh ere Owner='" + ИмяПользователя + "'"); 
ЗаданийВОчереди =МассивЗаданий.Count;
КонецЦикла;
Показать
2. SaschaL 20.05.14 14:22 Сейчас в теме
Попробуйте поиграться с драйвером принтера.
Принтер где установлен? ПЕчать случайно производится не на сервере терминалов? или возможно используется Принтсервер?
3. SaschaL 20.05.14 14:25 Сейчас в теме
У нас пододные проблемы были с обычними принетерами не сетевыми, подключенными через серевер терминалов. Вышли из данной ситуации путем перестановки альтернативных универсальных драйверов принтера, с родными драйверами на некотрых машинах были проблемы, то жирная пунктирная полоса по боку листа, причет это не мазня а откровенно пропечатанная, у другого посреди листа печаталсь полоса. То пропускал на очередь задания пришедшиее значительно позднее, те что стояли в очереди.
Вот примерно такие пляски с бубном проводили
4. comol 5052 20.05.14 14:26 Сейчас в теме
Да, печать в терминале, надо наверное указать. С галочками на принтере игрались. Вроде как по документации чтобы достичь желаемого нужно снять галочку "первыми печатать документы из очереди", но на поверку эта настройка не помогает :(
7. StormCrow 20.05.14 15:09 Сейчас в теме
(4) comol,
у нас Кайосеры 9530 и 4300, раз в неделю слетает последовательность документов, помогает перезапуск 1С и принтеров.
Еще нужно чтоб печатал 1 пользователь, другие пользователи нарушают очередь.
9. comol 5052 20.05.14 15:19 Сейчас в теме
(7) StormCrow, У нас пользователей несколько... и судя по всему никуда не денемся от этого :(
5. comol 5052 20.05.14 14:29 Сейчас в теме
А какие драйвера использовали если не секрет? Универсальные?
6. Cooler 22 20.05.14 15:01 Сейчас в теме
нужно снять галочку "первыми печатать документы из очереди", но на поверку эта настройка не помогает
А где галочку снимали - на сервере или на клиенте?
8. comol 5052 20.05.14 15:18 Сейчас в теме
(6) Cooler, На сервере... По идее там отправка происходит...
12. Cooler 22 20.05.14 16:01 Сейчас в теме
(8) В терминале итоговую очередь формируют два диспетчера печати: на сервере и на клиенте.

Вообще - на какой принтер осуществляется печать? Локальный, подключенный к серверу, или локально подключенный к клиенту, или сетевой на принт-сервере? Если локально к клиенту, то каким способом подключен - через расшаривание или через проброс? ОС на сервере какая? EasyPrint можно применить?

В-общем, поподробнее...
16. comol 5052 21.05.14 15:04 Сейчас в теме
(12) Cooler, О, видимо человек не понаслышке знакомый... принтеры сетевые на принтесервере.. но находятся в подсети клиента если это важно.. На сервере 2013 Сервер... EeasyPrint теоретически возможно если это имеет смысл и поможет решить подобные проблемы...
22. Cooler 22 21.05.14 15:45 Сейчас в теме
(16) EasyPrint в такой конфигурации (с принт-сервером) не имеет смысла, забудьте.

Последний вопрос: у вас "перемешиваются" документы одного пользователя? Или разных пользователей?

В последнем случае, ИМХО, задача не решается в принципе - никак вы не построите не зависящих друг от друга юзеров в одну общую очередь. Один обратился к диспетчеру печати (начал печать) первым, но у него объемное задание, второй начал позже, но всего одну страницу - он закончил раньше. Какое из заданий первым попадет в итоговую очередь?
23. comol 5052 21.05.14 15:51 Сейчас в теме
(22) Cooler, Одного. Теоретически можно наверное вообще выделить каждому по принтеру.
27. Cooler 22 21.05.14 17:32 Сейчас в теме
(23) Тогда, лично я считаю, порядок печати разных документов определяется порядком завершения формирования каждого из них. То есть, отправили задание на печать - диспетчер очереди печати создает на сервере временный файл и пишет в него данные, поступающие из 1С (через драйвер принтера), пока не получит от нее сигнал о завершении задания. До этого момента этот временный файл не трогается и никуда не пересылается, да и не может пересылаться: он вообще открыт. А вот как задание печати будет выполнено - спулер его закроет, отправит на принт-сервер и после этого удалит.

Отсюда вывод: чтобы обеспечить нужный порядок печати, каждый последующий документ должен начинать печататься после завершения предыдущего, желательно с тайм-аутом. Как обеспечить это программно - вам виднее, но формирование всего пакета в одном табличном документе, как предложено в (14), было бы идеальным вариантом, все остальное - костыли.

P.S. Все это написано в предположении, что используемый принт-сервер - достаточно простая железка и не умеет накапливать много документов в своей очереди, внося дополнительные изменения в последовательность печати. А если умеет - тады ой, поможет только один табличный документ.
30. comol 5052 21.05.14 17:41 Сейчас в теме
(27) Cooler, Ну вот я сейчас думаю примерно так же как и вы... но до идеи с тем чтобы всё в один табдок запихнуть мыслей как этим порядком рулить вообще не было...
14. mixa4 21.05.14 14:31 Сейчас в теме
(8) отправка да, на сервере, но очередь то разруливается на клиенте где сам принтер подключен...

так каша - это имеется в виду из документов одного пользователя, или разных?

документы на печать идут отдельными заданиями? нет варианта в самой 1С эти документы собрать в один макет и отправить на принтер одним заданием?
19. comol 5052 21.05.14 15:13 Сейчас в теме
(14) mixa4, Каша из документов одного пользователя... Документы на печать отдельным заданием - Табдок.Напечатать()

Наверное хорошая идея в один табличный документ собрать и отправить на печать, там правда печатные формы разные, очень разные, попробую вывести разделитель и следующий - посмотрю что получится - напишу.
69. smallbuk 33 26.05.14 11:31 Сейчас в теме
Ага.. и тогда начинается: листик от первого документа, листик от второго, листик от документа который печатает другой сотрудник...

Вот это и говорит о том, что запустили несколько копий одного документа. При выключенном параметре "Разобрать по копиям".
Про "листик от документа который печатает другой сотрудник" укажу на (19)

Проблема у ТС в том, что он пакетом отправляет несколько различных по объему документов. В этом случае,при установленном параметре настройки принтера "начинать печать после помещения в очередь всего задания" произойдет следующее:
1. документ А (100 страниц) - будет грузиться в очередь
2. документ Б (1 страница) - будет грузиться в очередь
3. документ В (5 страниц) будет грузиться в очередь.
В итоге получим такой порядок: Документ Б, Документ В, Документ А.

как-то так
70. Cooler 22 26.05.14 11:40 Сейчас в теме
(69)
В итоге получим такой порядок: Документ Б, Документ В, Документ А.
Не факт: если документ Б сложен для печати (например, содержит большое количество графических объектов - логотип фирмы, картинки с факсимиле подписи и печати и т.д.), то он может напечататься и после документа В.

Вот это и говорит о том, что запустили несколько копий одного документа.


Это говорит о том, что при галочке "Начинать печать немедленно" документ Б вклинивается между страницами документа А. Что само по себе логично при такой установке настроек, но автора ветки никак не устраивает.

В-общем, только укрепляюсь в своем мнении: печать всего пакета документов одним заданием из одного макета.
32. comol 5052 22.05.14 14:01 Сейчас в теме
(14) mixa4,(27) Cooler
нет варианта в самой 1С эти документы собрать в один макет и отправить на принтер одним заданием?
поможет только один табличный документ
Не прокатило :(. Дело в том что табличный документ не может объединять разные параметры страницы... т.е. портрет и ландшафт :(
33. volodya1122 8 22.05.14 14:55 Сейчас в теме
(32) Тогда сделать 2 табличных документа (или сколько надо) и печатать каждый с задержкой (побольше).
35. comol 5052 22.05.14 23:53 Сейчас в теме
(33) volodya1122, Дело в том что 90% доков это ТОРГ-12+СФ+ТТН. Итого Портрет - портрет - ландлшафт... а ещё у них параметры печати разные...
С задержкой и сейчас печатаем... воют :(
38. Cooler 22 23.05.14 10:05 Сейчас в теме
(35)
Итого Портрет - портрет - ландлшафт...
Ну, при очень большом желании от ландшафта можно избавиться: "Ориентация текста", плюс кардинальная перекройка макета и переписывание процедуры печати.

Геморройно, но зато реально.

а ещё у них параметры печати разные...
Неконкретно, так что по этому пункту ничего посоветовать не могу.

С задержкой и сейчас печатаем... воют :(
Видимо, пока не очень громко...
43. comol 5052 23.05.14 13:06 Сейчас в теме
(38) Cooler,
Видимо, пока не очень громко
Очень громко... иначе бы не изобретал таких "хитростей"...
"Ориентация текста", плюс кардинальная перекройка макета и переписывание процедуры печати.
с учетом того что одних только ТОРГ-12 вариантов 20 под разных клиентов... :(
34. mixa4 22.05.14 22:59 Сейчас в теме
(32) ну это сразу было понятно, тогда два табличных документа, портреты и ландшафты :)
все же я бы разбирался что там за порядок в очереди
36. comol 5052 22.05.14 23:56 Сейчас в теме
(34) mixa4,
все же я бы разбирался что там за порядок в очереди
я бы тоже разобрался... да скил не тот :(...
10. FilatovRA 169 20.05.14 15:29 Сейчас в теме
Первым в голову приходит дикий костыль. Отправка на печать в документ, в папке с документами на печать Автоупорядочивание по времени-дате, посылка на принтер из этой папки перехватчиком согласно купленным билетам :)
11. comol 5052 20.05.14 15:44 Сейчас в теме
(10) FilatovRA, Так не поможет... отправляются и сейчас они упорядоченными по времени... Просто потом Windows их упорядочивает исходя из своих собственных соображений...
13. FilatovRA 169 20.05.14 17:12 Сейчас в теме
Я не про windows, а про выделение отдельной машины на *nix по вкусу в качестве сервера печати. Я же написал, что это костыль :)
17. comol 5052 21.05.14 15:05 Сейчас в теме
(13) FilatovRA, О_о... я даже не думал о таком решении. Что-то мне подсказывает что проблем можно огрести больше чем решить...
15. rozer 306 21.05.14 14:41 Сейчас в теме
у нас реализовано печать на виртуальный принтер и далее спецпрограммка отправляет на печать уже pdf
18. comol 5052 21.05.14 15:06 Сейчас в теме
(15) rozer, А порядок печати это решает? У вас такая задача была? По сути там же всё равно будет очередь печати...
20. rozer 306 21.05.14 15:31 Сейчас в теме
(18) comol, как раз для этого и "городили огород" - все дело в названии файла. У нас по окончании опер.дня выполняется групповая печать нескольких сотен накладных (по 6 форм - УПД, договор, ТТН и пр.)
21. comol 5052 21.05.14 15:38 Сейчас в теме
(20) rozer, А программка как называется?
24. rozer 306 21.05.14 16:25 Сейчас в теме
(21) comol, написал наш админ
25. rozer 306 21.05.14 16:28 Сейчас в теме
+(24) да и еще в 1собработке групповой печати в один временной интервал может печатать только один пользователь т.е. у другого возникает предупреждение "выполняется групповая печать у маши пупкиной" :)
28. comol 5052 21.05.14 17:37 Сейчас в теме
(25) rozer, Не... вот это конечно незачОт :(
31. rozer 306 22.05.14 08:36 Сейчас в теме
(28) comol, да нет все ок - задание улетает быстро и блокировка снимается ну а принтер еще некоторое время печатает
53. Cooler 22 23.05.14 14:49 Сейчас в теме
(20) Я давно понял. Теперь вы поймите - не "20 вариантов ТОРГ-12", а 20 вариантов комплекта ТОРГ-12 + с/ф + ТТН.

Каждый комплект - отдельный макет, повторяющиеся части - копипастом. Все в ландшафте!!!
54. serg_info 116 24.05.14 10:28 Сейчас в теме
(15) rozer,

У меня печатается по такому принципу порядка 250 000 страниц в неделю, и неплохо уже много лет.
Алкашка - очень много сопроводительной документации на отгрузку.
Решение как вы написали, все на сервере в терминале
1) PDF принтер который печатает все в определенный каталог из 1С
2) в 1С сделана "кнопка" печати комплекта документов, куда входят все нужные документы в нужном порядке. Она посылает документы по одному на PDF принтер, а в финале создает cmd файл который обеспечивает сборку из отдельных PDF файлов - одного файла с комплектом документов. На этом же этапе прицепляются все необходимые сканированные документы.
3) Робот печати который запущен в 1С проверяет наличие cmd файлов в каталоге, затем проверяет что в файловой системе появились все нужные PDF файлы (вы не можете знать заранее время их появления, ведь PDF принтер выдает их не в реальном времени, а фоном)и запускает cmd файл на исполнение. При этом контролируется кол-во одновременно запущенных файлов на сборку комплектов (необходимо чтобы не занять все ресурсы сервера)
4) как итог получается 1 PDF = 1 комплект документов который у нас лежит в определенных папках (по пользователям) и запускается на печать сотрудниками в отделе распечатки, которые находятся поближе к складу, а не в офисе...

Решаемые задачи:
- не путаются документы никогда (есть ШК комплекта документов с версионированием)
- контроль что все комплекты распечатаны и они соответствуют версии в 1с
- минимальное время ожидания у операторов при запуске на печать комплекта документов
- все задачи по склейке отдельных PDF файлов в комплект происходят на RAM диске для максимального быстродействия

Минусы:
- нужно реализовывать кнопку "Печать комплекта", ну или обработку
- программировать алгоритм робота в 1С робота
- организационные затраты
dresh2110; +1 Ответить
26. mixa4 21.05.14 16:48 Сейчас в теме
Я бы еще вот с какой стороны поразмыслил: вряд ли задания совсем случайным порядком идут, пусть не по времени, но по какому-то принципу они же упорядочиваются? Не по названию ли (колонка "документ") в очереди? Точно не помню, но как-то возился с BiPrint/PDFCreator заметил что некоторые задачи печати в очереди видны не как "Табличный документ", а более осмысленно, то есть вроде можно задать это имя задания из программы, и если по нему сортирует, то и упорядочить можно будет.
29. comol 5052 21.05.14 17:38 Сейчас в теме
(26) mixa4, Я знаю по какому принципу. Счет-фатура - 1 листик - будет первым, ТОРГ-12 3 листа да ещё штрихкод - будет вторым. Т.е. что первым прогружается то первым и уходит на печать.
37. Stormicon 8 23.05.14 09:42 Сейчас в теме
Как вариант - использование печати в PDF - сборка в один временный файл и затем отправка на печать всего пула документов.
42. comol 5052 23.05.14 13:04 Сейчас в теме
(37) Stormicon, Вот пока это рабочий вариант... проверим... могут быть проблемы с тем что для каждого документа сохранены свои параметры страницы, в том числе и принтер...
44. Stormicon 8 23.05.14 13:09 Сейчас в теме
(42) comol, если кроме параметров страниц, разные еще и принтеры, тогда нужно формировать пулы под каждый принтер. С параметрами страниц больших проблем в pdf я думаю не будет.
39. kasper076 104 23.05.14 11:04 Сейчас в теме
Решение:
1. Переделывать нужные макеты в ланшафт
2. Формировать ОДИН табличный документ, через метод Присоединить() ТабличногоДокумента
3. Устанавливать ограничение на количество страниц. Делается опытным путем. 300/500/1000/и т.д.
4. Отправлять на принтер сформированный табличный документ.

Профит:
1. Скорость печати существенно увеличивается.
2. Проблем с порядком вывода нет. Проверено на принтерах Киосера.
40. Cooler 22 23.05.14 11:25 Сейчас в теме
(39)
1. Переделывать нужные макеты в ланшафт
Кстати, да, плюсую. Печать ТОРГ-12 и счета-фактуры портретом - признак очень большого желания сэкономить... на бумаге. У меня дистрибьютор такие документы присылает - все меленько-меленько, и дату получения ТМЦ от руки нормально не впишешь.
41. kasper076 104 23.05.14 12:18 Сейчас в теме
(40) Cooler, на самом деле можно и в портрет переделать. Суть в том, что все макеты должны быть одного формата.
45. comol 5052 23.05.14 13:30 Сейчас в теме
(39) kasper076,
Формировать ОДИН табличный документ
20 разных ТОРГ-12 и т.п.

Отправлять на принтер сформированный табличный документ
Параметры страницы для документа будут одними.. сейчас они для каждого свои..
48. kasper076 104 23.05.14 14:11 Сейчас в теме
(45) comol, именно. Присоединяя страницы можно регулировать порядок печати частей комплекта документов и последовательность самих комплектов. У нас оперки просили Торг12 - Сф - Торг12 - СФ - Спарвка Б - остальное. это последовательность страниц в комплекте документом. А последовательностью самих комплектов может быть например направления развозки. Т.е. сначала печатате направление Центр, потом Запад и т.д. Все что нужно это разобрать эту кипу бумаги вышедшую из принтера.

Что касается параметров, то тут придется попотеть с макетом. Именно с макетом (ед. число) Я сделал один макет на все виды документов печатающиеся в пакетном режиме. За счет этого все доки печатались корректно.

Скорость печати увеличилась существенно. Если раньше была пауза после каждого документа, то теперь принтер чуток задумывается при начале, зато потом из него льется, как из рога изобилия. и .т.к. "склеенный" таб. док. отправляется одним заданием, то последовательность документов всегда четко соответствует.
50. comol 5052 23.05.14 14:36 Сейчас в теме
(48) kasper076, Единый макет на 20+ внешних печатных форм... да ещё каждое изменение и в самой форме и в макете...
51. Cooler 22 23.05.14 14:44 Сейчас в теме
(50)
Единый макет на 20+ внешних печатных форм...
Полагаю, что имелось в виду 20+ макетов - по числу разновидностей комплектов документов. При печати выбирается какой-то один целиком.
52. comol 5052 23.05.14 14:46 Сейчас в теме
(51) Cooler, Нет, 20 вариантов ТОРГ-12.
46. Cooler 22 23.05.14 13:47 Сейчас в теме
20 разных ТОРГ-12 и т.п.
Это уже показатель того, что в консерватории не все ладно. Вспомнилось: "Автоматизация бардака создает не порядок, а автоматизированный бардак" (с)
47. Stormicon 8 23.05.14 13:57 Сейчас в теме
(46) Cooler, Не скажи, работал в свое время в Управляющей компании (ЖКХ). Так там тоже было весело со сч.ф и накладными. Особенно, когда приходится подстраиваться под такие компании как дочки Газпрома
49. comol 5052 23.05.14 14:26 Сейчас в теме
(46) Cooler, Да нет, это просто подход "лицом к клиенту" в принципе... кому какие формы удобны, такие и печатаем, для нас не проблемно а людям удобно.
55. serg_info 116 24.05.14 10:43 Сейчас в теме
Разнообразие печатных форм по клиентам решается путем их привязки к клиенту (подчиненный справочник печатных форм). Там же указывается их кол-во и порядок следования. Эти же формы привязаны на стандартный механизм 1С внешних печатных форм.
При вызове параметром определяем пакетная печать или нет. У пользователей прописаны в настройках "Личные каталоги" куда скидывать PDF файлы при групповой печати
При таком подходе каждый получает то что хочет а оператор не задумывается, какие формы нужно печатать.
Ландшафт - портрет PDF принтер сам вращает и все страницы получаются в портрете (просто ландшафтную форму поворачивает на 90 градусов и она становится портретом), что очень хорошо для скорости распечатки.

Ну уж тогда и по принтерам у нас весь основной вал печатается на Xerox5550 - 6 аппаратов, ресурс у них до 3 мил. на аппарат,. меняем раз в пол года. Ремкомплекты раз в 600. тысяч. Про более серьезные аппараты мы в курсе, но по факту их нужно брать минимум 3 штуки.
Т.к. на 2-х при выходе из строя одного выпуск не сделаешь, значит 3 - а это уже не очень экономически интересно, слишком велик срок окупаемости, никто не может сказать, что через 3 года еще останутся справки и сертификаты, может уйдем снова в ЕГАИС и надобность этой сопроводилки отпадет.

Кстати никто не вентилировал вопрос электронного комплекта документов подписанного ЭЦП, я бы так PDF подписал и на ftp. Водилам для провоза ноут + флешка. Сколько бы леса спасли.....
56. comol 5052 24.05.14 10:56 Сейчас в теме
(55) serg_info, Круто... А у вас нет такой штуки как печать на "разные принтеры". Объясню. Принтер то может и один. Но ТОРГ-12 нужно печатать, к примеру, двухсторонней печатью (лес спасаем) она отправляется на отдельный (в Windows отдельный) принтер "Duplex", а вот счет отправляется на обычный принтер.. и получается склеенный PDF уже не отправишь на раздельные принтеры :(.

С ЭЦП думали... дело в том что его должен использовать ещё и клиент... в нашем случае это не реально :(
57. devel0per 1 24.05.14 15:30 Сейчас в теме
Вам нужно курить API службы Диспетчера очереди печати:
Print Spooler API Functions
AddJob, EnumJobs, GetJob, SetJob

Чтобы сразу несколько принтеров задействовать можно поскрипеть через WMI:
WMI Tasks: Printers and Printing
60. comol 5052 26.05.14 09:51 Сейчас в теме
(57) devel0per, В смысле ВК написать?...
59. FilatovRA 169 26.05.14 09:26 Сейчас в теме
http://netler.ru/pc/spooler.htm

каждое задание на печать, как правило, «оформляется» парой файлов спулинга – *.SPL, *.SHD, например, 00005.SHD и 00005.SPL (или FP00001.SPL и FP00001.SHD)
Чуть-чуть ручками, и решение готово.
61. comol 5052 26.05.14 09:52 Сейчас в теме
(59) FilatovRA, Ну про файлы спулера это уже давно не секрет.. только что с ними делать чтобы печать последовательную обеспечить?...
62. FilatovRA 169 26.05.14 10:46 Сейчас в теме
(61) comol, Предметно ответить не могу, поэтому фантазия на тему (вдруг поможет)
1. Файлики падают в место Х.
2. За ними следит батник и с определенной задержкой отправляет их в папку печати.
Ну вот как-то так.
64. comol 5052 26.05.14 11:03 Сейчас в теме
(62) FilatovRA,
определенной задержкой
вот с этим и боремся... но вообще спасибо что подключил фантазию...
63. smallbuk 33 26.05.14 10:56 Сейчас в теме
А не мудрите ли вы?
Настройка принтера - Дополнительно - Использовать очередь печати - Начинать печать немедленно.

Вот и не будет "каши". В не зависимости от объемности документов, они будут выстраиваться в очереди в хронологическом порядке.
65. comol 5052 26.05.14 11:05 Сейчас в теме
(63) smallbuk,
Начинать печать немедленно
Ага.. и тогда начинается: листик от первого документа, листик от второго, листик от документа который печатает другой сотрудник...
66. smallbuk 33 26.05.14 11:06 Сейчас в теме
Настройка печати - разбор по копиям
67. Cooler 22 26.05.14 11:20 Сейчас в теме
(66)
Настройка печати - разбор по копиям
Это вообще не о том: регулирует последовательность страниц если печатается несколько копий одного и того же документа.

А у автора - пакетная печать нескольких разных документов.
68. comol 5052 26.05.14 11:31 Сейчас в теме
(66) smallbuk, (67) Cooler, Согласен с коллегой - не помогает...
71. smallbuk 33 26.05.14 11:48 Сейчас в теме
согласен. дело не в количестве страниц, а в заполнении.
а вот выбор настройки "начинать печать немедленно" при пакетной печати не очень корректен.
решение печати одним макетом - вполне жизнеспособно. однако трудозатраты...
слепить торг12+сф+ттн можно. но кто даст гарантию, что в будущем потребуется пакетная печать других документов (навскидку: авансовый+доверенность)?
72. Stormicon 8 26.05.14 12:09 Сейчас в теме
(71) smallbuk, в (54) у serg_info сделано конечно интересно, но мне кажется, некоторые из моментов стоит упростить. Вообще, сейчас не проблема использовать формирование pdf напрямую в 1С, причем с использованием "массива готовых табличных документов для конвертации в pdf", цитата прям из публикации.
74. comol 5052 26.05.14 12:13 Сейчас в теме
(72) Stormicon, Только не помогает тоже.. принтеры разные... ТОРГ-12 печатается на "виртуальный принтер" "Duplex" чтобы распечатать с 2-х сторон, СФ так же, с счет - на обычный принтер... в случае с PDF такое не прокатит :(
75. Stormicon 8 26.05.14 12:37 Сейчас в теме
(74) comol, вообще ,в 8.3 появилась возможность использовать возможности двухсторонней печати прямо в программном коде. по крайней мере насколько помню, в 8.3.4. В общем-то вывод простой - без рукоприкладства и некоторых дописок в любом случае не обойтись. Как именно реализовывать, решать вам.
76. comol 5052 26.05.14 13:11 Сейчас в теме
(75) Stormicon, Я понял, если бы кто-то подсказал что дописать.... в PDF вывод сделал уже но проблему не решило, только если как в (57) посоветовали ВК писать... Но пока ещё надеюсь на существование другого способа...
81. Cooler 22 26.05.14 13:42 Сейчас в теме
(74) Тогда вы хотите даже не классическое "впихнуть невпихуемое", а чтобы "одним пальцем нажал - и само вошло".

Так не бывает.
82. Stormicon 8 26.05.14 14:04 Сейчас в теме
(81) Cooler, Да в принципе, ничего страшного. Единственное, как и везде с автоматизацией - требуется первоначальная настройка. Принцип прост - есть первоначальные условия - список документов контрагента, есть первоначальная настройка условий для каждой печатной формы. формирование в пакетный файл/файлы. Опять-таки дуплекс сейчас реализуем из программного кода в обычном макете, уже без "виртуального" принтера. Как другой вариант: формирование автоматически для обязательной дуплексной печати, с использованием разрыва страниц в одном файле pdf. Да, будет время увеличиваться на лишний "пустой" проход второй стороны того же счета, к примеру.
87. comol 5052 26.05.14 17:36 Сейчас в теме
(81) Cooler, Да знаете... я в принципе вроде ничего особенного не хочу... я просто хочу чтобы документы выходили из принтера в той последовательности в которой их туда отправляют.... И пользователю не объяснишь почему такая простая вещь вызывает столько сложностей...
90. Cooler 22 26.05.14 20:46 Сейчас в теме
(87)
я просто хочу чтобы документы выходили из принтера в той последовательности в которой их туда отправляют...
Уфф! Никак не хотите понять: в реальном мире (на практике) последовательность формируется не порядком начала отправки задания диспетчеру печати, а порядком завершения этой отправки.

Я это уже давно заподозрил, а smallbuk лишь подтвердил в (69) и (71).

Вот когда научитесь рулить этим порядком завершения (который определяется порядком отправки плюс временем формирования каждого документа) в многозадачной Windows - тогда и будет вам "простая вещь" счастье.
91. comol 5052 26.05.14 23:17 Сейчас в теме
(90) Cooler, Да я понимаю... может и "докачусь" до написания ВК.. я просто если рассуждать "житейскими" понятиями инчего ведь особенного не хочу...
73. comol 5052 26.05.14 12:11 Сейчас в теме
(71) smallbuk, Счет, возврат, доверенность... да и ТОРГ-12 она не в единичном варианте как уже писал... не, с макетом не реально.. весь отдел будет заниматься только печатными формами тогда
77. smallbuk 33 26.05.14 13:17 Сейчас в теме
печатаем из 1С определенные наборы документов

опишите пожалуйста подробнее процедуру печати. Обработка для групповой печати? Открыть-Печать? Может другой способ. Думаю, эта информация даст толчок к решению задачи обществом
84. comol 5052 26.05.14 17:33 Сейчас в теме
(77) smallbuk, Способ другой - программно "Печать - Комлект"... далее друг за другом печатаются печатные формы... вот только не совсем друг за другом...
78. Stormicon 8 26.05.14 13:18 Сейчас в теме
Делаешь обработку по формированию пакета документов для выделенных контрагентов, регламентированным заданием. Как вариант, дополняешь справочник контрагентов требуемыми настройками по внешнему виду макетов каждого из документов. Делаешь один из вариантов по умолчанию, остальные, хоть как вар1, вар2, вар3 называй, непринципиально. Вешаешь соответствующие макеты на нужные варианты, проверяешь в обработке нужные реквизиты - формируешь автоматом пакет в pdf.... дальше продолжить? ;)
85. comol 5052 26.05.14 17:34 Сейчас в теме
(78) Stormicon,
регламентированным заданием
ТабДок.Напечатать() на сервере не работает :(
79. Ёпрст 1063 26.05.14 13:23 Сейчас в теме
На сколько я понял, у аутора вся проблема только в дуплексе, а не в "очереди" печати.
И печатает он на разный "принтёры" которые заведены на одно устройство, так ?..
80. Stormicon 8 26.05.14 13:25 Сейчас в теме
(79) Ёпрст, Скорее в том числе в "дуплексе". Распечатывать для разных контрагентов разный набор документов. Плюсом, в каждом из них может быть свой вариант печати.
86. comol 5052 26.05.14 17:35 Сейчас в теме
83. ganai1 26.05.14 15:45 Сейчас в теме
Пользуемся ScrewDriver и не видим подобных проблем
88. comol 5052 26.05.14 17:37 Сейчас в теме
(83) ganai1, У нас принтсервер :(
92. ganai1 27.05.14 10:46 Сейчас в теме
(88) comol, Ну и что, это никак не затруднит использования ScrewDrivers
93. comol 5052 27.05.14 10:48 Сейчас в теме
(92) ganai1, Так ScrewDrivers это же вроде для печати из терминала на принтеры, подключенные к компьютеру локально... а мы печатаем на принтеры подключенные через принтсервер...
94. ganai1 27.05.14 15:46 Сейчас в теме
(93) comol, А мы печатаем и на локально подключенные, и на сетевые, и на подключенные через принтсервер. Разницы по большому счету никакой нет.
95. comol 5052 27.05.14 16:15 Сейчас в теме
89. mixa4 26.05.14 18:08 Сейчас в теме
А будет ли сбиваться порядок если отключить принтер ("работать автономно" или для проверки - питанием) перед началом формирования очереди и включить после?
96. Захаров_Николай 11 28.05.14 17:35 Сейчас в теме
Я бы сделал очередь в регистре, а на печать выводил бы рег. заданием. Контролировал выполнение печати скриптом по окончании печати чистил бы записи которые прошли. Побочный эффект - немного медленно. Но задача была бы выполнена. Такой диспетчер печати на базе 1С.
P.S.: Если уже кто-то предлагал не пинайте. Тему читал не внимательно.
97. comol 5052 28.05.14 17:55 Сейчас в теме
(96) Захаров_Николай, Я бы даже сказал что это уже сделал - ничем особым не помогло... тоже медленно, только "база не подвисает сильно"... но "перемешивает ещё больше", потому как задержки нет...
98. Захаров_Николай 11 28.05.14 23:00 Сейчас в теме
Надо мыслить в другом направлении. Смысл создавать очередь в реестре, если принтер будет печатать задание неопределенно долго. А рег. задание будет посылать ему задачи через промежуток времени. Понятное дело будет каша. И задача стоит в том, как отследить момент когда принтер закончил выполнять задачу? А уже потом посылать следующее. Только WinApi функциями. 1С сама не умеет их перехватывать.
Чтобы не быть голословным изучил функции которые работают со спулером. Прямо идеально подходящее сообщение WM_SPOOLERSTATUS, поиграл с этим сообщением и понял, что в современных ОС оно не работает. Но нашел код который по запросу показывает количество заданий. В принципе уже его можно запихать в Dll и передавать ей параметр - имя принтера и получать количество заданий. Если это 0 то посылать следующее. А если дальше развивать тему с dll то можно анализировать статус задачи и работать с ним из 1С.
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот