Как подключить онлайн-кассу по RDP к 1С без сбоев и зависаний?

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

Работа торговых точек в терминальном режиме (RDP) на удаленном сервере 1С — это популярная и экономически выгодная схема автоматизации розничной торговли. Она позволяет централизовать базы данных, упростить администрирование и снизить требования к производительности локальных компьютеров на кассовых местах. Однако при попытке подключить сопряженное торговое оборудование, в частности контрольно-кассовую технику (ККТ), специалисты часто сталкиваются с целым букетом технических проблем: от огромных задержек при печати чеков (до 30–40 секунд на одну операцию) до регулярного и непредсказуемого "отвала" виртуальных COM-портов.

В этой статье мы подробно разберем все "подводные камни" подключения касс через RDP, проанализируем реальный практический опыт технических специалистов и выработаем пошаговые инструкции по настройке стабильной работы оборудования. Мы рассмотрим как методы настройки для драйверов предыдущих поколений, так и современные сетевые архитектурные решения, которые полностью исключают нестабильный проброс портов.

Проблема проброса COM-портов по RDP: почему происходят сбои?

Давайте проанализируем физику процесса. Когда мы подключаем ККТ по интерфейсу USB к локальному компьютеру, операционная система создает виртуальный последовательный порт (например, COM3). При запуске стандартного RDP-клиента (mstsc.exe) мы настраиваем локальные ресурсы так, чтобы эти порты "пробрасывались" на удаленный сервер.

В теории это должно работать прозрачно, но на практике мы получаем следующие критические проблемы:

  1. Микроразрывы интернет-соединения: Любая просадка пинга или кратковременная потеря сетевых пакетов приводит к тому, что RDP-сессия на мгновение переподключается. При этом виртуальный порт на сервере закрывается и открывается заново. Программа 1С мгновенно теряет связь с драйвером ККТ, и касса "отваливается". Для восстановления работы кассиру приходится как минимум перезапускать сессию 1С или полностью перелогиниваться в систему.
  2. Огромные задержки (тайм-ауты): Передача низкоуровневых команд управления фискальным регистратором по протоколу RDP требует постоянного обмена подтверждениями приема-передачи пакетов. Команды ходят по цепочке "1С на сервере -> Драйвер -> RDP-клиент -> Локальный порт -> Касса -> Локальный порт -> RDP-клиент -> Сервер". Если пинг до сервера составляет более 30–50 мс, печать одного чека может растянуться на мучительные полминуты.
  3. Конфликты динамических портов: При подключении нескольких касс с разных торговых точек порты на сервере могут перепутываться или занимать одни и те же номера, что приводит к хаосу при отправке чеков на печать.

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

Решение 1. Использование службы FDSVC для драйверов АТОЛ (DTO 8)

Если на вашем предприятии используются кассы АТОЛ, работающие на 8-й версии драйверов (DTO 8), то стандартный проброс портов крайне не рекомендуется. Вместо этого мы можем задействовать встроенную службу общего доступа к портам — FDSVC (Fiscal Printer Device Service).

Суть метода заключается в том, что служба FDSVC запускается на локальном компьютере, к которому физически подключена касса. Она "захватывает" локальный COM-порт кассы и преобразует его в сетевой сокет, открывая определенный TCP-порт (по умолчанию 6220). Удаленный сервер 1С подключается к кассе напрямую по IP-адресу через этот TCP-порт, полностью минуя нестабильные механизмы проброса RDP.

Рассмотрим пошаговый алгоритм настройки этого решения:

  1. На локальном компьютере кассира устанавливаем драйвер ККТ АТОЛ 8-й версии (например, 8.16). Убеждаемся, что касса успешно определяется на локальном COM-порте через утилиту "Тест драйвера ККТ".
  2. Запускаем службу FDSVC. Ее можно запустить через стандартную оснастку Windows services.msc (служба носит имя "Atol FDSVC" или "Сервер устройств ККТ").
  3. Настраиваем службу на локальном ПК, указав, какой именно физический или виртуальный COM-порт и на какой скорости нужно транслировать в сеть.
  4. На удаленном сервере в настройках торгового оборудования 1С при добавлении кассы выбираем тип подключения "Сеть" (или TCP/IP). В поле "IP-адрес" указываем статический внешний IP-адрес торговой точки (или локальный IP, если настроен VPN-туннель до сервера), а в поле "Порт" указываем порт службы FDSVC (обычно 6220).

Важное примечание по ФФД: Драйверы DTO 8 изначально разрабатывались под старые форматы фискальных данных. Однако практика показывает, что при использовании версии драйвера 8.16 и актуальной прошивки кассы, ККТ успешно и стабильно функционирует на формате ФФД 1.05. Тем не менее, для современного формата ФФД 1.2 этот метод уже не подходит, так как требуется переход на 10-ю версию драйвера.

Решение 2. Самый надежный способ — переход на драйвер версии 10 (DTO 10) и сетевое подключение по TCP/IP

Если вы хотите раз и навсегда исключить отвалы касс, лаги и проблемы с портами, мы настоятельно рекомендуем перевести ККТ на современный драйвер АТОЛ версии 10.x. В этой версии разработчики кардинально переработали архитектуру взаимодействия с оборудованием.

Главное преимущество DTO 10 — полноценная и стабильная поддержка работы по протоколу TCP/IP. Большинство современных касс (например, АТОЛ 11Ф, АТОЛ 22Ф, АТОЛ 30Ф и другие) имеют на борту либо физический разъем Ethernet (сетевая карта), либо модуль Wi-Fi. Если физического сетевого интерфейса нет, можно использовать режим EoT (Ethernet over Transport).

Проанализируем шаги по настройке сетевого подключения ККТ напрямую к 1С:

  1. Физическое сетевое подключение (Ethernet / Wi-Fi): Подключаем кассу сетевым кабелем к роутеру на торговой точке. Через утилиту тест драйвера ККТ АТОЛ 10 заходим в свойства подключения и переводим канал связи в режим "Ethernet". Задаем кассе статический IP-адрес в локальной сети торговой точки (например, 192.168.1.150).
  2. Настройка VPN-канала: Чтобы сервер 1С "видел" локальные IP-адреса торговых точек, настраиваем защищенный VPN-канал (например, IPSec, OpenVPN или WireGuard) между роутером офиса/сервера и роутерами на торговых точках. В результате сервер 1С сможет обращаться к кассе напрямую по адресу 192.168.1.150.
  3. Настройка в 1С: В базе 1С открываем настройки подключаемого оборудования. В параметрах ККТ выбираем драйвер "АТОЛ:ККТ с передачей данных в ОФД (10.х)". В типе подключения указываем "TCP/IP" (или "Сеть"), вводим IP-адрес кассы 192.168.1.150 и стандартный порт 5555.

При такой схеме проброс портов RDP вообще не используется. 1С общается с кассой напрямую по сети. Даже если RDP-сессия зависнет или закроется, касса останется в сети и будет моментально доступна при следующем входе без каких-либо перенастроек драйвера.

Решение 3. Настройка протоколов обмена EoU и EoT для USB-подключения

Что делать, если у ККТ нет разъема Ethernet, а организовать стабильный VPN-канал сложно? В таком случае кассу подключают к локальному компьютеру по USB, но настраивают передачу данных по сетевым протоколам.

Разберем разницу между двумя технологиями:

Для активации EoT необходимо в настройках ККТ через "Тест драйвера" в свойствах выбрать канал связи "USB", а в параметрах ККТ установить режим передачи данных в ОФД — "EoT".

Решение 4. Особенности работы с маркировкой (ФФД 1.2) и борьба с тайм-аутами

Современные требования законодательства обязывают продавцов маркированных товаров (обувь, одежда, лекарства, молочная продукция, вода и др.) работать по стандарту ФФД 1.2. При этом процесс продажи усложняется:

Перед печатью чека касса должна отправить код маркировки на проверку в систему "Честный ЗНАК". Схема выглядит так: 1С на RDP-сервере -> касса на точке -> сервер Честного ЗНАКа -> касса -> сервер 1С.

Если у вас медленный интернет или перегружен RDP-канал, задержки (ping) на каждом этапе суммируются. Драйвер 1С по умолчанию ожидает ответа от кассы очень короткое время (обычно 2–5 секунд). Не дождавшись ответа от ККТ, которая в этот момент "ждет" проверку маркировки, 1С выдает ошибку: "Исчерпано время ожидания ответа от ККТ" или "ККТ не отвечает". Чек аннулируется, возникает рассинхронизация.

Как решить эту проблему?

Мы должны принудительно увеличить тайм-аут ожидания в настройках драйвера 1С. Разберем, как это сделать:

  1. В 1С перейдите в меню "Администрирование" -> "Подключаемое оборудование".
  2. Откройте карточку настройки вашей ККТ и нажмите кнопку "Настройка".
  3. Найдите параметр "Тайм-аут" (или "Время ожидания ответа"). По умолчанию там может стоять значение 2000 (2 секунды).
  4. Увеличьте это значение до 10000 или даже 30000 (что соответствует 10–30 секундам).

