GS1 DataMatrix

Структура

Для маркировки товаров используется штриховой код GS1 DataMatrix. Он позволяет кодировать идентификационные ключи системы GS1, а также любую дополнительную информацию о товаре (вес, срок годности, номер серии, номер партии, дата изготовления).

С введением обязательной маркировки — формировать, печатать и проверять коды GS1 DataMatrix необходимо уметь практически в каждой организации.

Как правильно сформировать GS1 DataMatrix:

GS1 DataMatrix
  1. ASCII 232 (FNC1).
  2. (01) Код продукта (GTIN).
  3. (21) Серийный номер.
  4. Разделитель групп данных ASCII 29 (GS).
  5. (91) Ключ проверки, предоставляемый оператором системы в составе кода проверки;
  6. Разделитель групп данных ASCII 29 (GS).
  7. Электронную подпись, предоставляемую оператором системы в составе кода проверки, 88 символов (цифры, строчные и прописные буквы латинского алфавита, а также специальные символы) — крипто хвост.

*При формировании используется таблица символов Base64

В соответствии с требованиями GS1 DataMatrix Guideline, в начало получаемой строки кода необходимо добавлять признак символики – ASCII232 (так называемый FNC1).

FNC1 — специальный символ, который указывает, что закодированная последовательность является штрихкодом GS1. В случае отсутствия этого символа технические средства не распознают код правильно и не смогут его корректно обработать. 

GS — специальный символ, который указывает, что текущая группа данных закончена. Так как вторая группа данных (21) Серийный номер имеет переменную длинну от 13 до 20 символов, в зависимости от группы товаров, то в конце этой группы обязательно применяется символ разделитель GS.

В конце полей переменной длины необходимо использовать специальные символы GS1 — разделители. Они нужны для того чтобы идентифицировать отдельные блоки штрихкода. В качестве разделителей допустимо использовать символ ASCII 29 (GS).

Обращаем ваше внимание, что использовать FNC1 в качестве разделителя — настоятельно не рекоммендуется, так как теряется порядок учета полей.

Визуально в подписи ДатаМатрикс кода такие разделители не отображаются.

Важно. Приложение Честный Знак может распознавать различные виды DataMatrix. Даже QR-коды. Тот факт, что код распозналася и информация о товаре отобразилась, не является показателем, что DataMatrix сформирован правильно и имеет структуру GS1 DataMatrix.

Оператор ЦРПТ выпустил пояснение, как правильно генерировать коды. Из-за большого числа кодов с ошибками они признали коды без FNC1 валидными, но, все-таки, рекомендуют генерировать GS1 DataMatrix.

К сожалению, достаточно большой процент ДатаМатрикс кодов от субьектов приходит с ошибками.

Когда Коды Маркировки заказаны и сгенерированы. Их можно забрать через API в текстовом виде, в ТХТ как файл с текстом.

Если открыть файл в notepad++(блокнот), можно увидеть строки такого вида. Серым цветом выделены скрытые символы разделители ASCII 29 в виде <0x1d>. В последующем эти символы при печати должны быть преобразованы в разделители строк формата GS1 DataMatrix

 

Аналогично если забираете в ТХТ формате, то никогда, ни при каких обстоятельствах, не следует открывать и сохранять его в экселе. В экселе есть функция автосохранения. В момент сохранения эксель может самым непредсказуемым образом видоизменить ваши коды. Рекомендуем использовать notepad++(блокнот) для просмотра кодов.

При преобразовании перед печатью полученные Коды Маркировки могут приобрести следующий вид:

Третий код — невалидный (у него отсутствуют разделители GS).

Несмотря на то, что при подготовке файла к печати или генерации GS1 DataMatrix, для работы с системой через личный кабинет или API используется оригинальный Код Маркировки содержащий скрытые символы разделители ASCII 29 в виде <0x1d>

 

Генерация

В постановлении правительства РФ 860 указан ГОСТ, согласно которому необходимо формировать DataMatrix. Так же в ППР 860 указано обязательное использование идентификаторов применения. Обратите внимание, что в стандарте DataMatrix нет понятия «идентификаторы применения». Они есть только в стандарте GS1 DataMatrix. Основное различие: в GS1 DataMatrix первый символ должен быть FNC1. Символ GS не должен стоять на первом месте в DataMatrix, только FNC1.

FNC1 нельзя просто взять и добавить в строку как GS. Его должна добавлять программа, генерирующая DataMatrix.

Предлагаем разработчикам программного обеспечения ознакомится с собранными ссылками по тематике формирования GS1 DataMatrix и использовать данный опыт для доработки учетных систем:

По ссылке https://zxing.org/w/decode.jspx изображение кода можно разобрать в шестнадцатеричном виде. Это важно для понимания, появился ли в начале ДатаМатрикс кода символ FNC1. Так как сканеры не возвращают этот символ, убедиться о том, что все верно можно увидев вначале строки E8.

Основные ошибки, которые допускаются при формировании GS1 DataMatrix:

  1. в начале не вставлен FNC1 (1 специальный символ);
  2. вместо спецсимвола FNC1 в начале вставлен текст «FNC1» (4 символа);
  3. вместо спецсимвола FNC1 в начале вставлен GS;
  4. не вставлены разделители групп данных GS после полей переменной длины (например, после серийного номера);
  5. разделители групп данных вставлены не туда, где они должны быть (например, после поля (01) GTIN, которое имеет фиксированную длину и не требует в конце разделителя);
  6. вместо спецсимвола GS вставлен текст «GS»;
  7. используются программы или алгоритмы для печати, которые непоправимо искажают информацию (например, удаляют из кода символы, которые они считают лишними. Зачастую это арифметические символы, скобки и т.п.).

Для проверки работоспособности двумерного сканера с Личным кабинетом ГИС «Электронный знак» можно воспользоваться следующей формой: