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

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

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

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

Причины сбоя инициализации сканера при перезагрузке

Выясним причину, по которой виртуальный последовательный порт теряет связь с операционной системой:

  1. Быстрый запуск Windows (Fast Startup). При активной функции быстрого запуска операционная система не перезагружает ядро и драйверы полностью, а сохраняет образ сессии в файл гибернации. В момент старта драйвер виртуального COM-порта (CDC-ACM или специализированный драйвер производителя) не выполняет процедуру повторного перечисления дескрипторов (re-enumeration) USB-устройства. В результате сканер включен, но логический COM-порт в системе остается неактивным.
  2. Энергосбережение USB-контроллеров. Функция выборочной приостановки USB-порта (USB Selective Suspend) и параметры экономии энергии корневых концентраторов блокируют передачу пакетов при перезагрузке или простое оборудования.
  3. Конфликты на уровне BIOS/UEFI. Включенные режимы глубокого энергосбережения материнской платы (ErP/EuP) или некорректная работа опции XHCI Hand-off сбрасывают состояние шины до полной загрузки драйверов операционной системы.

Способ 1. Перевод сканера в режим USB-HID (эмуляция клавиатуры) с перехватом событий в 1С

Самое стабильное и рекомендуемое решение при локальной работе — перевод сканера из режима виртуального COM-порта в режим клавиатуры (USB-HID). Распространенное заблуждение заключается в том, что в клавиатурном режиме для подбора товара в РМК необходимо нажимать клавишу F7 или открывать отдельное окно ввода. Современные типовые конфигурации (1С:УНФ, 1С:Розница, 1С:ERP, 1С:УТ) и драйверы оборудования (включая 1С:Сканеры штрихкода (Native API)) позволяют настроить перехват клавиатурных событий в фоновом режиме без необходимости предварительного вызова диалоговых окон.

Разберем по шагам порядок перевода и настройки оборудования:

  1. Сброс и настройка сканера по управляющим штрихкодам. Откроем сервисную инструкцию (руководство пользователя) к модели сканера. Считаем управляющий штрихкод сброса к заводским настройкам (Recall Defaults / Factory Defaults), затем считаем код активации режима клавиатуры (USB Keyboard HID Mode или Keyboard Wedge). Обязательно убедимся, что выбран корректный штрихкод для подключения без использования физического разветвителя клавиатуры.
  2. Настройка суффикса передачи данных. Сканируем штрихкод добавления завершающего символа перевода строки (CR / Enter), чтобы драйвер 1С четко определял окончание пакета с данными штрихкода.
  3. Подключение оборудования в 1С. В конфигурации перейдем в раздел Администрирование → Подключаемое оборудование. Добавим новый экземпляр оборудования с типом Сканеры штрихкода, выбрав драйвер 1С:Сканеры штрихкода (Native API) или аналогичный компонент от производителя.
  4. Настройка параметров драйвера в 1С. Откроем форму настройки созданного устройства:
    1. В поле Порт укажем значение Клавиатура.
    2. В поле Префикс оставим пустое значение (или укажем настроенный префикс, если он задан в сканере).
    3. В поле Суффикс зададим значение 13 (код клавиши Enter / CR).
    4. Нажмем кнопку Тест устройства и отсканируем любой тестовый штрихкод. В окне теста должны отобразиться прочитанные данные и корректно распознанный суффикс.
  5. Сохранение параметров. Нажмем Записать и закрыть. Теперь при считывании штрихкода в рабочем месте кассира (РМК) или любом документе драйвер будет перехватывать поток символов из буфера клавиатуры и автоматически генерировать внешнее событие 1С для поиска номенклатуры.

Способ 2. Устранение зависания виртуального COM-порта в Windows

Если специфика работы требует сохранения режима виртуального последовательного порта (например, при многопользовательской работе в терминальных сессиях RDP, где клавиатурный ввод может зависеть от раскладки клавиатуры и задержек сети), настроим параметры операционной системы для предотвращения засыпания COM-порта.

Рассмотрим подробнее необходимые системные настройки:

  1. Отключение быстрого запуска Windows:
    1. Откроем Панель управления → Электропитание.
    2. В левом меню перейдем в Действие кнопок питания.
    3. Нажмем на ссылку Изменение параметров, которые сейчас недоступны.
    4. Снимем флажок с пункта Включить быстрый запуск (рекомендуется) и сохраним изменения. Это заставит Windows выполнять полную инициализацию всех драйверов при каждом включении.
  2. Отключение энергосбережения для USB-контроллеров:
    1. Откроем Диспетчер устройств (комбинация клавиш Win + X → Диспетчер устройств).
    2. Развернем ветку Контроллеры USB.
    3. Для каждого элемента Корневой USB-концентратор (USB Root Hub) и Generic USB Hub откроем Свойства, перейдем на вкладку Управление электропитанием и снимем флажок Разрешить отключение этого устройства для экономии энергии.
  3. Запрет временного отключения USB-портов в схеме питания:
    1. В окне Электропитание перейдем в Настройка схемы электропитания для активного плана.
    2. Нажмем Изменить дополнительные параметры питания.
    3. В дереве параметров найдем раздел Параметры USB → Параметр временного отключения USB-порта и установим значение Запрещено как для работы от сети, так и от батареи.
  4. Установка оригинального драйвера производителя. Заменим стандартный драйвер Windows (usbser.sys) на специализированный сертифицированный драйвер виртуального COM-порта от производителя оборудования (например, HSM USB Serial Driver для устройств Metrologic/Honeywell). Перед установкой драйвера обязательно отключим сканер от USB-порта и перезагрузим рабочую станцию.

Проанализировав оба подхода, отметим: для локальных рабочих мест наиболее надежным и быстрым вариантом является перевод сканера в режим USB-HID с настройкой суффикса 13 (Enter) в драйвере 1С. Для терминальных подключений через RDP оптимально использовать режим COM-порта с предварительным отключением быстрого запуска и функций экономии питания USB в Windows.

← На главную