При автоматизации складских операций и розничных отгрузок возникает необходимость быстро заполнять табличные части документов (например, РеализацияТоваровУслуг или ПоступлениеТоваровУслуг) с помощью сканера штрихкодов. Однако в конфигурации 1С:Бухгалтерия предприятия 2.0 (на обычных формах) полноценная подсистема подключаемого оборудования отсутствует, как и встроенный регистр сведений для хранения штрихкодов номенклатуры.
Разберем основные подходы, позволяющие организовать ввод по штрихкоду как без снятия конфигурации с поддержки, так и с минимальными доработками базы данных.
Самый удобный вариант без изменения конфигурации — использование механизма внешних печатных форм и обработок заполнения табличных частей. Обработка подключается через справочник ВнешниеОбработки и вызывается по кнопке Заполнить в командной панели табличной части документа.
Рассмотрим структуру и логику работы такой обработки:
Если сканер настроен в режиме эмуляции клавиатуры (USB HID), в конце каждого штрихкода передается суффикс перевода строки (Enter). Оператор считывает товары один за другим, после чего обработка группирует одинаковые позиции, подсчитывает их количество и переносит данные в документ.
Если сканер работает в режиме виртуального COM-порта (Virtual COM / RS-232), на форме обработки перехватывается событие ВнешнееСобытие(Источник, Событие, Данные). Это позволяет считывать коды независимо от того, какой элемент формы активен.
Номенклатура и построчно заполняет табличную часть Товары документа-владельца.Чтобы сопоставлять считанный код с номенклатурой, необходимо место для его хранения. Выясним, какие варианты здесь доступны:
В конфигурации можно задействовать механизм дополнительных реквизитов. Для плана видов характеристик СвойстваОбъектов создается свойство Штрихкод с типом значения Строка. Значения сохраняются в регистре сведений ЗначенияСвойствОбъектов. Обработка заполнения находит номенклатуру простым запросом к этому регистру.
Ограничение: для одной позиции номенклатуры в таком варианте можно закрепить только один штрихкод.
Если требуется привязывать несколько штрихкодов к одному товару (например, разные упаковки или штрихкоды производителей), создается непериодический регистр сведений (например, Штрихкоды). В качестве измерений выступают Штрихкод (строка) и Номенклатура (ссылка на справочник Номенклатура), а также при необходимости ЕдиницаИзмерения и Коэффициент.
Проанализируем вариант полноценного встраивания работы со сканером напрямую в форму документа:
ПриОткрытии, отключения в ПриЗакрытии и перехватчик ВнешнееСобытие.F7) вызывается диалог ручного ввода штрихкода для случаев, когда сканер временно недоступен или этикетка повреждена.При настройке оборудования обратим внимание на следующие нюансы: