Почему 1С:Комплексная автоматизация перестает видеть сканер штрихкода после перезагрузки ПК?

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

Работа с торговым оборудованием в 1С часто сопряжена с нюансами взаимодействия драйверов, операционной системы и самой платформы. Одна из распространенных проблем, с которой сталкиваются администраторы и пользователи — потеря связи со сканером штрихкодов после перезагрузки компьютера. Вроде бы все настроено корректно, но после рестарта системы 1С перестает реагировать на сканирование, пока не будут произведены манипуляции с настройками подключения.

Разберем подробно ситуацию на примере сканера Honeywell Voyager 1450g, подключенного в режиме эмуляции COM-порта к конфигурации 1С:Комплексная автоматизация 2 (КА2). Рассмотрим причины такого поведения и предложим несколько эффективных способов решения: от простых настроек в 1С до правки реестра Windows.

Диагностика проблемы

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

Давайте проанализируем возможные причины и методы устранения этой неполадки.

Способ 1. Пересоздание экземпляра оборудования и очистка кэша

Как показала практика обсуждения данной проблемы, самым действенным методом часто оказывается "чистый старт". 1С кэширует параметры подключения оборудования, привязываясь к конкретным идентификаторам устройств. Если драйвер обновился или устройство было переподключено в другой USB-порт, кэш может стать невалидным.

Мы рекомендуем выполнить следующие действия:

  1. Откройте раздел НСИ и Администрирование — РМК и оборудование — Подключаемое оборудование.
  2. Найдите проблемный сканер в списке и убедитесь в его работоспособности.
  3. Полностью удалите этот экземпляр оборудования (не просто отключите галочку "Устройство используется", а именно удалите строчку).
  4. Также удалите привязку к рабочему месту, если она настроена отдельно.
  5. Перезапустите 1С.
  6. Создайте новый экземпляр оборудования, выберите драйвер (рекомендуется использовать 1С:Сканеры штрихкода (NativeApi)) и настройте параметры порта заново.

Этот метод помог автору вопроса восстановить стабильную работу сканера.

Важно: Если вы используете нетиповые обработки или доработки конфигурации, убедитесь, что в коде формы присутствует вызов метода инициализации оборудования. В типовых конфигурациях (УТ 11, КА 2, ERP) это обычно выглядит так:


// В модуле формы или при создании на сервере
ОбщегоНазначенияУТ.НастроитьПодключаемоеОборудование(ЭтаФорма);

Без этой строки внешнее событие от драйвера не будет перехватываться формой, даже если оборудование настроен корректно.

Способ 2. Запрет отключения USB для экономии энергии

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

Давайте настроим электропитание правильно:

  1. Зайдите в Диспетчер устройств Windows.
  2. Разверните ветку Контроллеры USB.
  3. Для каждого устройства типа "Корневой USB-концентратор" (USB Root Hub) и "Generic USB Hub" нажмите правой кнопкой мыши — Свойства.
  4. Перейдите на вкладку Управление электропитанием.
  5. Снимите галочку Разрешить отключение этого устройства для экономии энергии.

Дополнительно проверим общую схему электропитания:

  1. Панель управления — Электропитание.
  2. На текущей схеме нажмите "Настройка схемы электропитания" — "Изменить дополнительные параметры питания".
  3. Найдите ветку Параметры USB — Параметр временного отключения USB-порта.
  4. Установите значение Запрещено.

Способ 3. Фиксация COM-порта через реестр (Защита от переключения портов) и работа сканера в нескольких базах 1С

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

Чтобы заставить Windows игнорировать серийный номер при определении устройства и жестко привязать настройки, можно внести изменения в реестр. Это особенно полезно, если пользователи любят перетыкать сканер в разные разъемы.

Рассмотрим алгоритм действий:

1. Определяем VID (Vendor ID) и PID (Product ID) вашего сканера. Для этого зайдите в Диспетчер устройств, найдите ваш сканер (в портах COM и LPT или устройствах ввода), откройте Свойства — вкладка Сведения — ИД оборудования. Вы увидите строку вида: USB\VID_11CA&PID_0207&REV_0100. Здесь VID = 11CA, а PID = 0207 (это пример для Honeywell, у вас могут быть свои цифры).

2. Создаем файл реестра. Откройте Блокнот и создайте новый файл. Вставьте туда следующий текст, заменив цифры в названии параметра на ваши VID и PID:


Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\usbflags]
"IgnoreHWSerNum11CA0207"=hex:01

Где 11CA0207 — это склеенные VID и PID вашего устройства.

3. Сохраните файл с расширением .reg (например, fix_scanner.reg) и запустите его двойным щелчком, согласившись на внесение изменений.

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

Способ 4. Альтернатива: Перевод сканера в режим "Клавиатура"

Если борьба с COM-портами и драйверами не дает стабильного результата, можно использовать режим эмуляции клавиатуры (Keyboard Wedge). В этом режиме сканер работает как обычная клавиатура: он просто "печатает" считанные символы в то поле, где находится курсор.

Плюсы: Не нужны драйверы COM-порта, работает стабильно в любой ситуации, работает в RDP без проброса портов. Минусы: 1С не получает "Внешнее событие". Это значит, что для сканирования нужно, чтобы курсор обязательно стоял в нужном поле ввода или в форме был перехвачен фокус. Если всплывет окно Skype или ошибка — сканер "пропищит" данные в пустоту или в чужое окно.

Если вы решили выбрать этот путь, настроим его правильно:

  1. Настройка сканера:
    • Найдите управляющий штрихкод в инструкции к сканеру или запрограммируйте сканер (например, Scantech SD380) для сброса настроек.
    • Отсканируйте код перевода интерфейса в USB Keyboard (PC).
    • Важно: Настройте суффикс возврата каретки (CR / Enter). Для Honeywell это обычно делается сканированием кода "Add CR Suffix". Это нужно, чтобы после штрихкода сканер "нажимал" Enter.
  2. Настройка 1С:
    • В настройках подключаемого оборудования выберите драйвер "1С:Сканеры штрихкода (NativeApi)".
    • В параметрах подключения укажите Порт: Клавиатура.
    • Установите Префикс или Суффикс клавиши Enter (код #13 или CR), чтобы 1С понимала, что ввод завершен. В типовых конфигурациях 1С часто достаточно настроить это только на самом сканере, но иногда требуется продублировать настройку и в драйвере 1С.

При такой настройке событие сканирования будет обрабатываться как нажатие клавиш. Тест устройства в 1С должен показывать полученный штрихкод и в конце символ CR (или 'CR').

Дополнительные рекомендации

Если вы используете режим COM-порта, убедитесь, что установлен "родной" драйвер от производителя. Для Honeywell 1450g это Honeywell HSM USB Serial Driver. Стандартный драйвер Microsoft usbser.sys в Windows 10/11 работает неплохо, но драйвер производителя обеспечивает более стабильную работу виртуального порта и корректное восстановление после сна.

Используйте утилиту Honeywell EZConfig для точной настройки сканера, обновления прошивки и проверки суффиксов/префиксов, если у вас нет под рукой бумажной инструкции с кодами.

← На главную