Разберем распространенную ситуацию в розничной торговле: к рабочим станциям с конфигурацией 1С:Розница подключены сканеры штрихкодов Honeywell 5145 (Eclipse) или Honeywell MS7120 через интерфейс USB в режиме эмуляции COM-порта (Virtual COM). Периодически оборудование перестает передавать данные в программу: при сканировании штрихкода само устройство издает штатный звуковой сигнал, однако в интерфейсе 1С событие не обрабатывается. Проблема исчезает только после перезапуска 1С или операционной системы.
Проанализируем основные причины такого поведения и рассмотрим комплекс пошаговых решений для обеспечения бесперебойной работы торгового оборудования.
В типовых решениях 1С прошлых версий для работы с COM-портом применяется драйвер ScanOPOS линейки 8.0.x. При возникновении малейшего тайм-аута или сбоя дескриптора порта на уровне операционной системы устаревшая COM-компонента блокирует поток чтения. Сканер продолжает считывать штрихкоды на аппаратном уровне, но в платформе событие ВнешнееСобытие перестает генерироваться до перезапуска процесса 1cv8.exe.
Разберем по шагам, как исправить программную часть:
ScanOPOS до версии 8.1.7.9 или выше, в которой переработан механизм перехвата ошибок COM-портов.Операционная система Windows по умолчанию экономит питание и может кратковременно отключать питание корневых USB-концентраторов или переводить контроллер в режим ожидания. Для торгового оборудования это приводит к разрыву виртуального последовательного соединения без уведомления программы 1С.
Выполним полную настройку электропитания:
Сканеры Honeywell 5145 разработаны на базе интерфейса USB 1.1/2.0. При подключении к портам USB 3.0 (синие разъемы, контроллеры xHCI) эмуляция COM-порта нередко зависает из-за некорректной обработки очередей пакетов. Кроме того, внутренняя прошивка сканера может ожидать подтверждения приема (ACK/NAK) от программы.
Проверим и исправим аппаратные параметры:
Если виртуальный COM-порт продолжает работать нестабильно на конкретной связке оборудования, переведем сканер в режим эмуляции клавиатуры. Чтобы при этом в 1С не требовалось нажимать клавишу F7 или удерживать фокус в поле ввода, выполним корректную программную настройку суффиксов.
Пошаговый порядок настройки:
При корректной передаче штрихкода через драйвер устройства ввода платформа вызывает предопределенную процедуру формы:
Процедура ОбработкаВнешнегоСобытия(Источник, Событие, Данные)
// Проверяем источник внешнего события торгового оборудования
Если Источник = "BarCodeScaner" ИЛИ Источник = "СканерШтрихкода" Тогда
// Получаем переданный штрихкод
ТекущийШтрихкод = СокрЛП(Данные);
// Выполняем поиск товара в информационной базе
ОбработатьШтрихкодТовара(ТекущийШтрихкод);
КонецЕсли;
КонецПроцедуры
Применение обновленных драйверов, отключение спящего режима USB и правильный выбор однонаправленного режима эмуляции позволяют полностью устранить зависания сканеров Honeywell при интенсивной работе на кассовых узлах.