Это позволит программе дождаться завершения всех сетевых проверок кода маркировки в ГИС МТ "Честный ЗНАК" и успешно напечатать чек даже на относительно медленных каналах связи.

Решение 5. Настройка операционной системы и электропитания портов

Очень часто "отвалы" касс происходят не по вине 1С или драйвера, а из-за агрессивных настроек энергосбережения операционной системы Windows на локальном компьютере кассира.

Выясним причину: Windows "думает", что подключенное по USB устройство (касса) простаивает, и временно отключает питание USB-порта для экономии энергии. RDP-сессия тут же теряет порт.

Выполним обязательную настройку ОС на локальном компьютере:

  1. Откройте "Диспетчер устройств" в Windows (нажмите Win+X и выберите нужный пункт).
  2. Разверните ветку "Контроллеры USB".
  3. Для каждого устройства с названием "Корневой USB-концентратор" (USB Root Hub) и "Generic USB Hub" выполните следующие действия:
    • Нажмите правой кнопкой мыши и выберите "Свойства".
    • Перейдите на вкладку "Управление электропитанием".
    • Снимите галочку с параметра "Разрешить отключение этого устройства для экономии энергии".
    • Нажмите "ОК".
  4. Аналогичную операцию проделайте в разделе "Порты (COM и LPT)" для виртуального COM-порта кассы.

Также на стороне RDP-сервера рекомендуется настроить политики "Keep-Alive", чтобы сервер не закрывал неактивные порты. Это можно сделать через реестр Windows. Посмотрим на пример файла реестра для автоматизации этой настройки:


Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server]
"KeepAliveEnable"=dword:00000001
"KeepAliveInterval"=dword:00000001

Этот скрипт включает отправку Keep-Alive пакетов каждую минуту, что предотвращает переход RDP-сессии в состояние "Idle" (бездействие), при котором порты могут принудительно блокироваться сервером.

Решение 6. Особенности настройки касс "Штрих-М" по RDP

Если в вашем проекте используются фискальные регистраторы марки "Штрих-М" (например, Штрих-ON-LINE, Штрих-М-01Ф), то подход к их настройке немного отличается от ККТ АТОЛ.

Кассы "Штрих-М" крайне чувствительны к стабильности и скорости передачи данных. При работе по RDP стандартная высокая скорость порта (например, 115200 бод) часто приводит к искажению пакетов в терминальном канале, из-за чего касса начинает печатать чеки с огромной задержкой (до 30 секунд на один чек) или выдает постоянные ошибки связи.

Проанализируем шаги по оптимизации работы "Штрих-М" в терминальной сессии:

  1. Запустите локально утилиту "Тест драйвера ФР" от Штрих-М.
  2. Подключитесь к кассе и зайдите в "Таблицы" -> Таблица №10 "Установка параметров устройства".
  3. Найдите параметр скорости обмена по умолчанию и снизьте его до 19200 или даже 9600 бод.
  4. Сохраните изменения в таблице ККТ.
  5. В настройках подключения драйвера на сервере 1С также установите аналогичную скорость (19200 или 9600).

Снижение скорости физического порта уменьшает количество ошибок передачи в условиях нестабильного RDP-канала. Как ни парадоксально, на меньшей скорости касса начнет печатать чеки значительно быстрее, так как драйверу не придется постоянно переотправлять поврежденные пакеты данных.

Резюме и чеклист для внедрения

Подводя итог, давайте соберем краткий чеклист, который поможет вам успешно запустить кассы на 10 торговых точках по RDP:

  1. Приоритет №1: По возможности откажитесь от проброса портов. Настройте VPN между точками и сервером и подключите кассы по сети (Ethernet/Wi-Fi) по протоколу TCP/IP напрямую из 1С с помощью драйвера 10-й версии.
  2. Если кассы только по USB: Используйте современный режим передачи данных EoT (Ethernet over Transport) для минимизации конфликтов портов.
  3. Для старых драйверов АТОЛ 8: Настраивайте трансляцию портов через локальную службу FDSVC, превращая локальную ККТ в сетевое устройство.
  4. Настройка ОС: Отключите энергосбережение USB-портов на всех клиентских ПК кассиров.
  5. Борьба с таймаутами: Увеличьте время ожидания ККТ в настройках 1С до 10–30 секунд для стабильной работы с маркировкой Честный ЗНАК.
  6. Для касс Штрих-М: Понижайте скорость работы порта до 19200 бод для устранения задержек печати.

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

← На главную