При работе с торговым оборудованием в среде 1С 7.7 через терминальный сервер (RDP) системные администраторы часто сталкиваются с неприятной ситуацией: несколько устройств (например, фискальный регистратор и сканер штрих-кодов) пытаются «захватить» один и тот же номер COM-порта. В результате одно из устройств перестает функционировать, выдавая ошибку связи. В рамках данной статьи мы подробно разберем, как правильно управлять номерами портов, устранять конфликты и настраивать стабильную работу оборудования.
Проанализируем ситуацию, типичную для многих торговых точек. Кассовый аппарат «Штрих-М» подключен к терминальному серверу через USB-COM переходник. Параллельно с этим на локальном компьютере пользователя подключен сканер штрих-кодов, который также пробрасывается в терминальную сессию через настройки RDP. Конфликт возникает в тот момент, когда серверная операционная система назначает проброшенному порту сканера тот же индекс (например, COM3), который уже занят драйвером кассы на сервере.
Ситуация осложняется тем, что старые компоненты 1С 7.7 имеют программное ограничение: они корректно работают с портами только в диапазоне от COM1 до COM9. Если устройство получит номер COM10 или выше, программа его просто не увидит. Наша задача — распределить устройства в «младшем» диапазоне так, чтобы они не пересекались.
Самый простой и эффективный метод — это жесткое закрепление номера порта за устройством на локальной машине пользователя. Разберем по шагам, как это сделать:
COM8 или COM9).Важный нюанс: Даже если порт помечен как «Используется», но вы точно знаете, что в данный момент к нему ничего не подключено, вы можете назначить этот номер. Система выдаст предупреждение, которое можно проигнорировать.
Часто бывает так, что все свободные номера портов (с 1 по 9) заняты «скрытыми» устройствами, которые когда-то подключались к компьютеру. Выясним причину этого поведения: Windows запоминает каждое USB-устройство и резервирует за ним номер порта, даже если устройство отключено. Чтобы освободить эти номера, выполним следующие действия:
Запустим командную строку от имени администратора и введем следующую команду:
set devmgr_show_nonpresent_devices=1
start devmgmt.msc
После открытия Диспетчера устройств выполним следующие шаги:
После этой процедуры нужные нам номера портов станут свободными для назначения актуальному оборудованию.
Когда мы работаем через RDP, важно понимать, как именно сервер видит наши локальные порты. Для этого воспользуемся системной утилитой change port. Разберем, как проанализировать ситуацию непосредственно на терминальном сервере:
Откроем командную строку внутри терминальной сессии и введем:
change port /query
Эта команда выведет таблицу соответствия. Например, она может показать, что ваш локальный COM3 отображается в сессии как TS001 или переназначен на другой номер. Если вы видите, что два разных устройства претендуют на одно имя, это явный признак конфликта. Чтобы избежать этого, рекомендуется на клиентской машине переименовать порты в «редкие» номера (например, COM7 и COM8) и именно их пробрасывать в сессию.
В некоторых случаях стандартный механизм проброса портов через настройки RDP-клиента работает нестабильно. Тогда мы можем использовать принудительное связывание портов. Рассмотрим пример настройки параметров порта через скрипт входа:
mode COM8: BAUD=9600 PARITY=N DATA=8 STOP=1
Эта команда инициализирует параметры порта прямо в сессии, что помогает избежать сброса настроек скорости или четности при переподключении. Если же необходимо перенаправить порт на сетевой ресурс (например, если касса подключена к другому компьютеру в сети), можно воспользоваться командой:
net use COM1: \\имя_компьютера\имя_порта /persistent:yes
Проанализируем влияние «железа» на стабильность портов. Опыт показывает, что дешевые USB-COM переходники на чипах Prolific или CH340 часто меняют номер порта при переключении в другой USB-разъем системного блока. Это главная причина внезапного «отвала» оборудования в 1С.
Рекомендуем использовать устройства на чипах FTDI. В свойствах их драйвера есть опция «VCP» (Virtual COM Port) и возможность жесткой привязки номера порта к серийному номеру самого чипа. В таком случае, в какой бы USB-порт вы ни воткнули кассу, она всегда останется, например, COM3.
Для кассовых аппаратов данного производителя существует еще один важный момент. При работе через терминал и USB-переходники часто возникает задержка передачи пакетов данных. Выясним, как это лечится:
В «Тесте драйвера» кассы найдите раздел настроек связи. Параметр «Таймаут» по умолчанию обычно равен 30–50 мс. При работе в терминале этого критически мало. Увеличьте его до 150–300 мс. Это позволит избежать ложных ошибок «Нет связи», которые часто ошибочно принимают за конфликт номеров COM-портов.
Резюме: Чтобы развести оборудование, первым делом очистите систему от скрытых портов, назначьте локальным устройствам уникальные номера в диапазоне COM1-COM9 и убедитесь в настройках RDP-клиента, что включен проброс портов. При сохранении проблем используйте команду change port для детальной диагностики соответствий на сервере.