ЕAN-128 для штрихкодов контейнеров и палет

Последние изменение: 11.02.2020

Для маркировки коробок и палет часто используется штрихкод EAN-128 (GS1-128)Mobile SMARTS поддерживает использование любой транспортной упаковки, маркированной такими штрихкодами, в качестве единицы хранения товара.

В Mobile SMARTS используются шаблоны штрихкодов транспортных упаковок, которые позволяют пользователю добавлять новые варианты маркировки контейнеров совершенно любых форматов без переписывания основной программы. Благодаря этому на программном уровне все операции с новыми упаковками будут работать правильно без дополнительных доработок алгоритмов.

В рамках этих шаблонов сделана поддержка штрихкодов EAN-128, которая позволяет без лишнего программирования получить нужный результат.

Использование параметров и полей шаблона позволяет держать алгоритмы разбора штрихкодов отдельно от основной программы. 

Пример доработки готового шаблона штрихкода   

Допустим, в компанию поступили коробки, в которых значимые части расставлены не в том порядке, в котором рассчитывали ранее. Или, что еще хуже, для получения информации недостаточно просто вырезать часть штрихкода, а необходимо выполнять вычисления.  

Вместо того, чтобы искать все места программы, в которых происходит работа со штрихкодами коробок и вставлять туда код по типу «Если первый символ штрихкода = 1 тогда» (а это будут такие операции, как приемка, пересчет, подбор заказов, отгрузка, переупаковка и т.п.), в Mobile SMARTS достаточно добавить новый шаблон штрихкода, в котором будут происходить все проверки и вычисления.

Как это работает в общем виде:

  1. Mobile SMARTS проверяет, подходит ли хотя бы часть отсканированного штрихкода целиком под один из заведенных в системе шаблонов штрихкода. Шаблоны проверяются в том порядке, в котором они указаны в списке «Штрихкоды контейнеров» в панели управления.

  2. Если найден шаблон, под который подходит какая-то часть штрихкода или весь штрихкод целиком, то сначала строка штрихкода разбирается по шаблону, как это описано в статье про примеры шаблонов штрихкодов контейнеров и палет. Найденные параметры (переменные части штрихкода) переносятся в объект {SSCCPallet}.

  3. Далее Mobile SMARTS проверяет, подходит ли отсканированный ШК под формат GS1-128 (имеется в виду именно содержимое штрихкода, сам ШК при этом может быть любой кодировки (EAN-128, CODE-39, DataMatrix, QR и т.п.)

  4. Если оказалось, что отсканированный штрихкод подходит под формат GS1-128, то Mobile SMARTS пробегается по тем полям шаблона штрихкода, у которых заполнено свойство EanAI, и переносит в {SSCCPallet} куски штрихкода, являющиеся значениями AI кодов применения) с указанными номерами.  

Разбор частного примера шаблона:

(00){Расширение:1} {Ост:17}

В этом шаблоне первые две цифры в скобках (00) определяют AI (код применения) 00, т.е. код палеты SSCC. Далее идут два параметра на 1 и 17 знаков длиной (любые знаки, хоть пробелы). SSCC должен быть 18 цифр (см. код палеты SSCC), и суммарная длина параметров 1+17=18.

Под такой шаблон подойдет штрихкод «(00)012345678901234567», но не подойдет штрихкод «(00)012345678901234567(21)abba», потому что он длиннее на группу (21).

Далее добавим в шаблон новое поле «КодКонтейнера» (это будет именно поле, а не параметр шаблона):

И укажем у него, что оно должно маппиться на код применения AI 00. Теперь этот шаблон сработает только в том случае, если после (00) идут именно 18 цифр (буквы в данном случае запрещены).

Этот шаблон подойдет, даже если кроме (00) в сканируемом штрихкоде будут еще и другие AI (цифры в скобках). Это сделано для того, чтобы не заводить по отдельному шаблону на каждый штрихкод формата EAN-128. Например, штрихкод «(00)012345678901234567(21)abba» также подойдет под этот шаблон.

{Расширение:1} позволяет определить, на какую цифру начинался штрихкод контейнера. В частности, можно определить что было отсканировано: коробка или палета по правилам GS1. 

Для это необходимо добавить еще 2 вычислимых поля:

Значения полей «ЭтоПалета» и «ЭтоКоробка» вычисляются на основе того, чему равен параметр «Расширение», куда попадает первая цифра из кода контейнера в группе (00).

Этот момент следует учитывать при копировании и изменении чужого готового шаблона. Если в самостоятельно написанном шаблоне не будет вычислимого поля «ЭтоКоробка» или оно будет считаться неправильно, при сканировании штрихкода, подпадающего под ваш шаблон, в складских операциях в программе может не сработать логика, которая была завязана программистом конкретной конфигурации Mobile SMARTS на значения таких полей.

Если необходимо, чтоб из штрихкодов GS1-128 вынимались не только группы (00), как было указано в шаблоне, то будет достаточно добавить в шаблон нужные поля и указать у них EanAI:

Если что-то осталось непонятным по механизмам работы шаблонов из данной статьи — оставляйте в техническую поддержку «Клеверенс» запрос на написание новой или дополнение текущей документации.