Как исправить проблему с печатью чекового принтера Posiflex Aura-6900 в 1С через RDP?

Системный администратор 1С v8.3 (Управляемые формы) 1С:Управление торговлей Управленческий учет Торговля и дистрибуция
← На главную

Настройка торгового оборудования в терминальном режиме часто преподносит сюрпризы системным администраторам и специалистам по автоматизации. Типичная ситуация: чековый принтер отлично печатает тестовую страницу из локальной Windows, успешно проходит тест в настройках подключаемого оборудования 1С, но при попытке пробить реальный чек или открыть смену принтер абсолютно «молчит». В этой статье мы подробно разберем, почему возникает эта проблема при работе через RDP на сервере Windows Server 2016 под управлением 1С:Управление торговлей 11, и рассмотрим все способы ее решения — от программных настроек до аппаратного конфигурирования принтера.

Почему принтер проходит тесты, но не печатает чеки?

Для начала проанализируем физику процесса взаимодействия 1С с чековым принтером. Когда мы запускаем печать пробной страницы из операционной системы Windows, документ рендерится графической подсистемой ОС и отправляется на принтер как обычное изображение. Но когда программа 1С (используя Библиотеку подключаемого оборудования — БПО) отправляет нефискальный чек на принтер чеков, она общается с устройством посредством прямых ESC/POS-команд в режиме RAW-печати.

При использовании RDP-подключения стандартная служба перенаправления принтеров (Easy Print) пытается перехватить этот поток данных, преобразовать его в формат XPS и отправить обратно на локальный ПК. В этот момент управляющие ESC/POS-команды искажаются или полностью блокируются очередью печати Windows Server. В результате принтер получает поврежденный буфер данных и просто очищает его, не выводя на ленту ни одного символа.

Ниже мы подробно разберем по шагам комплекс мер для решения этой проблемы.

Решение 1. Настройка правильной кодовой таблицы в 1С

Чековые принтеры Posiflex крайне чувствительны к передаваемой кодировке текста. Если принтер получает данные в неподдерживаемой кодовой странице (например, UTF-8 или Windows-1251 вместо OEM CP866), его внутренний интерпретатор команд может зависнуть или уйти в защиту. Для корректной русификации чеков на принтере Posiflex Aura-6900 необходимо выполнить следующие настройки в 1С:

  1. Перейдем в раздел НСИ и администрирование, далее выберем пункт РМК и оборудование и откроем список Подключаемое оборудование.
  2. Найдем наш чековый принтер и откроем его форму настроек.
  3. Обратим особое внимание на параметры кодовой страницы. По умолчанию там может быть установлена Page07 или автоматический выбор. Нам необходимо принудительно выбрать значение Page17.
  4. В качестве кодировки строки (кодировки текста) обязательно установим значение CP866 (кириллица MS-DOS).
  5. Запишем настройки и проведем повторный тест устройства.

Решение 2. Обход Easy Print через локальную установку драйверов

Технология Remote Desktop Easy Print отлично подходит для офисных лазерных принтеров, но губительна для POS-терминалов. Чтобы заставить RDP-сессию напрямую пробрасывать RAW-данные на локальный принтер, нам нужно отключить использование Easy Print на стороне сервера и установить «родные» драйверы.

Разберем процесс настройки групповых политик на сервере Windows Server 2016:

  1. На сервере откроем редактор локальной групповой политики. Для этого нажмем сочетание клавиш Win + R, введем команду gpedit.msc и нажмем Enter.
  2. Перейдем по следующему пути: Конфигурация компьютера -> Административные шаблоны -> Компоненты Windows -> Службы удаленных рабочих столов -> Узел сеансов удаленных рабочих столов -> Перенаправление принтеров.
  3. Найдем политику с названием «Использовать в первую очередь драйвер принтера Easy Print удаленного рабочего стола» (Use Remote Desktop Easy Print printer driver first).
  4. Двойным кликом откроем настройки этой политики и переведем ее в состояние «Отключено» (Disabled).
  5. На сервере (Windows Server 2016 x64) установим оригинальный драйвер принтера Posiflex Aura-6900 соответствующей разрядности.
  6. Выполним выход из RDP-сессии (Logoff) и зайдем заново. Теперь сервер сопоставит проброшенный принтер с оригинальным локальным драйвером, что обеспечит прямую передачу ESC/POS-команд.

Решение 3. Подключение принтера как сетевого (расшаренного) ресурса

Если проброс принтера через виртуальные каналы RDP все равно дает сбои или вызывает задержки при печати, самым надежным решением является публикация принтера в локальной сети и его прямое подключение на сервере. Именно этот способ помог автору темы окончательно решить проблему.

Рассмотрим данный процесс по шагам:

  1. На локальном компьютере (где физически подключен принтер по USB) откроем Панель управления -> Устройства и принтеры.
  2. Кликнем правой кнопкой мыши по принтеру Posiflex Aura-6900, выберем Свойства принтера и перейдем на вкладку Доступ.
  3. Установим галочку «Общий доступ к данному принтеру» и зададим сетевое имя принтера без пробелов и спецсимволов, например, Posiflex6900.
  4. На сервере 1С откроем командную строку от имени администратора и подключим этот принтер как сетевое устройство.

Для автоматизации подключения принтера при старте RDP-сессии пользователя мы можем написать простой скрипт на языке PowerShell и поместить его в автозагрузку пользователя на сервере:


# Шаблон скрипта автоматического подключения принтера чеков в сессии RDP
$ClientName = $env:CLIENTNAME
if ($ClientName) {
    $PrinterPath = "\\$ClientName\Posiflex6900"
    Write-Host "Подключаем принтер чеков: $PrinterPath"
    Add-Printer -ConnectionName $PrinterPath
}
else {
    Write-Host "Скрипт запущен вне RDP-сессии"
}

После выполнения этого скрипта на сервере в списке принтеров появится полноценный сетевой принтер, который общается с локальным компьютером по сетевому протоколу SMB напрямую, полностью минуя подсистему RDP-маппинга.

Решение 4. Аппаратная настройка DIP-переключателей принтера

Очень часто некорректная работа принтеров Posiflex Aura-6900 в терминальной среде связана с тем, что устройство аппаратно настроено на один интерфейс передачи данных, а программно мы пытаемся использовать другой. На нижней панели принтера, под металлической заглушкой, расположены DIP-переключатели. Перед изменением их положения обязательно отключите принтер от сети питания.

Проанализируем ключевые положения переключателей для Posiflex PP-6900:

Решение 5. Альтернативный метод печати через графический макет (Windows-принтер)

Если специфика вашей инфраструктуры не позволяет настроить стабильный проброс ESC/POS-команд, мы можем перевести 1С в режим графической печати чеков. Для этого в УТ 11 вместо стандартной настройки принтера чеков как «Принтер чеков (команды ESC/POS)» мы настраиваем его как обычный «Windows-принтер».

В этом случае 1С формирует обычный табличный документ (графический макет чека) и отправляет его в спулер печати Windows. Данный способ полностью решает проблемы с кодировками и пробросом портов, однако требует точной настройки параметров страницы (полей и ширины ленты) в свойствах принтера на сервере, чтобы текст чека не обрезался по краям.

Мы подробно разобрали все аппаратные и программные нюансы настройки чекового принтера Posiflex Aura-6900. Применив данные рекомендации, вы сможете обеспечить стабильную и быструю печать чеков из 1С в любой терминальной среде.

← На главную