Печать в терминале Windows

16.01.13

Разработка - Инструментарий разработчика

Существует проблема печати в терминальной сессии Windows. Особенно это актуально для тех, кто работает с 1С. Есть как платные, так и бесплатные решения. Например, платное решение ScrewDrivers от фирмы triCerat стоит более 50000 рублей. Вашему вниманию предлагается программа, которая в связке с бесплатными FoxitReader и PDFCreator решает обозначенную проблему. В Windows 10 можно обойтись и без установки PDFCreator.

Скачать исходный код

Наименование Файл Версия Размер
Печать в терминале Windows для FoxitReader:
.7z 483,01Kb
0
.7z 483,01Kb Скачать

Существует довольно много как стандартных, так и нестандартных решений проблемы печати в терминальной сессии Windows. Данная публикация и предлагаемая программа-скрипт, написанная на AutoIT, не претендуют на новизну, а являются результатом практической реализации идей из следующих источников:

http://autoit-script.ru/index.php?topic=5266.0

http://habrahabr.ru/post/112404/

http://www.forum.mista.ru/topic.php?id=249047

Итак, исходные данные. 1)На клиенте должен быть установлен FoxitReader. 2)В терминальной сессии - виртуальный принтер PDFCreator. 3)Также необходимо наличие программы-скрипта PrintFoxit.exe для 32-х разрядной или PrintFoxit_x64.exe для 64-х разрядной версии Windows. Программа-скрипт предполагает стандартный каталог установки программ - Program Files, иначе работать не будет, чтобы работало нужно править скрипт (на всякий случай исходные коды прилагаются).

1.На клиенте создаем каталог, куда будут копировать pdf-файлы. В этот каталог помещаем исполняемый файл PrintFoxit.exe или PrintFoxit_x64.exe в зависимости от версии Windows. Создаем ярлык на PrintFoxit.exe в автозагрузке и запускаем файл. Программа должна быть в памяти системы, так как она постоянно анализирует свой текущий каталог на наличие pdf-файлов.

2.Настраиваем терминальный клиент. В его свойствах, там где определяются локальные ресурсы, должна стоять галочка напротив диска, на котором находится каталог с файлом PrintFoxit.exe. См. рис.1. У меня это диск D:\ .  Т.е. к терминальной сессии должен быть подключен локальный диск клиента с каталогом, куда будут копироваться PDFCreator-ом файлы, отправленные в терминале на печать.

3.В терминальной сессии настраиваем PDFCreator. В настройках Авто-сохранение указываем подключенный в терминале диск с папкой, где находится PrintFoxit.exe. У меня это: \\d\ДляПечати

3.1. Если в качестве терминального сервера используется Windows 10, то можно не устанавливать и использовать PDFCreator, а воспользоваться встроенной программой Microsoft Print to PDF. Подробная настройка такой программы описана по ссылке:

Поддержка печати в PDF файл в Windows 10

4.В терминальной сессии в качестве принтера по-умолчанию для удобства нужно указать принтер PDFCreator.

4.1.Если используется Microsoft Print to PDF, то нужно при сохранении файла указать примонтированный в терминальной сессии диск с каталогом для печати.

Печать терминал виртуальный PDF-принтер 1С.

См. также

Infostart Toolkit: Инструменты разработчика 1С 8.3 на управляемых формах

Инструментарий разработчика Роли и права Запросы СКД Платформа 1С v8.3 Управляемые формы Запросы Система компоновки данных Конфигурации 1cv8 Платные (руб)

Набор инструментов программиста и специалиста 1С для всех конфигураций на управляемых формах. В состав входят инструменты: Консоль запросов, Консоль СКД, Консоль кода, Редактор объекта, Анализ прав доступа, Метаданные, Поиск ссылок, Сравнение объектов, Все функции, Подписки на события и др. Редактор запросов и кода с раскраской и контекстной подсказкой. Доработанный конструктор запросов тонкого клиента. Продукт хорошо оптимизирован и обладает самым широким функционалом среди всех инструментов, представленных на рынке.

