Работа торговых точек в терминальном режиме (RDP) на удаленном сервере 1С — это популярная и экономически выгодная схема автоматизации розничной торговли. Она позволяет централизовать базы данных, упростить администрирование и снизить требования к производительности локальных компьютеров на кассовых местах. Однако при попытке подключить сопряженное торговое оборудование, в частности контрольно-кассовую технику (ККТ), специалисты часто сталкиваются с целым букетом технических проблем: от огромных задержек при печати чеков (до 30–40 секунд на одну операцию) до регулярного и непредсказуемого "отвала" виртуальных COM-портов.
В этой статье мы подробно разберем все "подводные камни" подключения касс через RDP, проанализируем реальный практический опыт технических специалистов и выработаем пошаговые инструкции по настройке стабильной работы оборудования. Мы рассмотрим как методы настройки для драйверов предыдущих поколений, так и современные сетевые архитектурные решения, которые полностью исключают нестабильный проброс портов.
Давайте проанализируем физику процесса. Когда мы подключаем ККТ по интерфейсу USB к локальному компьютеру, операционная система создает виртуальный последовательный порт (например, COM3). При запуске стандартного RDP-клиента (mstsc.exe) мы настраиваем локальные ресурсы так, чтобы эти порты "пробрасывались" на удаленный сервер.
В теории это должно работать прозрачно, но на практике мы получаем следующие критические проблемы:
Ниже мы подробно разберем несколько вариантов решения этой проблемы, начиная от использования специализированных служб общего доступа и заканчивая переходом на надежную сетевую топологию.
Если на вашем предприятии используются кассы АТОЛ, работающие на 8-й версии драйверов (DTO 8), то стандартный проброс портов крайне не рекомендуется. Вместо этого мы можем задействовать встроенную службу общего доступа к портам — FDSVC (Fiscal Printer Device Service).
Суть метода заключается в том, что служба FDSVC запускается на локальном компьютере, к которому физически подключена касса. Она "захватывает" локальный COM-порт кассы и преобразует его в сетевой сокет, открывая определенный TCP-порт (по умолчанию 6220). Удаленный сервер 1С подключается к кассе напрямую по IP-адресу через этот TCP-порт, полностью минуя нестабильные механизмы проброса RDP.
Рассмотрим пошаговый алгоритм настройки этого решения:
FDSVC. Ее можно запустить через стандартную оснастку Windows services.msc (служба носит имя "Atol FDSVC" или "Сервер устройств ККТ").FDSVC (обычно 6220).Важное примечание по ФФД: Драйверы DTO 8 изначально разрабатывались под старые форматы фискальных данных. Однако практика показывает, что при использовании версии драйвера 8.16 и актуальной прошивки кассы, ККТ успешно и стабильно функционирует на формате ФФД 1.05. Тем не менее, для современного формата ФФД 1.2 этот метод уже не подходит, так как требуется переход на 10-ю версию драйвера.
Если вы хотите раз и навсегда исключить отвалы касс, лаги и проблемы с портами, мы настоятельно рекомендуем перевести ККТ на современный драйвер АТОЛ версии 10.x. В этой версии разработчики кардинально переработали архитектуру взаимодействия с оборудованием.
Главное преимущество DTO 10 — полноценная и стабильная поддержка работы по протоколу TCP/IP. Большинство современных касс (например, АТОЛ 11Ф, АТОЛ 22Ф, АТОЛ 30Ф и другие) имеют на борту либо физический разъем Ethernet (сетевая карта), либо модуль Wi-Fi. Если физического сетевого интерфейса нет, можно использовать режим EoT (Ethernet over Transport).
Проанализируем шаги по настройке сетевого подключения ККТ напрямую к 1С:
192.168.1.150).192.168.1.150.192.168.1.150 и стандартный порт 5555.При такой схеме проброс портов RDP вообще не используется. 1С общается с кассой напрямую по сети. Даже если RDP-сессия зависнет или закроется, касса останется в сети и будет моментально доступна при следующем входе без каких-либо перенастроек драйвера.
Что делать, если у ККТ нет разъема Ethernet, а организовать стабильный VPN-канал сложно? В таком случае кассу подключают к локальному компьютеру по USB, но настраивают передачу данных по сетевым протоколам.
Разберем разницу между двумя технологиями:
Для активации EoT необходимо в настройках ККТ через "Тест драйвера" в свойствах выбрать канал связи "USB", а в параметрах ККТ установить режим передачи данных в ОФД — "EoT".
Современные требования законодательства обязывают продавцов маркированных товаров (обувь, одежда, лекарства, молочная продукция, вода и др.) работать по стандарту ФФД 1.2. При этом процесс продажи усложняется:
Перед печатью чека касса должна отправить код маркировки на проверку в систему "Честный ЗНАК". Схема выглядит так: 1С на RDP-сервере -> касса на точке -> сервер Честного ЗНАКа -> касса -> сервер 1С.
Если у вас медленный интернет или перегружен RDP-канал, задержки (ping) на каждом этапе суммируются. Драйвер 1С по умолчанию ожидает ответа от кассы очень короткое время (обычно 2–5 секунд). Не дождавшись ответа от ККТ, которая в этот момент "ждет" проверку маркировки, 1С выдает ошибку: "Исчерпано время ожидания ответа от ККТ" или "ККТ не отвечает". Чек аннулируется, возникает рассинхронизация.
Как решить эту проблему?
Мы должны принудительно увеличить тайм-аут ожидания в настройках драйвера 1С. Разберем, как это сделать:
2000 (2 секунды).10000 или даже 30000 (что соответствует 10–30 секундам).Это позволит программе дождаться завершения всех сетевых проверок кода маркировки в ГИС МТ "Честный ЗНАК" и успешно напечатать чек даже на относительно медленных каналах связи.
Очень часто "отвалы" касс происходят не по вине 1С или драйвера, а из-за агрессивных настроек энергосбережения операционной системы Windows на локальном компьютере кассира.
Выясним причину: Windows "думает", что подключенное по USB устройство (касса) простаивает, и временно отключает питание USB-порта для экономии энергии. RDP-сессия тут же теряет порт.
Выполним обязательную настройку ОС на локальном компьютере:
Также на стороне 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" (бездействие), при котором порты могут принудительно блокироваться сервером.
Если в вашем проекте используются фискальные регистраторы марки "Штрих-М" (например, Штрих-ON-LINE, Штрих-М-01Ф), то подход к их настройке немного отличается от ККТ АТОЛ.
Кассы "Штрих-М" крайне чувствительны к стабильности и скорости передачи данных. При работе по RDP стандартная высокая скорость порта (например, 115200 бод) часто приводит к искажению пакетов в терминальном канале, из-за чего касса начинает печатать чеки с огромной задержкой (до 30 секунд на один чек) или выдает постоянные ошибки связи.
Проанализируем шаги по оптимизации работы "Штрих-М" в терминальной сессии:
Снижение скорости физического порта уменьшает количество ошибок передачи в условиях нестабильного RDP-канала. Как ни парадоксально, на меньшей скорости касса начнет печатать чеки значительно быстрее, так как драйверу не придется постоянно переотправлять поврежденные пакеты данных.
Подводя итог, давайте соберем краткий чеклист, который поможет вам успешно запустить кассы на 10 торговых точках по RDP:
FDSVC, превращая локальную ККТ в сетевое устройство.Следуя этим практическим рекомендациям, мы сможем построить отказоустойчивую и быструю систему печати чеков на удаленном сервере 1С, обеспечив бесперебойную работу торговых точек.