Почему отключается сканер штрихкода при работе через RDP и как это исправить?

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

При использовании торгового оборудования в терминальных сессиях Windows (RDP) специалисты часто сталкиваются с ситуацией, когда USB-сканер штрихкодов внезапно перестает считывать данные. При этом сессия RDP может кратковременно обрываться, а после повторного подключения сканер приходится физически переподключать к разъему USB. Разберем основные причины такого поведения и рассмотрим комплексные методы решения проблемы.

Проанализируем техническую сторону вопроса. Чаще всего сбои вызваны двумя факторами: агрессивными настройками энергосбережения операционной системы клиентского компьютера, которая «усыпляет» порт USB при простое, и некорректным перенаправлением HID-устройств (режим эмуляции клавиатуры) или виртуальных COM-портов при разрывах сетевого соединения.

Решение 1. Отключение энергосбережения для USB-контроллеров и портов

Основная причина «отвала» сканера после небольшого простоя или обрыва сессии — срабатывание механизма выборочной приостановки USB (Selective Suspend). Операционная система отключает питание порта для экономии энергии. Настроим параметры электропитания на клиентском компьютере.

  1. Настройка плана электропитания Windows:

    Откроем Панель управления → Электропитание. В активной схеме электропитания нажмем Настройка схемы электропитания → Изменить дополнительные параметры питания. В появившемся дереве настроек найдем раздел Параметры USB → Параметр временного отключения USB-порта (USB selective suspend setting) и переведем его в значение Запрещено.

  2. Отключение экономии энергии в Диспетчере устройств:

    Откроем Диспетчер устройств (нажав комбинацию клавиш Win + X и выбрав соответствующий пункт). Развернем ветку Контроллеры USB. Для каждого элемента с названием Корневой USB-концентратор (USB Root Hub) и Generic USB Hub откроем Свойства, перейдем на вкладку Управление электропитанием и снимем флаг Разрешить отключение этого устройства для экономии энергии.

Решение 2. Перевод сканера в режим эмуляции COM-порта и проброс в сессию RDP

Работа сканера «в разрыв клавиатуры» (режим HID) в терминальной сессии крайне чувствительна к задержкам канала связи, раскладке клавиатуры и активному элементу управления. Перевод сканера в режим виртуального COM-порта (VCP / RS-232 Emulation) делает подключение стабильным и позволяет 1С перехватывать событие сканирования в фоновом режиме независимо от того, где находится курсор.

  1. С помощью сервисной инструкции к сканеру отсканируем управляющий штрихкод перевода в режим USB Serial Emulation (USB COM / Virtual COM).
  2. Установим на клиентский ПК официальный виртуальный COM-драйвер от производителя сканера (Honeywell, Zebra, Datalogic, Mertech, АТОЛ и др.). В Диспетчере устройств убедимся, что сканер определился как виртуальный последовательный порт (например, COM3).
  3. Настроим RDP-клиент (mstsc.exe): перед подключением откроем вкладку Локальные ресурсы → кнопка Подробнее... → установим флаг Порты.
  4. Для исключения плавающих номеров портов зафиксируем соответствие локального и серверного портов командным скриптом входа пользователя: net use COM3: \\tsclient\COM3
  5. В конфигурации 1С (в разделе Администрирование → Подключаемое оборудование) подключим устройство с типом Сканеры штрихкода, используя стандартный драйвер 1С:Сканеры штрихкода (NativeApi), и укажем соответствующий номер COM-порта и скорость передачи данных.

Решение 3. Предотвращение обрывов сессий RDP и зависания портов

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

Настроим групповые политики на стороне терминального сервера Windows:

  1. Откроем редактор локальной групповой политики (gpedit.msc) и перейдем по пути: Конфигурация компьютера → Административные шаблоны → Компоненты Windows → Службы удаленных рабочих столов → Узел сеансов удаленных рабочих столов → Подключения.
  2. Включим параметр Настроить интервал проверки активности подключений (Keep-Alive) и установим интервал в 1 минуту, чтобы сервер своевременно отслеживал состояние канала.
  3. В подразделе Ограничение времени сеанса настроим параметр Задать предел времени для отключенных сеансов, установив небольшое значение (например, 1 минута), чтобы завершать потерянные сессии и освобождать захваченные аппаратные порты.

Альтернативные архитектурные подходы

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

  1. Переход на Тонкий клиент 1С: Установка платформы 1С локально на рабочем месте пользователя с подключением к информационной базе через веб-сервер (по протоколу HTTP/HTTPS) или сервер 1С:Предприятия (по протоколу TCP). В этом случае драйвер торгового оборудования работает локально без проброса через RDP, а обрывы сети не приводят к сбою сканера.
  2. Использование технологии USB-over-IP: Программные решения (например, USB Network Gate или аппаратные USB-хабы с сетевым интерфейсом) подключают сканер напрямую к серверу по IP-адресу, исключая зависимость от стабильности сессии RDP.
← На главную