разделитель gs в коде маркировки

DataMatrix или как правильно маркировать обувь

С 1 июля 2019 года в России введена обязательная маркировка группы товаров. С 1 марта 2020 года под этот закон должна была попасть обувь. Не все успели подготовиться, и в результате запуск перенесли на 1 июля. Lamoda среди тех, кто успел.

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

разделитель gs в коде маркировки

Обратите внимание, что нормативная база часто меняется, и у автора нет возможности постоянно обновлять материал. Поэтому к моменту прочтения часть информации может уже устареть.

Личный опыт получен автором как в рамках работы по проекту Datamatrix в Lamoda, так и при разработке собственного бесплатного приложения для маркировки BarCodesFx.

С 1 июля 2019 года в России действует закон об обязательной маркировке. Закон распространяется не на все группы товаров, и сроки вступления в силу обязательной маркировки для товарных групп различаются. Сейчас под обязательную маркировку попадают табак, шубы, обувь, лекарства. В ближайшее время будет вводиться для шин, одежды, духов и велосипедов. Каждая группа товаров регулируется отдельным постановлением правительства (ППР). Поэтому некоторые утверждения, правильные для обуви, могут быть неправильными для других групп товаров. Но можно надеяться, что техническая составляющая не будет сильно варьироваться для разных товарных групп.

Общепринятые термины и понятия

УОТ — участник оборота товаров.
ЦРПТ — центр развития перспективных технологий. Частная компания, единственный гос. подрядчик по проекту маркировки. Работает по схеме государственного частного партнерства (ГЧП). Информации о других участниках тендера по проекту, как и собственно о самом тендере, к сожалению, нет.
ТГ — товарная группа. Обувь, одежда, шины и т.д.
GTIN — по сути, артикул с учетом цвето-размера. Выдается в GS1 или нацкаталоге для каждого импортера или производителя на его товар. Предварительно производитель или импортер должен описать этот товар.
ППР — постановление правительства РФ. Для обуви — 860.
КМ — код маркировки. Уникальный набор символов, присвоенный конкретной единице товара. Для обуви состоит из GTIN, серийного номера, кода проверки и криптохвоста.
GS1 — международная организация, выдающая GTIN-ы. Так же составители ряда стандартов по маркировке.
Нацкаталог — аналог GS1, разработанный ЦРПТ.
Криптохвост — аналог цифровой подписи, подтверждающий легальность КМ. Обязательно должен быть в датаматриксе на марке. Хранение в текстовом виде запрещено. После распечатывания марки должен быть удален согласно договору с ЦРПТ. Не известно ни одного случая реального использования.
СУЗ — станция управления заказами. Система, в которой заказываются КМ-ы для товара.
ЭДО — электронный документооборот.
УКЭП — усиленная квалифицированная электронная подпись.

Термины и понятия в рамка данной статьи

ЧЗ — честный знак.
ЛК — личный кабинет.
Марка — напечатанный код маркировки.

Процесс выглядит следующим образом: вначале участник (УОТ) выпускает электронную подпись (УКЭП), регистрируется в честном знаке (ЧЗ), описывает товар в нацкаталоге или GS1, получает GTIN-ы на товар. На сайте честного знака эти шаги подробно расписаны, поэтому на них останавливаться не будем.

Заказ и получение кодов

После получения GTIN-ов участник (УОТ) делает заказ кодов (КМ) в системе СУЗ.
Важно, но не очевидно.

Структура кодов

Итак, коды заказаны и сгенерированы. Их можно забрать через api в текстовом виде, в pdf как этикетки для печати и как csv файл с текстом.

Про API уже было написано выше. Что касается двух других способов. Изначально СУЗ позволял забрать коды только один раз. И если забирался pdf файл, то получить коды в текстовом виде можно было только пересканировав все датаматриксы из pdf. К счастью, добавили возможность несколько раз забирать коды, и эта проблема решилась. В течение двух дней коды еще доступны для повторного скачивания.

Если забираете в csv формате, то никогда, ни при каких обстоятельствах, не открывайте его в экселе. И никому не разрешайте. В экселе есть функция автосохранения. В момент сохранения эксель может самым непредсказуемым образом видоизменить ваши коды. Рекомендую использовать notepad++ для просмотра кодов.

