При работе со сканерами штрих-кода в среде 1С пользователи часто сталкиваются с необходимостью выполнять лишние действия. Одно из самых распространенных — нажатие клавиши F7 для вызова окна ввода штрих-кода или поиска товара. В этой статье мы подробно разберем, как автоматизировать этот процесс для популярной модели сканера Mertech NS021, чтобы устройство само посылало сигнал клавиши F7 перед передачей данных штрих-кода.
Анализируя типичные обсуждения, мы видим, что пользователям часто советуют настраивать Suffix (суффикс) и использовать код 0x76. Однако в контексте задачи 1С это приводит к двум проблемам:
Prefix (префикс).76 в таблице ASCII соответствует букве «v» в нижнем регистре. Для эмуляции функциональной клавиши F7 в большинстве прошивок Mertech (Sunmi) используется шестнадцатеричный код 17 (в режиме HID клавиатуры).Давайте вместе пройдем по правильному алгоритму настройки, который позволит избежать этих ошибок.
Прежде всего, убедимся, что сканер находится в режиме USB Keyboard (HID). Это стандартный режим, в котором сканер имитирует нажатие клавиш на клавиатуре. Рассмотрим последовательность действий с использованием полной инструкции пользователя.
Проанализируем структуру управляющих кодов. Нам понадобятся разделы «Prefix & Suffix» и «Appendix» с цифровыми кодами. Для успешного программирования нам нужно выполнить строгую последовательность команд.
Возьмите руководство пользователя и последовательно считайте следующие штрих-коды:
1 и 7 формирует Hex-код 0x17, который отвечает за F7.После этого сканер должен начать «нажимать» F7 перед каждым сканированием. Вы можете проверить это, открыв обычный блокнот: при сканировании курсор должен вести себя так, будто была нажата функциональная клавиша (в Windows это часто не дает видимого эффекта в блокноте, но в 1С должно открыться окно).
Если после выполнения предыдущих шагов сканер выдает странные символы вместо нажатия F7, нам нужно проверить настройку Function Key Mapping. По умолчанию сканеры могут передавать коды ASCII как обычный текст. Чтобы сканер понимал, что 0x17 — это именно клавиша F7, нужно найти в инструкции штрих-код Enable Function Key Mapping и считать его.
Это заставит драйвер сканера правильно интерпретировать управляющие символы в режиме эмуляции клавиатуры.
Иногда компьютер или сама программа 1С не успевают среагировать на нажатие F7. Получается ситуация, когда окно поиска еще только начинает открываться, а сканер уже «выстрелил» цифрами штрих-кода. В итоге часть цифр теряется или попадает не туда.
Разберем, как это исправить. В настройках Mertech NS021 есть параметр Inter-character delay (задержка между символами). Мы рекомендуем установить небольшую задержку в 20–40 мс. Это даст системе время «осознать» нажатие префикса перед приемом основной порции данных.
Профессионалы автоматизации 1С часто отказываются от эмуляции клавиатуры и использования клавиши F7 в пользу режима Virtual COM Port. Посмотрим, почему это удобнее:
Для перехода на этот режим выполните следующие действия:
COM3).1С:Сканеры штрихкода (NativeApi).В этом режиме настраивать префикс F7 вообще не требуется. 1С сама отловит событие сканирования и обработает его корректно.
Если вы остались в режиме клавиатуры и настроили префикс в самом сканере, важно убедиться, что в настройках 1С не возникло дублирования. Проанализируем настройки драйвера в 1С:
Зайдите в карточку настроенного сканера в 1С и найдите поле «Префикс». Если вы уже зашили F7 в «мозги» сканера, то в поле «Префикс» в 1С должно быть пусто. В противном случае программа может ожидать двойного префикса или некорректно обрабатывать данные.
Рассмотрим пример того, как логически должна выглядеть обработка данных (упрощенная схема):
// Пример логики события прихода данных
Процедура ВнешнееСобытие(Источник, Событие, Данные)
Если Событие = "Barcode" Тогда
// Если настроен Virtual COM, данные попадают сюда напрямую
ОбработатьШтрихкод(Данные);
КонецЕсли;
КонецПроцедуры
В случае с режимом клавиатуры, 1С просто получает поток символов: сначала F7, который активирует стандартную команду поиска в форме, а затем строку самого штрих-кода в открывшееся поле.
Для успешной настройки Mertech NS021 на клавишу F7 важно:
Следуя этой инструкции, вы сможете существенно ускорить работу оператора и минимизировать количество ручных операций при вводе товаров.