10000 руб.

02.09.2020    125056    683    389    

732

Infostart PrintWizard - создание и редактирование печатных форм в 1С 8.3

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

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

18000 руб.

06.10.2023    7792    24    6    

42

Infostart УДиФ: Управление данными и формами 1С

Инструменты администратора БД Инструментарий разработчика Роли и права Платформа 1С v8.3 Конфигурации 1cv8 Россия Платные (руб)

Расширение позволяет без изменения кода конфигурации выполнять проверки при вводе данных, скрывать от пользователя недоступные ему данные, выполнять код в обработчиках. Не изменяет данные конфигурации, легко устанавливается практически на любую конфигурацию на управляемых формах.

10000 руб.

10.11.2023    4296    12    2    

36

SALE! %

PowerTools

Инструментарий разработчика Инструменты администратора БД Платформа 1С v8.3 Управляемые формы Конфигурации 1cv8 Россия Платные (руб)

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

3600 2280 руб.

14.01.2013    178679    1084    0    

862

Многопоточность. Универсальный «Менеджер потоков» 2.1

Инструментарий разработчика Платформа 1С v8.3 Конфигурации 1cv8 Россия Платные (руб)

Восстановление партий или взаиморасчетов, расчет зарплаты, пакетное формирование документов или отчетов - теперь все это стало доступнее. * Есть желание повысить скорость работы медленных алгоритмов! Но... * Нет времени думать о реализации многопоточности? * о запуске и остановке потоков? * о поддержании потоков в рабочем состоянии? * о передаче данных в потоки и как получить ответ из потока? * об организации последовательности? Тогда ЭТО - то что надо!!!

5000 руб.

07.02.2018    99649    239    97    

298

[ЕХТ] Фреймворк для Расширений 1С

Инструментарий разработчика Платформа 1С v8.3 Управляемые формы Платные (руб)

"Фреймворк для Расширений 1С" это универсальное и многофункциональное решение, упрощающее разработку и поддержку создаваемых Расширений. Поставляется в виде комплекта из нескольких Расширений с открытым исходным кодом. Работает в любых Конфигурациях в режиме Управляемого приложения с режимом совместимости 8.3.12 и выше без необходимости внесения изменений в Конфигурацию.

3000 руб.

27.08.2019    18407    6    8    

40

Выполнение произвольного кода или запроса с параметрами через Web-сервис (замена COM-подключений)

Инструментарий разработчика Обмен между базами 1C Платформа 1С v8.3 Платные (руб)

В процессе работы в 1С часто возникает потребность получить данные из другой базы.  Обычно это делается через COM-соединение, и время выполнения запроса при этом оставляет желать лучшего. В данной публикации представлено универсальное решение, позволяющее практически моментально выполнить произвольный код или запрос с параметрами в другой информационной базе через Web-сервис.

2400 руб.

24.09.2019    23863    16    15    

33

1С HTML Шаблоны / HTML Templates

Инструментарий разработчика Платформа 1С v8.3 Конфигурации 1cv8 Платные (руб)

Быстрая и удобная обработка для работы с шаблонами HTML. Позволяет легко и быстро формировать код HTML.

2040 руб.

27.12.2017    28331    3    10    

16
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. Иной 17.01.13 01:17 Сейчас в теме
А в чём проблема то? Если принтера сетевые - беспроблемно. Не сетевые можно сделать сетевыми с помощью принтсерверов.

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

Ни в коем случае не нужно "тянуть" свои локальные принтера терминалным подключением, иначе будут множится принтера на терминалве. А так как описано выше - работает =). Причём без использования стороннего софта, штатными средствами.

