Как обработать штрихкод со сроком годности, весом и номером партии в 1С и Клеверенс?

Программист 1С v8.3 (Управляемые формы) 1С:Управление торговлей Управленческий учет Торговля и дистрибуция
← На главную

При работе со складскими операциями в 1С:Управление торговлей 11 часто возникает задача корректной обработки сложных штрихкодов формата GS1-128 (EAN-128). Эти коды содержат в себе не только артикул товара, но и дополнительные данные: номер партии, дату окончания срока годности и вес упаковки. Если при использовании терминалов сбора данных (ТСД) с ПО Клеверенс Mobile SMARTS вы сталкиваетесь с тем, что система видит только основной штрихкод товара, а дополнительные атрибуты «обрезаются» или суммируются, — эта инструкция для вас. Рассмотрим пошагово, как настроить разбор такого кода и передачу данных в 1С.

Разберем структуру сложного штрихкода

Прежде чем приступать к программным настройкам, проанализируем структуру кода GS1-128. В нем используются идентификаторы применения (Application Identifiers — AI), которые указывают, какая информация следует далее. Например, код может выглядеть так: (01)09009861271346(10)00037133(15)190923(3103)001000.

  1. (01) — идентификатор GTIN (14 знаков).
  2. (10) — номер партии (переменная длина).
  3. (15) — срок годности в формате ГГММДД.
  4. (310x) — вес в килограммах, где «x» указывает на количество знаков после запятой.

Основная проблема заключается в том, что стандартная обработка «Загрузка данных с ТСД» в 1С:УТ 11.3 не обучена «из коробки» разделять эту строку на составляющие, а сама платформа Mobile SMARTS требует предварительной настройки шаблонов разбора.

Настройка Mobile SMARTS: создание шаблона штрихкода

Для начала нам необходимо научить мобильное приложение на ТСД распознавать структуру кода. Рассмотрим, как это сделать через панель управления Клеверенс на персональном компьютере:

  1. Перейдем в раздел Шаблоны штрихкодов.
  2. Создадим новый шаблон для формата GS1-128.
  3. Пропишем правила выделения подстрок. Система Клеверенс позволяет использовать регулярные выражения или встроенные функции для поиска AI.

Важно помнить о символе-разделителе FNC1. Если идентификатор имеет переменную длину (как номер партии), после него должен идти специальный невидимый символ FNC1. Если ваш сканер на ТСД его не передает, данные «склеятся». Рекомендуем зайти в настройки сканирующего модуля Android (DataWedge или аналоги) и включить эмуляцию FNC1 (например, заменить его на символ «|» или «~»), чтобы шаблон разбора мог корректно найти конец блока данных.

Доработка конфигурации мобильного приложения

Проанализируем ситуацию: даже если ТСД считал код, типовая интеграция передает в 1С только поле Штрихкод. Чтобы получить срок годности и вес, необходимо добавить соответствующие поля в структуру документа Mobile SMARTS.

Выясним причину, почему данные могут не доходить до 1С. В конфигураторе Mobile SMARTS для объекта Строка (в документе, например, «Приход на склад») нужно создать дополнительные поля:

После создания полей необходимо в алгоритме обработки сканирования прописать присвоение значений из разобранного штрихкода в эти поля. Без этого шага 1С будет получать только обрезанную строку EAN-13, как это описывалось в сообщениях пользователей на форуме.

Решение проблемы суммирования строк с разными датами

Часто возникает проблема: если вы сканируете один и тот же товар, но с разными сроками годности, Mobile SMARTS по умолчанию может «схлопнуть» их в одну строку, просто суммировав количество. Рассмотрим, как этого избежать.

Посмотрим на настройку Идентификатор уникальности строки в конфигурации мобильного приложения. По умолчанию уникальность определяется только по ID товара. Чтобы система разделяла позиции, нам нужно изменить этот ключ:

Идентификатор уникальности = ИдентификаторТовара + ДатаСрокаГодности + НомерПартии

Теперь при сканировании упаковок с разными датами на ТСД будут создаваться отдельные строки, которые корректно перенесутся в 1С.

Изменения в коде 1С: обработка загрузки данных

Когда данные подготовлены на стороне ТСД, их нужно принять в 1С. Рассмотрим пример модификации процедуры загрузки. Вам потребуется доработать расширение или внешнюю обработку «Загрузка данных с ТСД Wi-Fi Проф».

Найдем процедуру ЗагрузитьСТСД и проанализируем, как заполняются строки документа. Нам нужно обратиться к нашим созданным полям Mobile SMARTS:


// Пример получения данных из дополнительных полей Клеверенса
Для Каждого СтрокаИзТСД Из ТаблицаДанныхТСД Цикл
    НоваяСтрока = ТаблицаТоваров1С.Добавить();
    НоваяСтрока.Номенклатура = ПоискНоменклатурыПоШК(СтрокаИзТСД.Barcode);
    
    // Получаем кастомные поля, которые мы добавили в Mobile SMARTS
    Если СтрокаИзТСД.Свойства.Содержит("Custom_ExpiryDate") Тогда
        НоваяСтрока.СрокГодности = СтрокаИзТСД.Свойства.Custom_ExpiryDate;
    КонецЕсли;
    
    Если СтрокаИзТСД.Свойства.Содержит("Custom_Weight") Тогда
        // Обрабатываем вес, если он пришел как число
        НоваяСтрока.КоличествоУпаковок = СтрокаИзТСД.Свойства.Custom_Weight;
    КонецЕсли;
КонецЦикла;

Обратите внимание, что в 1С:УТ 11.3 работа с сериями и сроками годности должна быть предварительно настроена в Политике учета серий для конкретного склада и вида номенклатуры. Если серии не включены, данные просто некуда будет записывать.

Возможности 1С:УТ 11.4 и выше

Если у вас есть возможность обновиться до версии 11.4 или 11.5, обязательно сделайте это. В новых редакциях появился полноценный справочник Настройки разбора строк штрихкодов. Рассмотрим его преимущества:

  1. Вы можете визуально настроить правила разбора для GS1-128 прямо в интерфейсе 1С.
  2. Система автоматически сопоставляет идентификаторы применения (AI) с реквизитами серий (номер, дата производства, дата окончания срока годности).
  3. Появился специальный объект Штрихкоды упаковок, который значительно упрощает хранение информации о весовом товаре в коробах.

Резюмируем: Для успешной обработки сложных кодов в УТ 11.3 необходимо пройти путь от настройки драйвера ТСД (символ FNC1) до создания шаблонов разбора в Mobile SMARTS и добавления проброса кастомных полей в обработку загрузки 1С. Это требует навыков разработки в обеих системах, но позволяет полностью автоматизировать приемку весового и подконтрольного товара.

← На главную