Настройка торгового оборудования, в частности сканеров штрих-кода серии Honeywell 1950 Xenon XP, часто сопряжена с трудностями в среде «1С:Предприятие 8.3». Распространенная ситуация: сканер успешно проходит тесты в драйвере или корректно считывает данные в блокнот, но при попытке проверить товар или считать лекарственный препарат в специализированных формах конфигурации «1С:Больничная аптека» реакция программы остается нулевой. Разберем подробно, почему это происходит и как настроить оборудование для стабильной работы.
Проанализируем ситуацию. В современных конфигурациях 1С на управляемых формах работа со сканером строится на обработке внешнего события. Если сканер настроен в режиме эмуляции клавиатуры (HID Keyboard) без правильного управляющего символа в конце (суффикса), 1С воспринимает ввод как обычный набор текста пользователем. Если в этот момент фокус ввода не находится в текстовом поле, программа просто игнорирует данные.
Основные причины некорректной работы:
Рассмотрим наиболее надежный способ настройки, который помог пользователям форума. Этот метод заключается в использовании технологии NativeApi и настройки сканера в режиме клавиатуры с обязательным добавлением суффикса.
Выполним следующие шаги по порядку:
Шаг 1: Сброс настроек. Прежде всего, необходимо вернуть сканер к заводским установкам. Это удалит все ранее запрограммированные префиксы и суффиксы, которые могут мешать работе. Для этого отсканируйте управляющий штрих-код из инструкции (или найденный в сети) Remove Custom Product Defaults или Standard Product Default Settings.
Шаг 2: Выбор интерфейса. Убедимся, что сканер работает в режиме USB-клавиатуры. Для этого используется штрих-код USB Keyboard (PC). В большинстве случаев этот режим установлен по умолчанию после сброса.
Шаг 3: Добавление суффикса возврата каретки. Это критический момент. Чтобы 1С поняла, что штрих-код считан полностью, сканер должен посылать символ Enter (код ASCII 13, CR). Отсканируйте штрих-код Add CR Suffix. После этого в любом текстовом редакторе (например, в блокноте) после считывания кода курсор должен автоматически переходить на новую строку.
Шаг 4: Настройка в 1С. Перейдем в программу и выполним следующие действия:
1С:Сканеры штрихкода (NativeApi).#13(CR). Префикс оставим пустым.Если работа в режиме клавиатуры вызывает проблемы (например, из-за переключения языковой раскладки), рассмотрим альтернативный и более современный вариант — режим USB HID POS.
В этом режиме сканер не «печатает» символы, а передает их как сообщение операционной системе, которое 1С перехватывает напрямую. Для этого:
USB HID Bar Code Scanner.Клавиатура (или соответствующее системное имя устройства, которое появится в списке).Поскольку мы работаем в конфигурации «1С:Больничная аптека», нам важно учитывать работу с кодами маркировки DataMatrix. В лекарственных препаратах эти коды содержат скрытый символ-разделитель GS (Group Separator). Если сканер настроен как обычная клавиатура, он может «проглатывать» этот символ, и 1С выдаст ошибку о некорректном коде или просто не отреагирует.
Посмотрим, как проверить передачу GS-символа. В тесте устройства в 1С код маркировки должен выглядеть не как слитная строка, а содержать специальные обозначения в местах разделителей. Если их нет, воспользуйтесь официальной утилитой Honeywell EZConfig. Это программное обеспечение позволяет подключить сканер к компьютеру через USB и настроить параметр Data Formatting, включив передачу всех спецсимволов ASCII. Также для решения проблемы с разделителями можно использовать расширение для восстановления символа GS в считанных кодах маркировки.
Часто причина «нулевой реакции» кроется не в самом сканере, а в настройках прав и рабочих мест внутри 1С. Проверим следующие пункты:
Для технических специалистов разберем, как 1С обрабатывает данные. В модуле формы, где происходит проверка лекарств, обычно присутствует обработчик ВнешнееСобытие. Чтобы понять, доходят ли данные до программы, можно воспользоваться отладчиком или внешней обработкой для тестирования сканера. Код обработчика выглядит примерно так:
Процедура ВнешнееСобытие(Источник, Событие, Данные)
Если Источник = "Scanner" И Событие = "Barcode" Тогда
// Здесь происходит расшифровка данных
Штрихкод = СокрЛП(Данные);
ОбработатьШтрихкод(Штрихкод);
КонецЕсли;
КонецПроцедуры
Если при сканировании в режиме NativeApi управление не заходит в эту процедуру, значит, либо неверно указан суффикс в настройках (программа ждет символ завершения), либо устройство не захвачено драйвером 1С. Убедитесь, что в форме настройки оборудования статус устройства — «Подключено». Для проверки работы обработчика без физического оборудования подойдёт эмулятор сканера штрихкода для тестирования внешних событий.
Важный совет: Не пытайтесь настроить сканер Honeywell 1950 через старые COM-драйверы (HSM USB Serial Driver), если ваша конфигурация 1С позволяет использовать NativeApi. Это избавит вас от проблем с поиском свободных портов (COM3, COM4) и обеспечит более высокую скорость и стабильность работы в медицинских информационных системах.