В процессе автоматизации розничной торговли часто возникает ситуация, когда кассиру неудобно каждый раз нажимать кнопку «Ввести штрихкод» (или клавишу F7) для добавления товара в чек. На первый взгляд кажется, что самым простым решением будет добавление на форму РМК (Рабочее место кассира) постоянно активного текстового поля, куда сканер будет «печатать» цифры. Однако в системе 1С:Управление торговлей 11 реализован гораздо более эффективный и технологичный механизм работы с торговым оборудованием. Рассмотрим подробно, как настроить автоматический поиск товара по штрихкоду, не прибегая к изменению типовой конфигурации.
Для начала проанализируем, почему стандартное текстовое поле — это не лучший выбор. Если мы выведем поле ввода, программа будет зависеть от фокуса курсора. Стоит кассиру нажать на таблицу товаров или кнопку оплаты, фокус уйдет, и считанный сканером штрихкод «улетит в никуда» или вызовет случайные срабатывания горячих клавиш.
Правильная работа со сканером в 1С строится на механизме внешнего события. Программа постоянно мониторит данные от драйвера оборудования. Как только сканер считывает код, 1С получает программное прерывание, обрабатывает его и добавляет товар в корзину, независимо от того, где в данный момент находится курсор. Это позволяет кассиру работать быстро и без ошибок.
Выясним, в каком режиме работает ваше устройство. Существует два основных способа подключения USB-сканеров:
Для перевода сканера в режим COM-порта обычно требуется считать специальный управляющий штрихкод из инструкции к самому устройству. Проанализируем документацию к вашему сканеру и найдем раздел «USB Virtual COM» или «Enable COM Port Emulation».
После того как сканер определился в операционной системе, перейдем к настройкам в программе. Разберем последовательность действий:
1С:Сканеры штрихкода (NativeAPI).Критически важным моментом является настройка параметров драйвера. Нажмем кнопку «Настроить» в карточке оборудования. Здесь необходимо указать:
Порт: Если сканер в режиме клавиатуры, выбираем «Клавиатура». Если в режиме COM — выбираем соответствующий номер порта (например, COM3).
Суффикс: Это символ, который сканер посылает в конце штрихкода, сигнализируя о завершении ввода. В 1С стандартным суффиксом является 13 (CR), что соответствует клавише Enter. Если суффикс настроен неправильно, программа может получить данные, но не понять, что ввод окончен, и поиск товара не начнется автоматически.
Для проверки нажмем кнопку «Тест устройства» и считаем любой штрихкод. В окне теста мы должны увидеть считанные данные и в конце упоминание суффикса 'CR' (13).
При использовании типовой конфигурации УТ 11 и правильно настроенного оборудования, форма РМК уже содержит необходимый код для обработки данных. Разберем, как это работает на уровне логики системы. Когда происходит сканирование, вызывается процедура:
&НаКлиенте
Процедура ВнешнееСобытие(Источник, Событие, Данные)
// Обработка данных от сканера
Если Данные <> Неопределено Тогда
// Процедура поиска и добавления товара
ОбработатьШтрихкод(Данные);
КонецЕсли;
КонецПроцедуры
Благодаря этому механизму, нам не нужно иметь видимое поле ввода на форме. Система «слушает» события от драйвера в фоновом режиме.
Рассмотрим причины, по которым профессиональные разработчики избегают создания отдельных полей для ввода штрихкода:
ПриИзменении для этого поля и принудительно возвращать в него фокус методом ЭтаФорма.ТекущийЭлемент = Элементы.ПолеШтрихкода;, что может раздражать пользователя при попытке выполнить другие действия.Подведем итог: если в РМК 1С:УТ 11 программа требует нажимать кнопку для ввода штрихкода — это признак того, что сканер подключен просто как «клавиатура» без настройки в самой системе.
Рассмотрим краткий чек-лист для исправления ситуации:
NativeAPI.Таким образом, правильная настройка оборудования исключает необходимость в доработке конфигурации и обеспечивает максимально быструю работу кассового узла.