Подключение торгового оборудования в среде терминального сервера часто превращается в настоящую головоломку, особенно если используются бездисковые станции (тонкие клиенты), загружающиеся по сети (PXE). Рассмотрим ситуацию, когда у нас есть сканер штрихкода с интерфейсом RS-232 (COM-порт), который подключается к современному ноутбуку или тонкому клиенту через переходник USB-to-Serial. Проанализируем, почему такая схема может не работать "из коробки" и какие пути решения существуют.
Разберем фундаментальную причину проблемы: для того чтобы сервер терминалов (RDP) смог "пробросить" COM-порт к себе в сессию, этот порт должен физически или виртуально существовать на стороне клиента. В случае с бездисковыми станциями на базе Linux или специализированных сборок (например, WTware) возникают следующие сложности:
usbserial в операционной системе тонкого клиента. Если в образе PXE этих модулей нет, переходник просто не инициализируется, и пробрасывать в RDP-сессию серверу будет нечего.Проанализируем самый простой способ, который часто советуют специалисты — перевод сканера в режим клавиатуры. В этом случае данные передаются так, будто они напечатаны пользователем. Однако при использовании COM-сканера через переходник этот метод часто не срабатывает, так как переходник продолжает ожидать данные по протоколу RS-232.
Если ваш сканер поддерживает замену кабеля на прямой USB-кабель, это будет лучшим решением. При этом важно убедиться в следующем:
F7), чтобы система активировала поле ввода при сканировании.Посмотрим на ситуацию со стороны программной настройки 1С. При работе в тонком клиенте рекомендуется использовать драйвер "1С:Сканер штрихкода (NativeApi)". Он работает стабильнее со старыми библиотеками и лучше обрабатывает виртуальные порты.
Если переходник определился на клиенте, но не виден в 1С на сервере, попробуем принудительно переназначить порты. В терминальной сессии можно выполнить команду маппинга порта:
net use com1: \\tsclient\com1
Это позволит связать виртуальный порт сессии с проброшенным портом тонкого клиента. Обратите внимание, что если на сервере порт получает номер выше 9 (например, COM15), некоторые старые драйверы могут его не увидеть. В настройках 1С в таком случае следует указывать имя порта в формате \\.\COM15.
Если вы используете современную инфраструктуру (Windows Server 2012 R2 и выше), рассмотрим технологию RemoteFX. Она позволяет пробрасывать не конкретный COM-порт, а всё USB-устройство целиком.
В этом случае драйвер переходника (Prolific или FTDI) устанавливается только на сервере. Тонкий клиент просто транслирует USB-трафик. Это решает проблему отсутствия драйверов в PXE-загрузчике, так как для клиента это становится прозрачным потоком данных.
Выясним, что делать, если программные методы не помогают. Работа с "костылями" в виде переходников в промышленной эксплуатации часто ведет к сбоям. Рассмотрим более надежные подходы:
Важный совет: Если вы столкнулись с тем, что сканер "пикает", но данные не доходят, проверьте настройки скорости (Baud Rate), четности и стоповых битов. Они должны быть идентичны на сканере, в драйвере переходника и в настройках оборудования внутри 1С. Чаще всего используются значения: 9600, 8, None, 1.