Работа торговых точек через терминальный доступ (RDP) — классическая схема для распределенных розничных сетей. Однако при использовании мобильного интернета (3G/4G модемы) системные администраторы часто сталкиваются с критической проблемой: ККМ «тормозит». Время открытия смены или печати одного чека может растягиваться на 60–90 секунд, что делает работу кассира невозможной.
В этой статье мы подробно проанализируем причины возникновения задержек и разберем несколько проверенных способов решения проблемы, от простых сетевых настроек до архитектурных изменений в работе 1С.
Основная причина кроется в механизме проброса (редиректа) последовательных портов (COM-портов) в протоколе RDP. Этот механизм крайне чувствителен к такому показателю, как Latency (задержка сигнала). При стандартном пробросе порта каждый байт данных, передаваемый от сервера 1С к кассе, требует подтверждения получения. Если пинг составляет 50–100 мс, то передача даже небольшого объема данных превращается в тысячи последовательных запросов и ответов, что и создает гигантские задержки.
Рассмотрим по шагам, как можно обойти это ограничение.
Самый эффективный метод — перестать использовать стандартный механизм Remote Desktop Connection для проброса портов. Вместо этого настроим ККМ как сетевое устройство.
Для реализации этого метода нам потребуется организовать VPN-туннель между торговой точкой и сервером. Это позволит серверу «видеть» локальный IP-адрес кассового компьютера или самой кассы.
10.8.0.25) и порт (по умолчанию 5555).Проанализируем ситуацию: при такой схеме стек TCP/IP берет на себя упаковку данных и контроль доставки. Данные уходят большими пакетами, что нивелирует влияние задержек мобильной сети. На практике это сокращает время печати чека с 70 до 5–10 секунд.
Если вы используете 8-ю версию драйверов АТОЛ, разберем работу со службой FDSVC. Эта служба предназначена специально для предоставления общего доступа к ККМ по сети.
Алгоритм настройки выглядит следующим образом:
FDSVC.Важный нюанс: для стабильной работы этой схемы также крайне желательно наличие VPN, так как проброс портов через «белые» IP-адреса в открытом виде небезопасен и часто блокируется провайдерами.
Современный Драйвер ККТ 10.х предлагает более совершенные механизмы. В него встроен полноценный Web-сервер. Рассмотрим, как это помогает нам в работе.
Вместо побайтовой передачи команд через виртуальный COM-порт, 1С формирует одно задание в формате JSON. Это задание отправляется по протоколу HTTP одним пакетом на локальный адрес кассы. Для кассы это выглядит как мгновенная команда на печать.
Пример структуры кода (логики) обращения к такому устройству:
// Пример логики подготовки задания для Web-сервера ККТ
ЗаданиеJSON = Новый Структура;
ЗаданиеJSON.Вставить("type", "sell");
ЗаданиеJSON.Вставить("taxationType", "osn");
// Формируем позиции чека...
ТекстЗапроса = СформироватьJSON(ЗаданиеJSON);
// Отправка через HTTPСоединение на локальный адрес точки
HTTPЗапрос = Новый HTTPЗапрос("/requests");
HTTPЗапрос.УстановитьТелоИзСтроки(ТекстЗапроса);
Ответ = HTTPСоединение.ОтправитьДляОбработки(HTTPЗапрос);
Этот метод исключает зависимость от стабильности RDP-сессии в момент печати. Даже если в канале связи есть потери пакетов, протокол HTTP/TCP доставит задание целиком.
Если касса подключена к компьютеру через USB, мы можем заставить ее работать по сетевому протоколу через службу EthernetOverUSB. Проанализируем этот процесс:
EoU, которая создает виртуальный сетевой адаптер.Если конфигурация 1С позволяет (используются Управляемые формы), стоит рассмотреть переход с RDP на Тонкий клиент. Выясним причину, почему это эффективно:
В режиме Тонкого клиента вся работа с торговым оборудованием происходит локально. Программа на сервере лишь передает данные для чека, а сам драйвер запускается на компьютере кассира. Таким образом, драйвер общается с кассой по физическому кабелю на скорости 115200 бод, а все сетевые задержки влияют только на передачу данных между Тонким клиентом и сервером 1С, что абсолютно не критично для оборудования.
Разберем, как проверить возможность этого перехода:
http://....Если вы вынуждены оставаться на схеме с RDP и пробросом портов, обратите внимание на настройки сетевых интерфейсов. Проанализируем параметр MTU (Maximum Transmission Unit).
В мобильных сетях и VPN-туннелях пакеты часто фрагментируются, что вызывает дополнительные задержки. Попробуем уменьшить MTU до 1300 на стороне сервера и клиента. Это позволит избежать дробления пакетов RDP-сессии.
Также в реестре Windows на сервере можно настроить интервалы опроса портов, чтобы снизить нагрузку на канал связи:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server\Wds\rdpwd\fEnableKeepAlive — установите значение 1 для поддержания активности сессии.
Для решения проблемы «тормозов» ККТ через RDP на 120 точках наиболее жизнеспособным является комбинированный подход:
Рассмотренные методы позволяют сократить время обслуживания одного клиента в несколько раз, обеспечивая стабильную работу розничной сети даже на слабых каналах связи.