Единственное условие - условно единая сеть со статическими апишками.
4. compil7 80 17.01.13 18:14 Сейчас в теме
(1) Иной, описываемый в публикации способ печати - это один из самых простых вариантов решения.
Ваш вариант (хотя, конечно, он не ваш, потому что применяется уже давно) тоже использовался и неоднократно. Но есть организации или отдельные бухгалтера, которые ни в какую не хотят осуществлять дополнительные расходы, например, покупать принтсерверы. Кроме этого, на терминал нужно дополнительно устанавливать драйвера принтера, а это не всегда возможно, если сам не администрируешь сервер.
В используемом способе подключения ни в коем случае не нужно пробрасывать локальные принтеры на терминальный сервер!!! Подключается только локальный диск с папкой, в которую через терминальную сессию сбрасываются pdf-документы на печать. После печати эти документы автоматически удаляются с помощью используемой программы-скрипта. Если нужно, то скрипт можно переделать и архивировать распечатываемые документы в отдельную папку пользователя, потом в случае каких-либо непоняток предъявить ему в качестве доказательства.
В предложенном способе абсолютно не нужно условно-единая сеть со статическими ip-шниками.
2. Alister 9 17.01.13 01:26 Сейчас в теме
На терминал прописываются все принтера, на которые нежна печать и вуаля.

Не в применение этой разработки, а только для уточнения - не под все принтеры есть драйвера, например для 2008R2
3. Иной 17.01.13 01:52 Сейчас в теме
(2) Alister, Тоже вариант. Но тут тогда больше проблема в планировании развития =). Потому как получается сервак новенький поставить поставили, а про то что на нём работать придется не подумали...

Тогда вопрос становится интересным.
7. compil7 80 17.01.13 18:27 Сейчас в теме
(3) Иной, зачастую так и происходит. Приходишь в организацию и слышишь: мы купили сервер для 1С, чтобы быстрее работать. Потом выясняется, что у них 1С 7.7 и работает в ней около 10 человек, и используется файловый вариант, и база выросла. Покупать sql-версию не хотят, но хотят чтоб быстрее работало. Естественно, единственное решение - терминальный режим. Хорошо, если все сидят в одном здании и есть ethernet, тогда не проблема просто расшарить принтеры...
5. compil7 80 17.01.13 18:19 Сейчас в теме
(2) Alister, очень часто в качестве терминального сервера используют обычную WindowsXP. Предложенный способ может решить проблему печати, даже если в качестве терминала используется FreeBSD или Linux.
6. Иной 17.01.13 18:23 Сейчас в теме
Согласен. Переспав с этой мыслью, соглашаюсь. В варианте когда нужно работать с тем что уже есть.

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

То есть весть механизм заключается в переборе содержимого папки и отсылке оного на печать?
8. compil7 80 17.01.13 18:34 Сейчас в теме
(6) Иной, ну конечно! Клиент - это обычная бухгалтерша, у которой стоит обычный usb-шный принтер и которая работает в терминале, а терминал установлен неизвестно где...
В папке максимум находится только исполняемый файл скрипта и один pdf-документ, который после распечатки удаляется.
9. Иной 17.01.13 18:38 Сейчас в теме
=). У меня просто пользователи разбросаны по стране группами более чем по 100 человек. И много-много принтеров.

Тут уже не до экономии =)
Last_Lame; +1 Ответить
10. compil7 80 17.01.13 18:45 Сейчас в теме
(9) Иной, в вашем случае, конечно, идеальный вариант - это ScrewDrivers от triCerat. Дорого, но зато сердито и надежно.
11. Иной 17.01.13 18:55 Сейчас в теме
Проще принтера покупать к которым есть дрова. Тем более что дешевле покупать большие МФУ-кши рассчитанные на сотни тысяч страниц печати чем дергаться с мелкими принтерами (которые при таком объеме печати долго не живут).

Ну и для ускорения работы баз основную роль играет не версия винды а качество железа. У нас блейд система и 2003 винда работает нормально (терминалки). Жаль когда решение принимают не ИТ специалисты, или если принимают то не обдуманные. А потом уже и деваться то некуда =)
12. Alister 9 17.01.13 20:34 Сейчас в теме
Иной, Вы по-видимому фикси, а я узнал, что будет сервер с win2008r2 только когда его уже купили, ибо железо обслуживает одна фирма, а 1С другая, так что не до долгосрочного планирования, увы :(
Оставьте свое сообщение