Как подключить COM-сканер штрихкода через USB-переходник в терминальной сессии на тонком клиенте?

Системный администратор 1С v8.3 (Управляемые формы) IT и автоматизация бизнеса
← На главную

Подключение торгового оборудования в среде терминального сервера часто превращается в настоящую головоломку, особенно если используются бездисковые станции (тонкие клиенты), загружающиеся по сети (PXE). Рассмотрим ситуацию, когда у нас есть сканер штрихкода с интерфейсом RS-232 (COM-порт), который подключается к современному ноутбуку или тонкому клиенту через переходник USB-to-Serial. Проанализируем, почему такая схема может не работать "из коробки" и какие пути решения существуют.

Почему стандартная схема подключения часто не работает?

Разберем фундаментальную причину проблемы: для того чтобы сервер терминалов (RDP) смог "пробросить" COM-порт к себе в сессию, этот порт должен физически или виртуально существовать на стороне клиента. В случае с бездисковыми станциями на базе Linux или специализированных сборок (например, WTware) возникают следующие сложности:

  1. Отсутствие драйверов в ядре загрузчика: Переходники USB-COM (обычно на чипах Prolific PL-2303 или FTDI) требуют наличия специфических драйверов usbserial в операционной системе тонкого клиента. Если в образе PXE этих модулей нет, переходник просто не инициализируется, и пробрасывать в RDP-сессию серверу будет нечего.
  2. Особенности эмуляции: Эмуляция RS-232 через USB — это сложный программно-аппаратный процесс. В отличие от стандартной USB-клавиатуры (HID), которая работает через стандартные прерывания, COM-порт требует четкой синхронизации драйверов на обеих сторонах (клиент и сервер).
  3. Задержки протокола RDP: Протокол удаленного рабочего стола чувствителен к задержкам (latency). Передача данных от сканера через переходник, затем через сетевой стек тонкого клиента на сервер может приводить к "разрыву" штрихкода или тайм-аутам в драйвере 1С.

Вариант 1: Перевод сканера в режим USB-HID (Эмуляция клавиатуры)

Проанализируем самый простой способ, который часто советуют специалисты — перевод сканера в режим клавиатуры. В этом случае данные передаются так, будто они напечатаны пользователем. Однако при использовании COM-сканера через переходник этот метод часто не срабатывает, так как переходник продолжает ожидать данные по протоколу RS-232.

Если ваш сканер поддерживает замену кабеля на прямой USB-кабель, это будет лучшим решением. При этом важно убедиться в следующем:

Вариант 2: Использование NativeApi и настройка драйверов на сервере

Посмотрим на ситуацию со стороны программной настройки 1С. При работе в тонком клиенте рекомендуется использовать драйвер "1С:Сканер штрихкода (NativeApi)". Он работает стабильнее со старыми библиотеками и лучше обрабатывает виртуальные порты.

Если переходник определился на клиенте, но не виден в 1С на сервере, попробуем принудительно переназначить порты. В терминальной сессии можно выполнить команду маппинга порта:

net use com1: \\tsclient\com1

Это позволит связать виртуальный порт сессии с проброшенным портом тонкого клиента. Обратите внимание, что если на сервере порт получает номер выше 9 (например, COM15), некоторые старые драйверы могут его не увидеть. В настройках 1С в таком случае следует указывать имя порта в формате \\.\COM15.

Вариант 3: Проброс устройства через RemoteFX USB Redirection

Если вы используете современную инфраструктуру (Windows Server 2012 R2 и выше), рассмотрим технологию RemoteFX. Она позволяет пробрасывать не конкретный COM-порт, а всё USB-устройство целиком.

В этом случае драйвер переходника (Prolific или FTDI) устанавливается только на сервере. Тонкий клиент просто транслирует USB-трафик. Это решает проблему отсутствия драйверов в PXE-загрузчике, так как для клиента это становится прозрачным потоком данных.

Вариант 4: Аппаратные альтернативы (NPort и замена кабеля)

Выясним, что делать, если программные методы не помогают. Работа с "костылями" в виде переходников в промышленной эксплуатации часто ведет к сбоям. Рассмотрим более надежные подходы:

  1. Замена интерфейсного кабеля: Многие сканеры (например, Honeywell/Metrologic) имеют разъем RJ-45 (10p10c). Вместо использования переходника можно приобрести родной кабель USB-HID или USB-Serial для конкретной модели сканера. Это исключит лишнее звено в виде стороннего чипа переходника.
  2. Использование преобразователей RS-232 в Ethernet (например, Moxa NPort): Это устройство подключается в розетку локальной сети. Сканер втыкается в NPort, а на сервере ставится драйвер, который создает виртуальный COM-порт, работающий напрямую через IP. Это полностью исключает зависимость от тонкого клиента и его драйверов.
  3. Программные USB-хабы (USB over IP): Существуют решения, которые позволяют "расшарить" USB-порт любого компьютера в сети. Сервер подключается к этому порту по TCP/IP и видит сканер как локальное устройство.

Важный совет: Если вы столкнулись с тем, что сканер "пикает", но данные не доходят, проверьте настройки скорости (Baud Rate), четности и стоповых битов. Они должны быть идентичны на сканере, в драйвере переходника и в настройках оборудования внутри 1С. Чаще всего используются значения: 9600, 8, None, 1.

← На главную