Почему сканер штрих-кода проходит тест в настройках 1С, но не добавляет товары в документы?

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

Часто системные администраторы и специалисты по автоматизации сталкиваются с парадоксальной ситуацией: в настройках «Подключаемого оборудования» 1С сканер штрих-кода успешно проходит тест, отображает считанный код и суффиксы, но при попытке сканирования в реальном документе (например, в «Чек ККМ» или «Реализация товаров и услуг») ничего не происходит. Рассмотрим подробно, почему так происходит, и разберем по шагам, как привести систему в рабочее состояние.

1. Проблема драйверов и разница в версиях операционных систем

Проанализируем ситуацию, описанную в теме: на Windows 11 сканер «взлетел» сразу, а на Windows 7 возникли сложности. Основная причина кроется в подсистеме драйверов. Для работы сканера в режиме эмуляции COM-порта (VCP — Virtual COM Port) требуются специфические драйверы от производителя (Honeywell, Zebra, Datalogic и другие).

В современных операционных системах, таких как Windows 10 и 11, многие драйверы стандарта CDC (Communication Device Class) устанавливаются автоматически. В старых версиях (Windows 7) системе часто требуется ручное вмешательство. Разберем основные моменты:

2. Механизм внешнего события в 1С

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

Если в тесте всё работает, но в документе — нет, это означает, что 1С не смогла «подписаться» на события этого порта при открытии формы. Причины могут быть следующими:

Для понимания того, как 1С обрабатывает данные, рассмотрим пример логики, которая должна срабатывать в конфигурации:


Процедура ВнешнееСобытие(Источник, Событие, Данные)
    Если Источник = "СканерШтрихкода" Тогда
        // Обработка полученных данных штрихкода
        Штрихкод = СокрЛП(Данные);
        ОбработатьШтрихкод(Штрихкод);
    КонецЕсли;
КонецПроцедуры

3. Настройка суффиксов и префиксов

Одной из самых частых ошибок является некорректная настройка суффикса. Суффикс — это невидимый символ, который сканер отправляет сразу после штрих-кода, чтобы дать программе понять: «ввод данных завершен». Рассмотрим наиболее популярные варианты: CR (код 13, возврат каретки) и LF (код 10, перевод строки).

В настройках «Подключаемого оборудования» 1С необходимо убедиться, что указанный суффикс строго соответствует тому, что запрограммировано в самом сканере. Проанализируем ситуацию:

  1. Если сканер передает только CR (13), а в 1С настроено CR + LF (13 и 10), 1С будет бесконечно ждать символ 10 и не вызовет событие обработки штрих-кода.
  2. Проверить реальную передачу символов можно в простом «Блокноте» (если сканер в режиме клавиатуры) или через специальные утилиты мониторинга портов (если в режиме COM).

Важно: Для работы в 1С в режиме COM-порта суффикс обязателен. Без него драйвер не поймет, где заканчивается один штрих-код и начинается другой.

4. Режим эмуляции клавиатуры (HID) против COM-порта

Разберем различия в поведении сканера, которые упомянул автор темы. В режиме клавиатуры сканер просто «печатает» цифры в то поле, где стоит курсор. Именно поэтому первое нажатие открывает окно поиска (так как 1С реагирует на нажатие цифр), а второе — вносит товар. Это крайне неудобный режим для потоковой работы.

При использовании режима COM-порта (NativeApi) курсор может находиться в любом месте формы или его может не быть вовсе — 1С перехватит событие в фоновом режиме и добавит товар в таблицу. Это и есть «режим как в магазине».

5. Энергосбережение USB-портов

Иногда сканер перестает работать спустя некоторое время после начала смены. Проанализируем настройки Windows. По умолчанию в системе включена функция «Разрешить отключение этого устройства для экономии энергии» для USB-концентраторов.

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

  1. Откройте «Диспетчер устройств».
  2. Найдите раздел «Контроллеры USB».
  3. Для каждого «Корневого USB-концентратора» откройте «Свойства», перейдите во вкладку «Управление электропитанием» и снимите галочку автоматического отключения.

6. Работа через удаленный рабочий стол (RDP)

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

7. Итоговый чек-лист для проверки

Чтобы окончательно решить проблему, пройдемся по шагам нашего чек-листа:

  1. Убедитесь, что в «Диспетчере устройств» сканер отображается в разделе Порты (COM и LPT) без восклицательных знаков.
  2. Проверьте, установлена ли актуальная версия 1C:Barcode Scanner Driver или используется NativeApi.
  3. В настройках оборудования нажмите кнопку «Тест устройства». Просканируйте код. Убедитесь, что в поле результата в конце строки присутствуют символы 'CR' или 'LF'.
  4. Зайдите в настройки сканера в 1С и сверьте поле «Суффикс». Чаще всего там должно стоять значение 13 или 13, 10.
  5. Если используется Windows 7, попробуйте переустановить драйвер от производителя и обязательно перезагрузить ПК.

Соблюдение этих правил позволит вам избежать «магии» и «камлания с бубном», обеспечив стабильную работу торгового оборудования.

← На главную