Данное решение можно использовать в тех случаях, когда наблюдаются проблемы с распечаткой документов с терминального сервера путем проброса локального принтера в терминальную сессию средствами протокола RDP. Подобные проблемы замечены при использовании некоторых моделей принтеров на сервере удаленных рабочих столов windows server 2016. Если говорить более точно то речь идет о отказоустойчивой ферме серверов удаленных рабочих столов с 10ком серверов. Локальный принтер подключается в настройках подключения к УРС. В терминальной сессии принтер виден, однако при отправке документа на этот принтер документ не распечатывается, сообщений об ошибках не возникает. манипуляции с разными драйверами и настройками не помогают. Пользователи работают на терминальном сервере в программе 1С и не могу печатать на своих локальных принтерах. Установка драйверов принтеров на сервере и подключение расшаренных принтеров запрещена политикой безопасности (на то есть свои причины). С проблемой печати с помощью easy print столкнулись в связке windows server 2019 windows 7(x32) и некоторые линейки принтеров HP. Возможно данные проблемы наблюдаются и в других связках ПО.
Суть метода заключается в том, что по расписанию 1 раз в минуту на локальном ПК запускается bat файл который отправляет на принтер, который установлен по умолчанию на локальном ПК, файл формата pdf, который расположен на диске Х. После того как файл передан на принтер он удаляется с диска Х. Диск Х подключается к RDP сессии по средствам самого протокола RDP. В терминальной сессии пользователь, каким либо способом сохраняет нужный для печати документ в диск Х. В конфигурациях 1С работающих на платформе 8.3 существует возможность сохранять печатные форму документов в пару кликов мыши. Операция сохранения в pdf занимает не больше действий пользователя чем стандартно отправить на печать. Так же можно использовать для получения pdf какой либо pdf принтер.
Для настройки работоспособного решения необходимо провести ряд настроек:
1. Необходимо чтобы на локальном ПК имелся диск с буквой Х. диск может быть как локальным, так и сетевым.
2. В настройках РДП подключения необходимо подключить диск Х к терминальной сессии. Локальные принтеры можно не подключать так как данное решение предполагает что стандартный easy print не работает.
3. Создать папку c:\print. В которую скопировать файлы: PDFtoPrinter.exe, print.bat, print.exe
4. В стандартном планировщике windows создать задание со следующими настройками:
Данное задание выполняет по расписанию 1 раз в минуту программу print.exe. print.exe представляет собой скомпилированный при помощи «Advanced BAT to EXE Converter» файл print.bat. Компиляция bat в exe позволяет скрыто запускать задание печати, в процессе работы не возникает никаких дополнительных окон. Если в планировщике запускать bat, то наблюдается кратковременное мерцание черного окна терминала при выполнении задания что отвлекает пользователя. Если скопировать в заданную папку несколько файлов, то скрипт автоматически запустит их на печать.
Файл print.bat
echo off
for %%f in (x:\*.pdf) do (
REN "%%f" "%RANDOM%.pdf"
)
for %%f in (x:\*.pdf) do (
c:\print\PDFtoPrinter.exe %%f
del /Q %%f
)
В приведенной инструкции все пути и настройки сделаны под конкретные условия. Описанный метод можно модифицировать как угодно под любые ситуации.