Если открыть файл из СУЗ в notepad++, можно увидеть строки такого вида. Третий код — невалидный (у него отсутствуют разделители GS).

разделитель gs в коде маркировки

Партнеры передавали нам коды для маркировки своего товара. Невооруженным взглядом видно, какие файлы формировались с помощью экселя — до 5% кодов были невалидны.

Настоятельно рекомендую почитать про стандарты GS1. В описании стандарта есть ответы на многие вопросы по формированию DataMatrix.

Код идентификации состоит из GTIN и серийного номера. Согласно стандарту GS1 им соответствуют идентификаторы применения (ИП) 01 и 21. Обратите внимание, идентификаторы применения не являются частью GTIN и серийного номера. Они указывают, что после идентификатора применения (ИП) идет GTIN или серийный номер. Это особенно важно при программировании кассового ПО. Для заполнения тега 1162 нужны именно GTIN и серийный номер, без идентификаторов применения.

Для УПД (универсального передаточного документа) и прочих документов, наоборот, чаще всего нужна запись целиком с идентификаторами применения.

разделитель gs в коде маркировки

В стандарте GS1 прописано, что GTIN имеет фиксированную длину в 14 знаков и может состоять только из цифр. Серийный номер имеет переменную длину и описан на 155 странице стандарта. Там же есть ссылка на таблицу с символами, которые могут встречаться в серийном номере.

Так как серийный номер имеет переменную длину, то разделитель GS указывает на его окончание. В таблице ASCII у него код 29. Без этого разделителя ни одна программа не поймет, в какой момент закончился серийный номер, и начались другие группы данных.

Более подробно про код маркировки (КМ) можно прочитать в официальной документации.

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

Генерация DataMatrix

разделитель gs в коде маркировки

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

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

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

Позже ЧЗ выпустили пояснение, как правильно генерировать коды. Из-за большого числа кодов с ошибками они признали коды без FNC1 валидными, но, все-таки, рекомендуют генерировать GS-1 DataMatrix.

К сожалению, достаточно большой процент датаматриксов от партнеров приходил с ошибками. Благодаря пояснениям от ЧЗ был полностью решен вопрос “Можно ли торговать таким товаром после 1 июля или нет?”. Спойлер — можно.

Печать

Обратите внимание на способ печати марок. При печати на термопринтере марка быстро выцветает, и этот товар уже нельзя продавать. Нечитаемая марка — это нарушение ППР 860. Что ведет к изъятию товара, штрафам, уголовной ответственности.

Используйте термотрансферную печать. В этом случае марка не так сильно подвержена выцветанию. От материала этикетки также зависит, насколько марка подвержена механическим повреждениям. Если код не считывается из-за механического повреждения, это равносильно отсутствию марки со всеми вытекающими последствиями.

разделитель gs в коде маркировки

Выбирайте принтер из планируемых объемов печати. Настольные принтеры не рассчитаны на печать 100 000 этикеток в день.

Остановка и старт печати повышают износ принтера. Некоторые программы отправляют задание на печать по одной этикетке. Такими программами лучше не пользоваться.

Работа с документами

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

При работе с большим количеством кодов можно создавать xml файлы, в которых будут требуемые коды, и загружать эти файлы через API или веб интерфейс личного кабинета.

XSD схему можно скачать в разделе “помощь” в ЛК ЧЗ.

Обратите внимание на следующие моменты.

Заключение

При разработке моего бесплатного приложения для маркировки BarCodesFX, изначально была сделана интеграция с API СУЗ. Когда честный знак второй раз неожиданно изменил логику работы API, от интеграции пришлось отказаться. Надеюсь, в дальнейшем ЧЗ удастся стабилизировать разработку и API, т.к. для некоммерческого продукта мне очень затратно каждый день перепроверять, не было ли изменений в API, и оперативно дорабатывать.

При внедрении маркировки внимательно ознакомьтесь с нормативной документацией по вашей товарной группе ТГ, правильно печатайте GS1-DataMatrix и будьте готовы к любым непредвиденным изменениям со стороны честного знака ЧЗ.

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

Источник

Появились рекомендации по кодированию и преобразованию кода маркировки

разделитель gs в коде маркировки

Код маркировки и его признак

разделитель gs в коде маркировки

