В процессе автоматизации торговых процессов часто возникает необходимость разграничить потоки данных, поступающих со сканера штрих-кодов. Типовая задача — сделать так, чтобы программа автоматически понимала, что именно отсканировал пользователь: товар для продажи или свой личный бейдж для авторизации в системе. Для реализации этой логики в 1С:Управление торговлей 10.3 (УТ 10.3) используется механизм префиксов. Разберем подробно, как «забронировать» префикс 28 под товары и 29 под сотрудников.
Прежде чем переходить к настройкам, проанализируем международный стандарт EAN-13. Для внутреннего использования на предприятиях (так называемые Internal Usage) выделен диапазон префиксов с 20 по 29. Эти коды никогда не встретятся на заводской упаковке товара из магазина, так как они предназначены исключительно для локальных нужд склада или торговой точки.
Традиционно сложилось следующее распределение внутри этого диапазона, которого рекомендуется придерживаться для минимизации конфликтов:
В нашем случае мы рассмотрим настройку префикса 28 для товаров и 29 для сотрудников, что вполне укладывается в логику платформы.
Выясним, где в конфигурации УТ 10.3 задаются параметры генерации штрих-кодов. Программа должна знать, какой префикс подставлять, когда бухгалтер или кладовщик нажимает кнопку «Новый» в карточке номенклатуры. Рассмотрим пошаговый алгоритм настройки:
Важный нюанс: Установка этого значения повлияет только на те штрих-коды, которые будут созданы в системе после изменения настроек. Уже существующие штрих-коды в регистре сведений Штрихкоды останутся прежними. Если вам необходимо массово изменить старые коды, потребуется написание групповой обработки.
Теперь проанализируем ситуацию с персоналом. В типовой УТ 10.3 у справочника Сотрудники или Физические лица нет прямого реквизита «Штрих-код» на форме. Однако механизм идентификации персонала для целей авторизации или фиксации продаж по продавцам реализован через справочник Информационные карты.
Рассмотрим, как правильно «забронировать» префикс 29 для этих целей:
Проанализируем, зачем сотрудникам штрих-код. В основном он используется для двух сценариев:
Посмотрим на ситуацию с точки зрения кода. За обработку данных со сканера отвечает процедура ВнешнееСобытие в формах или в общем модуле (в зависимости от настройки торгового оборудования). Чтобы система корректно разделяла 28 и 29, в коде обработки штрих-кода обычно присутствует условие, анализирующее первые две цифры.
Разберем пример логики обработки:
// Пример упрощенной логики в обработке внешнего события
Штрихкод = СокрЛП(Данные);
Префикс = Лев(Штрихкод, 2);
Если Префикс = "29" Тогда
// Ищем в справочнике ИнформационныеКарты
КартаОбъект = Справочники.ИнформационныеКарты.НайтиПоКоду(Штрихкод);
Если НЕ КартаОбъект.Пустая() Тогда
// Выполняем авторизацию сотрудника
КонецЕсли;
ИначеЕсли Префикс = "28" Тогда
// Ищем в регистре Штрихкоды (Номенклатура)
Запрос = Новый Запрос;
Запрос.Текст = "ВЫБРАТЬ ОбластьНоменклатуры ИЗ РегистрСведений.Штрихкоды ГДЕ Штрихкод = &Штрихкод";
// ... дальнейшая логика поиска товара
КонецЕсли;
Выясним причину возможных сбоев при использовании префикса 28. Если на вашем предприятии используются электронные весы с печатью этикеток, обязательно проверьте настройки в справочнике Весовое оборудование. В весах часто по умолчанию настроен префикс 20, 21 или 22 для формирования кодов, где содержится вес.
Если вы назначите префикс 28 для штучного товара в 1С, но при этом весы будут настроены так же на 28, возникнет критическая ошибка: при сканировании этикетки с весом (например, 2800123005009 — где 500 это вес) система будет искать в справочнике номенклатуры штучный товар с полным кодом 2800123005009 и, естественно, его не найдет, либо найдет не тот товар.
Рекомендация: Всегда четко разделяйте диапазоны. Например: 28 — только штучный товар 1С, 29 — только сотрудники, 24 — только весовой товар с весов.
Подведем итог нашему исследованию. Для того чтобы успешно разделить префиксы, мы должны:
ВнешнееСобытие, чтобы программа мгновенно переключала контекст поиска при считывании кода сотрудника.Такой системный подход позволит избежать путаницы в данных и обеспечит корректную работу склада и торгового зала.