Настройка торгового оборудования в терминальном режиме часто преподносит сюрпризы системным администраторам и специалистам по автоматизации. Типичная ситуация: чековый принтер отлично печатает тестовую страницу из локальной Windows, успешно проходит тест в настройках подключаемого оборудования 1С, но при попытке пробить реальный чек или открыть смену принтер абсолютно «молчит». В этой статье мы подробно разберем, почему возникает эта проблема при работе через RDP на сервере Windows Server 2016 под управлением 1С:Управление торговлей 11, и рассмотрим все способы ее решения — от программных настроек до аппаратного конфигурирования принтера.
Для начала проанализируем физику процесса взаимодействия 1С с чековым принтером. Когда мы запускаем печать пробной страницы из операционной системы Windows, документ рендерится графической подсистемой ОС и отправляется на принтер как обычное изображение. Но когда программа 1С (используя Библиотеку подключаемого оборудования — БПО) отправляет нефискальный чек на принтер чеков, она общается с устройством посредством прямых ESC/POS-команд в режиме RAW-печати.
При использовании RDP-подключения стандартная служба перенаправления принтеров (Easy Print) пытается перехватить этот поток данных, преобразовать его в формат XPS и отправить обратно на локальный ПК. В этот момент управляющие ESC/POS-команды искажаются или полностью блокируются очередью печати Windows Server. В результате принтер получает поврежденный буфер данных и просто очищает его, не выводя на ленту ни одного символа.
Ниже мы подробно разберем по шагам комплекс мер для решения этой проблемы.
Чековые принтеры Posiflex крайне чувствительны к передаваемой кодировке текста. Если принтер получает данные в неподдерживаемой кодовой странице (например, UTF-8 или Windows-1251 вместо OEM CP866), его внутренний интерпретатор команд может зависнуть или уйти в защиту. Для корректной русификации чеков на принтере Posiflex Aura-6900 необходимо выполнить следующие настройки в 1С:
Page07 или автоматический выбор. Нам необходимо принудительно выбрать значение Page17.Технология Remote Desktop Easy Print отлично подходит для офисных лазерных принтеров, но губительна для POS-терминалов. Чтобы заставить RDP-сессию напрямую пробрасывать RAW-данные на локальный принтер, нам нужно отключить использование Easy Print на стороне сервера и установить «родные» драйверы.
Разберем процесс настройки групповых политик на сервере Windows Server 2016:
Win + R, введем команду gpedit.msc и нажмем Enter.Если проброс принтера через виртуальные каналы RDP все равно дает сбои или вызывает задержки при печати, самым надежным решением является публикация принтера в локальной сети и его прямое подключение на сервере. Именно этот способ помог автору темы окончательно решить проблему.
Рассмотрим данный процесс по шагам:
Posiflex6900.Для автоматизации подключения принтера при старте RDP-сессии пользователя мы можем написать простой скрипт на языке PowerShell и поместить его в автозагрузку пользователя на сервере:
# Шаблон скрипта автоматического подключения принтера чеков в сессии RDP
$ClientName = $env:CLIENTNAME
if ($ClientName) {
$PrinterPath = "\\$ClientName\Posiflex6900"
Write-Host "Подключаем принтер чеков: $PrinterPath"
Add-Printer -ConnectionName $PrinterPath
}
else {
Write-Host "Скрипт запущен вне RDP-сессии"
}
После выполнения этого скрипта на сервере в списке принтеров появится полноценный сетевой принтер, который общается с локальным компьютером по сетевому протоколу SMB напрямую, полностью минуя подсистему RDP-маппинга.
Очень часто некорректная работа принтеров Posiflex Aura-6900 в терминальной среде связана с тем, что устройство аппаратно настроено на один интерфейс передачи данных, а программно мы пытаемся использовать другой. На нижней панели принтера, под металлической заглушкой, расположены DIP-переключатели. Перед изменением их положения обязательно отключите принтер от сети питания.
Проанализируем ключевые положения переключателей для Posiflex PP-6900:
Если специфика вашей инфраструктуры не позволяет настроить стабильный проброс ESC/POS-команд, мы можем перевести 1С в режим графической печати чеков. Для этого в УТ 11 вместо стандартной настройки принтера чеков как «Принтер чеков (команды ESC/POS)» мы настраиваем его как обычный «Windows-принтер».
В этом случае 1С формирует обычный табличный документ (графический макет чека) и отправляет его в спулер печати Windows. Данный способ полностью решает проблемы с кодировками и пробросом портов, однако требует точной настройки параметров страницы (полей и ширины ленты) в свойствах принтера на сервере, чтобы текст чека не обрезался по краям.
Мы подробно разобрали все аппаратные и программные нюансы настройки чекового принтера Posiflex Aura-6900. Применив данные рекомендации, вы сможете обеспечить стабильную и быструю печать чеков из 1С в любой терминальной среде.