Пример кода с выделенными спецсимволами FNC1 и GS

Код маркировки GS1 DataMatrix состоит из нескольких частей, отделенных друг от друга разделителями полей (символами ASCII 29). Каждая часть начинается с идентификатора применения (полный список возможных идентификаторов применения ).

Например, для обувных товаров согласно постановлению правительства об утверждении правил маркировки код маркировки включает в себя 4 группы данных:

Пример кода маркировки для рендеринга в штриховой код DataMatrix: + 01 + GTIN (14 знаков) + 21 + серийный номер (13 знаков) + + 91 + ключ проверки (4 знака) + + 92 + криптоподпись (88 знаков)

Как проверить формат кода

Для проверки кода формата GS1 DataMatrix можно использовать различные приложения и программы, позволяющие проверить код DataMatrix (для Android и для iOs).

Есть также специальные сканеры, поддерживающие вывод идентификаторов типов символов, которые согласно стандарту ISO/IEC 15424 при считывании кода формата GS1 DataMatrix отображают первые три буквы как «]d2». Для обычного DataMatrix первые три символа будут отображаться как «]d1».

разделитель gs в коде маркировки

Идентификаторы типов символов для DataMatrix согласно стандарту ISO/IEC 15424

Валидный или не валидный код

Как сообщает оператор маркировки, если код DataMatrix сформирован участником маркировки без лидирующего признака FNC1, то данный код также является валидным. Но в то же время, при получении получателем товаров с такими кодами или при продаже на кассе (выводе из оборота) могут возникать технические проблемы с чтением кода без спецсимвола. При считывании кодов маркировки техника и программы, настроенные на проверку правильности кода, могут выдавать ошибки из-за отсутствия обязательного символа FNC1. Поэтому, несмотря на то что код маркировки без спецсимвола является корректным, все же рекомендуется формировать коды DataMatrix по алгоритму, соответствующему спецификации GS1 DataMatrix.

Мы подобрали актуальные программные продукты для адаптации оборудования и учетных систем на платформе 1С к очередной волне маркировки.

Как я понимаю это европейский пример формирования и использования GTIN.
И что интересно что зашивается в него производитель. Таким образом аспирин одного производителя будет иметь отличный GTIN от аспирина другого производителя. Возникает интересный вопрос по такому же принципу будет реализовано это в Честном знаке или же они будут иметь одинаковые GTIN?

Источник

Ваш браузер устарел, пожалуйста обновите ваш браузер пройдя по ссылке www.microsoft.com/download

Появились рекомендации по кодированию и преобразованию кода маркировки

разделитель gs в коде маркировки

Код маркировки и его признак

разделитель gs в коде маркировки

Пример кода с выделенными спецсимволами FNC1 и GS

Код маркировки GS1 DataMatrix состоит из нескольких частей, отделенных друг от друга разделителями полей (символами ASCII 29). Каждая часть начинается с идентификатора применения (полный список возможных идентификаторов применения ).

Например, для обувных товаров согласно постановлению правительства об утверждении правил маркировки код маркировки включает в себя 4 группы данных:

Пример кода маркировки для рендеринга в штриховой код DataMatrix: + 01 + GTIN (14 знаков) + 21 + серийный номер (13 знаков) + + 91 + ключ проверки (4 знака) + + 92 + криптоподпись (88 знаков)

Как проверить формат кода

Для проверки кода формата GS1 DataMatrix можно использовать различные приложения и программы, позволяющие проверить код DataMatrix (для Android и для iOs).

Есть также специальные сканеры, поддерживающие вывод идентификаторов типов символов, которые согласно стандарту ISO/IEC 15424 при считывании кода формата GS1 DataMatrix отображают первые три буквы как «]d2». Для обычного DataMatrix первые три символа будут отображаться как «]d1».

разделитель gs в коде маркировки

Идентификаторы типов символов для DataMatrix согласно стандарту ISO/IEC 15424

Валидный или не валидный код

Как сообщает оператор маркировки, если код DataMatrix сформирован участником маркировки без лидирующего признака FNC1, то данный код также является валидным. Но в то же время, при получении получателем товаров с такими кодами или при продаже на кассе (выводе из оборота) могут возникать технические проблемы с чтением кода без спецсимвола. При считывании кодов маркировки техника и программы, настроенные на проверку правильности кода, могут выдавать ошибки из-за отсутствия обязательного символа FNC1. Поэтому, несмотря на то что код маркировки без спецсимвола является корректным, все же рекомендуется формировать коды DataMatrix по алгоритму, соответствующему спецификации GS1 DataMatrix.

