Переход на обязательную маркировку товаров (Честный ЗНАК) поставил перед владельцами систем на базе 1С:Предприятие 7.7 сложную задачу. Платформа, созданная более 20 лет назад, технически не была рассчитана на работу с двумерными кодами DataMatrix и современными беспроводными интерфейсами. В данной статье мы рассмотрим, как правильно подобрать бюджетный сканер, обеспечить его стабильную работу в связке с Windows 10 и избежать типичных ошибок при интеграции с конфигурацией «Торговля и склад 9.2».
Для работы с маркировкой нам необходим именно 2D-сканер (фотосканер), способный считывать коды DataMatrix. Обычные лазерные 1D-сканеры для этой задачи бесполезны. Проанализируем требования автора темы: беспроводной режим, работа на расстоянии 20–30 метров в условиях склада и бюджетность. Разберем по шагам, на что обратить внимание при покупке:
Посмотрим на конкретные модели, предложенные в обсуждении. Линейки Atol Impulse и Mertech (серия CL) являются фаворитами в бюджетном сегменте. Они обеспечивают эмуляцию COM-порта, которая жизненно необходима для корректной передачи спецсимволов маркировки.
Выясним причину, по которой опытные специалисты настоятельно рекомендуют отказаться от режима «разрыв клавиатуры» (HID) в 1С 7.7. При сканировании кода DataMatrix в режиме клавиатуры Windows интерпретирует передаваемые символы в зависимости от текущей раскладки (RU/EN). В результате вместо корректного кода маркировки в программу попадает «каша» из символов. Кроме того, 1С 7.7 крайне нестабильно ловит префиксы в клавиатурном режиме.
Рассмотрим алгоритм настройки через COM-порт:
Virtual COM Port. Для этого обычно нужно считать специальный управляющий штрихкод из инструкции к устройству.Стандартная библиотека ScanOPOS.dll часто не справляется с длинными строками маркировки. Проанализируем ситуацию: код маркировки может содержать скрытые символы GS1 (FNC1). Для их корректной обработки лучше использовать внешнюю компоненту от АТОЛ (версии 6.x) или альтернативные разработки.
Для регистрации компоненты в Windows 10 (64-bit) выполним команду через командную строку от имени администратора:
regsvr32 "C:\Program Files (x86)\1Cv77\BIN\Scaner1C.dll"
После регистрации в самой конфигурации «Торговля и склад» переходим в меню «Сервис» — «Настройка торгового оборудования». На вкладке «Сканер штрих-кода» выбираем соответствующую модель и указываем номер COM-порта. Обратим внимание на параметр «Суффикс». Обычно для сканеров это значение 13 (символ возврата каретки CR).
Как отмечалось в обсуждении, при работе в 20–30 метрах от компьютера пользователь не видит, попал ли товар в документ. Рассмотрим два способа решения этой проблемы:
Этот режим превращает обычный сканер в подобие простейшего ТСД. Кладовщик переводит сканер в режим накопления, обходит склад, «пикает» все нужные товары, а затем возвращается к базе и считывает служебный код «Выгрузить данные». Сканер разом передает весь пакет штрихкодов в 1С. Это исключает потерю данных при временном обрыве связи за бетонными стенами.
Если бюджет позволяет, вместо беспроводного сканера можно использовать связку из дешевого нетбука (или планшета на Windows) и обычного проводного сканера. В этом случае кладовщик видит экран 1С и результат каждого сканирования в реальном времени. Для 1С 7.7 существуют готовые модули «АРМ Кладовщика», которые адаптированы под помарочный учет и интеграцию с Честным ЗНАКом.
Проанализируем программные настройки ОС, которые могут мешать работе. Windows 10 агрессивно управляет электропитанием USB-портов. Если база беспроводного сканера подключена к USB, система может «усыплять» порт при простое. Выполним следующие действия:
Это гарантирует, что 1С не потеряет связь со сканером после десятиминутного перерыва в работе.
При использовании правильной компоненты, код маркировки попадает в процедуру ОбработкаВнешнегоСобытия. Рассмотрим пример упрощенного кода для анализа входящих данных:
Процедура ОбработкаВнешнегоСобытия(Источник, Событие, Данные)
Если Событие = "BarCodeValue" Тогда
СчитанныйШтрихкод = СокрЛП(Данные);
// Проверяем длину кода. Код маркировки DataMatrix обычно длиннее 20 символов
Если СтрДлина(СчитанныйШтрихкод) > 20 Тогда
Сообщить("Считан код маркировки: " + СчитанныйШтрихкод);
// Здесь вызываем функцию поиска товара по марке
Иначе
Сообщить("Считан обычный EAN-13: " + СчитанныйШтрихкод);
КонецЕсли;
КонецЕсли;
КонецПроцедуры
Подведем итог: для успешной работы в ТиС 9.2 на Windows 10 нам нужен 2D-сканер с радиоканалом 2.4ГГц, настроенный в режиме Virtual COM Port. Использование внешних драйверов и отключение энергосбережения USB — залог того, что система будет работать без постоянных зависаний и ошибок распознавания маркировки.