Подключение торгового оборудования в терминальном режиме (RDP) — классическая задача, с которой регулярно сталкиваются системные администраторы и специалисты 1С. Особую сложность представляют ситуации, когда часть пользователей работает удаленно через мобильный интернет с нестабильным каналом связи. В таких условиях стандартный механизм проброса последовательных (COM) портов часто дает сбои. Вроде бы в локальной утилите «Тест драйвера» связь с кассой присутствует, но при попытке пробить чек или выполнить тест устройства в самой 1С система упорно возвращает ошибку: «COM-порт недоступен».
В этой статье мы подробно разберем, почему возникает данная проблема, и рассмотрим проверенные практические методы её решения — от устранения конфликтов монопольного доступа до полной перенастройки оборудования на работу по сетевому протоколу TCP/IP через VPN-туннель.
Для начала давайте проанализируем физические и программные причины, из-за которых 1С теряет связь с кассой ККТ «Штрих-М-01Ф» при работе в терминальной сессии:
mstsc.exe не всегда стабильно работает с виртуальными COM-портами, созданными USB-драйверами (Vcom). При переподключении сессии порты могут менять свои номера или «отваливаться» на уровне операционной системы сервера.Ниже мы подробно разберем пошаговые алгоритмы устранения каждой из этих проблем.
Прежде чем переходить к сложным сетевым настройкам, выполним базовую диагностику системы. Сначала исключим блокировку порта сторонним софтом:
drvfrT.exe или аналогичные процессы драйвера в сессиях других пользователей. При необходимости завершите их принудительно.
change port /query
Команда выведет список всех подключенных портов и их соответствие клиентским устройствам. Вы должны увидеть строку вида: COM3 = \Device\RdpDrPort\;COM3:4\tsclient\COM3.
Также необходимо проверить корректность регистрации библиотек драйвера в системе. Если компонента ККТ не зарегистрирована должным образом для всех пользователей терминала, 1С не сможет к ней обратиться. Для решения этой проблемы запустите командную строку от имени Администратора на сервере и выполните принудительную регистрацию библиотеки drvfr.dll:
regsvr32 "C:\Program Files (x86)\Shtrih-M\DrvFR 4.15\Bin\drvfr.dll"
После успешной регистрации перезапустите сеанс 1С и повторите попытку подключения устройства.
Если касса работает через мобильное подключение (например, через беспроводные точки доступа), стандартного времени ожидания ответа от ККТ часто не хватает. Чтобы исправить это, нам необходимо скорректировать настройки связи непосредственно в параметрах подключения ККТ в 1С:
Это позволит драйверу ККТ ожидать ответа от устройства дольше, не прерывая сессию печати аварийно при возникновении кратковременных задержек в передаче пакетов через RDP-канал.
Самым надежным и профессиональным решением при работе в терминальной среде является полный отказ от проброса COM-портов. Мы переведем ККТ «Штрих-М-01Ф» в режим работы по TCP-сокету. При таком подходе касса общается с сервером напрямую по сети через IP-адрес и порт (по умолчанию порт 7778).
Для реализации этого сценария нам не обязательно иметь белый статический IP-адрес на стороне клиента. Мы организуем безопасный VPN-канал между удаленной точкой и сервером.
Рассмотрим этот процесс по шагам.
У кассы «Штрих-М-01Ф» имеется физический сетевой порт RJ-45 (Ethernet). Подключите ККТ кабелем напрямую к роутеру на удаленной точке. Если возможности протянуть кабель нет, можно использовать режим RNDIS (Ethernet over USB), при котором касса подключается по USB, но эмулирует сетевую карту в операционной системе клиентского ПК.
Для настройки сетевых параметров ККТ:
192.168.1.150), маску подсети (255.255.255.0) и адрес шлюза (роутера).Поскольку удаленные клиенты работают через мобильный интернет без возможности проброса портов (NAT) на роутерах, мы настроим VPN-соединение, где сервером будет выступать наш RDP-сервер (или офисный маршрутизатор с белым IP-адресом):
10.8.0.2), а сервер будет иметь адрес 10.8.0.1.Теперь нам нужно настроить маршрутизацию, чтобы сервер 1С мог отправлять пакеты на IP-адрес кассы (192.168.1.150), находящейся за клиентским ПК. На сервере 1С добавьте статический маршрут через командную строку от имени Администратора:
route add 192.168.1.0 mask 255.255.255.0 10.8.0.2 -p
Где 192.168.1.0 — локальная подсеть удаленного клиента, а 10.8.0.2 — IP-адрес этого клиента внутри VPN-сети. Параметр -p делает маршрут постоянным (он не пропадет после перезагрузки сервера).
После настройки маршрутизации касса становится доступна непосредственно с сервера 1С. Проверить это можно обычной командой ping 192.168.1.150 из командной строки сервера.
Переходим к настройке торгового оборудования в информационной базе 1С:
192.168.1.150.7778.При таком сценарии подключение устанавливается мгновенно, полностью исключаются любые конфликты виртуальных портов в RDP-сессиях, а чеки печатаются без задержек даже при нестабильном мобильном интернете.