Мы подобрали актуальные программные продукты для адаптации оборудования и учетных систем на платформе 1С к очередной волне маркировки.

Как я понимаю это европейский пример формирования и использования GTIN.
И что интересно что зашивается в него производитель. Таким образом аспирин одного производителя будет иметь отличный GTIN от аспирина другого производителя. Возникает интересный вопрос по такому же принципу будет реализовано это в Честном знаке или же они будут иметь одинаковые GTIN?

Источник

Появились рекомендации по кодированию и преобразованию кода маркировки

разделитель gs в коде маркировки

Код маркировки и его признак

разделитель gs в коде маркировки

Пример кода с выделенными спецсимволами FNC1 и GS

Код маркировки GS1 DataMatrix состоит из нескольких частей, отделенных друг от друга разделителями полей (символами ASCII 29). Каждая часть начинается с идентификатора применения (полный список возможных идентификаторов применения ).

Например, для обувных товаров согласно постановлению правительства об утверждении правил маркировки код маркировки включает в себя 4 группы данных:

Пример кода маркировки для рендеринга в штриховой код DataMatrix: + 01 + GTIN (14 знаков) + 21 + серийный номер (13 знаков) + + 91 + ключ проверки (4 знака) + + 92 + криптоподпись (88 знаков)

Как проверить формат кода

Для проверки кода формата GS1 DataMatrix можно использовать различные приложения и программы, позволяющие проверить код DataMatrix (для Android и для iOs).

Есть также специальные сканеры, поддерживающие вывод идентификаторов типов символов, которые согласно стандарту ISO/IEC 15424 при считывании кода формата GS1 DataMatrix отображают первые три буквы как «]d2». Для обычного DataMatrix первые три символа будут отображаться как «]d1».

разделитель gs в коде маркировки

Идентификаторы типов символов для DataMatrix согласно стандарту ISO/IEC 15424

Валидный или не валидный код

Как сообщает оператор маркировки, если код DataMatrix сформирован участником маркировки без лидирующего признака FNC1, то данный код также является валидным. Но в то же время, при получении получателем товаров с такими кодами или при продаже на кассе (выводе из оборота) могут возникать технические проблемы с чтением кода без спецсимвола. При считывании кодов маркировки техника и программы, настроенные на проверку правильности кода, могут выдавать ошибки из-за отсутствия обязательного символа FNC1. Поэтому, несмотря на то что код маркировки без спецсимвола является корректным, все же рекомендуется формировать коды DataMatrix по алгоритму, соответствующему спецификации GS1 DataMatrix.

Мы подобрали актуальные программные продукты для адаптации оборудования и учетных систем на платформе 1С к очередной волне маркировки.

Как я понимаю это европейский пример формирования и использования GTIN.
И что интересно что зашивается в него производитель. Таким образом аспирин одного производителя будет иметь отличный GTIN от аспирина другого производителя. Возникает интересный вопрос по такому же принципу будет реализовано это в Честном знаке или же они будут иметь одинаковые GTIN?

Источник

Data Matrix, GS1, код маркировки и разделители

Содержание

Формирование GS1 DataMatrix

Цитата из Описания АПИ СУЗ:

Для корректного формирования GS1 DataMatrix необходимо в начало получаемой строки кода маркировки добавлять признак символики – ASCII232, перед конвертацией в DataMatrix, в соответствии с требованиями GS1 General Specification, в противном случае технические средства не распознают код правильно и не смогут его корректно обработать.

Ниже приведены ссылки на спецификации:

Проверка корректности GS1 DataMatrix

Для проверки корректности штрихкода GS1 DataMatrix можно использовать Приложение для проверки кодов маркировки от компании Клеверенс.

Мысли по теме использования и неиспользования стандартов

Скомпилировано со слов Сергея Баженова и скоро будет подвергнуто редакторской правке (по материалам Главного чата маркировки от 2019-07-03)

