При использовании торгового оборудования в терминальных сессиях Windows (RDP) специалисты часто сталкиваются с ситуацией, когда USB-сканер штрихкодов внезапно перестает считывать данные. При этом сессия RDP может кратковременно обрываться, а после повторного подключения сканер приходится физически переподключать к разъему USB. Разберем основные причины такого поведения и рассмотрим комплексные методы решения проблемы.
Проанализируем техническую сторону вопроса. Чаще всего сбои вызваны двумя факторами: агрессивными настройками энергосбережения операционной системы клиентского компьютера, которая «усыпляет» порт USB при простое, и некорректным перенаправлением HID-устройств (режим эмуляции клавиатуры) или виртуальных COM-портов при разрывах сетевого соединения.
Основная причина «отвала» сканера после небольшого простоя или обрыва сессии — срабатывание механизма выборочной приостановки USB (Selective Suspend). Операционная система отключает питание порта для экономии энергии. Настроим параметры электропитания на клиентском компьютере.
Откроем Панель управления → Электропитание. В активной схеме электропитания нажмем Настройка схемы электропитания → Изменить дополнительные параметры питания. В появившемся дереве настроек найдем раздел Параметры USB → Параметр временного отключения USB-порта (USB selective suspend setting) и переведем его в значение Запрещено.
Откроем Диспетчер устройств (нажав комбинацию клавиш Win + X и выбрав соответствующий пункт). Развернем ветку Контроллеры USB. Для каждого элемента с названием Корневой USB-концентратор (USB Root Hub) и Generic USB Hub откроем Свойства, перейдем на вкладку Управление электропитанием и снимем флаг Разрешить отключение этого устройства для экономии энергии.
Работа сканера «в разрыв клавиатуры» (режим HID) в терминальной сессии крайне чувствительна к задержкам канала связи, раскладке клавиатуры и активному элементу управления. Перевод сканера в режим виртуального COM-порта (VCP / RS-232 Emulation) делает подключение стабильным и позволяет 1С перехватывать событие сканирования в фоновом режиме независимо от того, где находится курсор.
COM3).
net use COM3: \\tsclient\COM3
1С:Сканеры штрихкода (NativeApi), и укажем соответствующий номер COM-порта и скорость передачи данных.Если в локальной сети происходят кратковременные микроразрывы связи, сервер терминалов может удерживать предыдущую сессию активной, блокируя занятый ею виртуальный COM-порт. При повторном подключении сканер не инициализируется, пока порт занят зависшим процессом.
Настроим групповые политики на стороне терминального сервера Windows:
gpedit.msc) и перейдем по пути: Конфигурация компьютера → Административные шаблоны → Компоненты Windows → Службы удаленных рабочих столов → Узел сеансов удаленных рабочих столов → Подключения.1 минуту, чтобы сервер своевременно отслеживал состояние канала.1 минута), чтобы завершать потерянные сессии и освобождать захваченные аппаратные порты.Если специфика сетевой инфраструктуры не позволяет добиться стабильности через RDP, рассмотрим более надежные варианты организации рабочих мест: