Почему медленно печатаются чеки на ККТ АТОЛ / FPrint в 1С через RDP и как это исправить?

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

При работе в терминальном режиме (Remote Desktop Protocol) пользователи конфигурации 1С:Управление торговлей 11 нередко сталкиваются с проблемой: фискальный регистратор (например, АТОЛ FPrint-22Ф / 22ПТК) начинает печатать чеки, X-отчеты и слип-чеки эквайринга с заметной задержкой — построчно, с паузами в 0.5–1 секунду между строками («эффект старого матричного принтера»). При этом если запустить тест драйвера или распечатать отчет непосредственно на локальном компьютере, касса выдает чек моментально.

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

Анализ причин медленной печати через RDP

Проанализируем, почему возникает эффект задержки печати:

  1. Особенности стандартного проброса COM-портов в RDP: Фискальный регистратор, подключенный по USB, эмулирует виртуальный последовательный интерфейс (COM-порт). При пробросе порта через встроенный механизм Microsoft RDP протокол отправляет данные небольшими порциями. При печати чека из 1С драйвер формирует не единый документ, а последовательность сотен отдельных команд (открытие чека, регистрация позиции, печать строки, передача реквизитов ОФД, графическая печать QR-кода, отрезка). На каждую команду драйвер ожидает подтверждения (ACK) от кассы. В результате даже при локальном пинге 1–2 мс суммарные сетевые задержки складываются в длительные паузы между строками.
  2. Печать нефискальной графики и текстов: Слип-чеки банковских терминалов, QR-коды и X-отчеты часто передаются не через внутренние шаблоны кассы, а как монохромная графика или построчный нефискальный текст, что многократно увеличивает количество пакетов.
  3. Таймауты порта (Latency Timer): По умолчанию для виртуальных COM-портов драйвера FTDI/Prolific установлен таймаут задержки буфера (Latency Timer), равный 16 мс, что дополнительно замедляет транзакции обмена.

Решение 1. Переход на Тонкий клиент 1С (рекомендуемый способ)

Поскольку конфигурация 1С:Управление торговлей 11 функционирует на управляемых формах, наиболее архитектурно правильным решением является отказ от запуска интерфейса внутри сессии RDP в пользу Тонкого клиента 1С, установленного непосредственно на локальном компьютере кассира.

Разберем по шагам, как настроить этот вариант:

  1. Установим платформу 1С:Предприятие 8.3 (Тонкий клиент) на локальный рабочий компьютер кассира.
  2. Подключимся к информационной базе, опубликованной на веб-сервере (через протоколы HTTP/HTTPS) или напрямую к серверу 1С:Предприятия по TCP/IP.
  3. Установим драйвер ККТ (ДТО АТОЛ) на локальный ПК. В этом случае кассовый аппарат подключается физически к локальному компьютеру и опрашивается локально, без сетевой инкапсуляции COM-команд.
  4. В 1С перейдем в меню НСИ и администрирование -> РМК и оборудование -> Подключаемое оборудование и перенастроим рабочее место на локальный экземпляр ККТ.
  5. Служба передачи данных в ОФД (EoU — EthernetOverUSB или EoT) запускается на локальном компьютере кассира, что исключает конфликты сетевых портов на терминальном сервере.

Решение 2. Прямое сетевое подключение ККТ по Ethernet / Wi-Fi (TCP/IP)

Фискальные регистраторы серии АТОЛ 22 имеют встроенный сетевой интерфейс Ethernet. Это позволяет исключить использование виртуальных COM-портов и RDP-проброса.

Посмотрим на последовательность настройки сетевого подключения:

  1. Подключим фискальный регистратор сетевым патч-кордом к локальной сети торговой точки (или настроим Wi-Fi-модуль).
  2. Назначим кассе статический IP-адрес в локальной сети (через утилиту драйвера АТОЛ Тест драйвера ККТ во вкладке Свойства -> Канал связи -> Ethernet).
  3. В базе 1С на терминальном сервере откроем справочник ПодключаемоеОборудование.
  4. В карточке ККТ изменим тип подключения: вместо виртуального порта (например, COM3) выберем TCP/IP.
  5. Укажем назначенный статический IP-адрес кассы и порт подключения (по умолчанию порт 5555).

При такой схеме терминальный сервер 1С связывается с кассой напрямую по TCP-сокетам, благодаря чему печать чеков происходит мгновенно.

Решение 3. Оптимизация параметров виртуального COM-порта и скорости обмена

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

  1. Настройка Latency Timer:

    На локальном ПК откроем Диспетчер устройств -> Порты (COM и LPT), найдем виртуальный порт кассы (например, ATOL USB COM), перейдем в Свойства -> Параметры порта -> Дополнительно и изменим параметр Время ожидания (Latency Timer) со значения 16 мс на 1 мс.

  2. Синхронизация скорости порта:

    Убедимся, что скорость порта выставлена в максимальное значение 115200 во всех звеньях цепи: в диспетчере устройств локального ПК, в диспетчере устройств сервера RDP и в настройках экземпляра оборудования в справочнике 1С (Подключаемое оборудование -> Настройка параметров ККТ -> Скорость).

Решение 4. Использование сторонних утилит проброса (COM-over-IP)

Для устранения недостатков стандартного механизма RDP можно применить специализированное ПО для туннелирования последовательных портов с буферизацией пакетов (например, FabulaTech Serial Port for Remote Desktop, TCP COM Bridge или бесплатную связку com2tcp + com0com):

  1. Отключим стандартный проброс COM-портов в параметрах подключения RDP-клиента (сняв галочку Порты во вкладке Локальные ресурсы -> Подробнее).
  2. На локальном компьютере настроим трансляцию локального USB-COM порта в TCP-порт.
  3. На сервере создадим виртуальный COM-порт, принимающий поток данных от клиентского компьютера через сжатый TCP-туннель.

Решение 5. Переход на ДТО 10 и Web-сервис АТОЛ

При использовании драйверов АТОЛ поколения 8.x команды чека передаются построчно. В современных драйверах АТОЛ ДТО 10.x чек формируется целиком на стороне 1С в виде единого JSON-документа.

Кроме того, в поставку ДТО 10 входит служба Web-сервер АТОЛ. Она разворачивается на локальном компьютере кассира и принимает JSON-запросы по протоколу HTTP от 1С, работающей на сервере. Это полностью снимает проблему задержек передачи данных по RDP.

← На главную