Возможно я опять выступлю адвокатом дьявола, но действительно, по стандартам GS1 если длина поля фиксирована, то после него никаких разделителей нет. а если длина поля не фиксирована, то обязателен разделитель, кроме случая, когда дальше уже ничего нет. это касается многих кодировок, начиная от EAN-128 и ISO/IEC 15424 и заканчивая DataMatrix когда в сего пишется код GS1. это касается именно данных в штрихкоде. на печать можно выводить скобки или как-то еще изголяться.

Если разрешите я могу рассказать как должно быть и как сделано

Есть грубо три разных мира: как должно быть, как есть на практике вообще и как есть на практике в Маркировке. сразу оговорюсь, что в маркировке всё очень даже неплохо

Как должно быть: есть стандарты GS1, которые никто не читает. Они говорят, грубо, что есть информация, которая может быть зашита в штрихкод. При этом штрихкод — это никакая ни строка текста. Штрихкод — это полоски. То, что написано обычно под штрихкодом называется «человеко-читаемой формой представления» информации, зашитой в штрихкоде (а не самого штрихкода!!). у штрихкода нет никакой строки. никакая строка не соответствует никакому штрихкоду. есть информация, её можно представить в виде строки, а можно в виде штрихкода.

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

Ну тут есть засада про скобки. Далее, есть вот это представление со скобками. Это всего-лишь рекомендованная человеко-читаемая форма представления. И с ней есть проблема, о которой тут только что говорили: порядок полей не определен никаким стандартом. У штрихкода нет двоичной записи. Есть информация, которую хотим закодировать (объект с полями), и есть стандарт как её преобразовать и закодировать. Бинарный формат есть только у EPC

Про то «как должно быть» это по сути всё. Основная сложность состоит в том, что по стандартам основанием для штрихкода служит информация, карточка товара грубо говоря, поля, значения, а никакая не строка. Но этого никто не понимает и использует строку «типа штрихкод», как идентификатор. Как есть: люди пихают в штрихкоды что хотят. Без специальных символов, со специальными символами и т.п. причем и в России и в Европе.

простой пример: есть кодировка CODE-128, которая отвечает за то, какими штрихами какие символы надо кодировать. есть штрихкод EAN-128, который использует кодировку CODE-128 для кодирования данных о товарах, паллетах, поставках и т.п. Он отличается от CODE-128 тем, что в нем должны быть префиксы, разделители, структура есть. CODE-128 ничего не говорит про структуру, только про штрихи. а EAN-128 говорит про структуру как информация должна быть подана но сплошь и рядом на товарах и паллетах можно увидеть: как бы EAN-128 распечатанный при помощи других штрихов, например CODE-39 или используют кодировку CODE-128, кодируют с её помощью строку «(01)12345. » прямо со скобками и думают, что это типа EAN-128 и прочие прелести

Как сделано в маркировке: всё очень неплохо, все стандарты соблюдены, кроме того фиксирован порядок датаайтемов (полей данных) как в самом штрихкоде, так и в строке КМ. Большое везение ребят в том, что они сами генерируют КМ (строковое представление), а не получают его с рынка «как есть»

Скобки не входят в AI, верно. Но AI это про штрихкоды формата GS1. А в DataMatrix можно печатать любую дичь. Нет никакого запрета.

Скобки как символы разрешены в DataMatrix, более того туда можно кодировать например URL, как в QR код.

Вот алфавит из датаматриксов ЦРПТ: ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789!»»%&’*+-./_,:;=<>?

Если использовать скобки как разделители, то уже нельзя будет без танцев с бубном закодировать скобку в штрихкод. И хотя правила таких танцев давно известны и используются в XML и JSON, служебные символы можно можно экранировать, но это породит свои траблы с тем, что у экранированной строки нет префикса была она экранирована или нет, не надо ли её еще раз разэкранировать. таких багов когда что-то два раза экранировали полно в коде веб-обмена В общем у меня всё

А, нет, сорри. Одно замечание. Как мы боремся с этим адом в своём софте. У нас есть понятие сырых данных и форматированных данных. В отличие от маркировки к нам могут прилететь данные из сторонней системы, со скобками, с любой дичью. в таблице данных это всё льется в таблицу колонку сырых. и есть вычислимая колонка, которая любую дичь приводит к правильному формату

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *