С введением обязательной маркировки товаров у продавцов автомобильных шин появилась обязанность идентификации товаров в системе «Честный знак». Это означает, что любой покупатель в праве получить цифровой код, в котором будет содержаться основная информация о товаре и его характеристики. С этой задачей столкнулась компания "Шинные решения". Compo Soft изучила технические особенности и реализовала на портале необходимый функционал работы с маркировкой "Честный знак".
О системе “Честный знак”
Честный знак — это национальная система маркировки и прослеживания продукции. Специальный цифровой код гарантирует подлинность и качество товара. Основная задача системы — повышение уровня безопасности россиян, борьба с контрафактом и некачественными аналогами.
Как это работает?
Как происходит это? Процесс включает в себя следующие шаги:
- Лицо, участвующее в обороте товара, регистрируется в Государственной системе мониторинга товаров (ГИС МТ).
- Производитель или импортер заказывают цифровой код в ГИС МТ и применяют уникальный код на товар.
- С использованием цифрового кода маркировки фиксируется вся логистическая цепь передвижения товара от завода до конечного потребителя, начиная с ввода в оборот и заканчивая выбытием из оборота.
- При продаже на кассе код сканируется и информация о выбытии продукции из оборота передается в систему.
- Кроме того, потребитель может проверить легальность товара, используя мобильное приложение для цифровой маркировки.
Работа с “Честным знаком” на портале "Шинные решения"
Задача
При подтверждении заказа покупателю необходимо передать информацию о уникальной маркировке каждой позиции товара в заказе.
Пример реализации
Клиент заказал 1 позицию (например, какую-то шину) в количестве 10 шт. При подтверждении заказа уникальный код маркировки будет присвоен каждой штуке.
Изначально все коды маркировки хранятся в учетной системе (в данном проекте это 1С).
То есть для данного заказа к данной позиции будет передано из внешней системы 1С 10 маркировочных кодов. B2B портал получает данные коды в формате base64, производит декодировку в UTF8.
Для реализации необходимо сформировать файл для скачивания с DataMatrix для каждой позиции или общий, в зависимости от требований системы. Для этого на портал была импортирована библиотека для генерации подобных файлов (картинок с кодами - DataMatrix) из цифровых кодов.
Альтернативное техническое решение
Возможно организовать выгрузку из 1С сразу сгенерированных файлов с DataMatrix (например, в формате pdf).
С точки зрения пользователя это выглядит как кнопка скачивания у каждой позиции заказа.
Скачивается файл с кодом вида:
Пользователь, считывая DataMatrix коды приложением “Честный знак”, получает в результате сканирования информацию о товаре.
Технические особенности реализации (генерации DataMatrix)
Технические особенности:
Необходима установка и настройка программного обеспечения для GS1 DataMatrix
Структура
Для идентификации товаров используется штрих-код GS1 DataMatrix. Этот код позволяет закодировать ключевую информацию о продукте, такую как идентификационные номера системы GS1, а также дополнительные данные, например, вес, срок годности, номер серии, номер партии и дату изготовления.
С установлением обязательного требования маркировки товаров, необходимо научиться создавать, печатать и проверять коды GS1 DataMatrix в практически каждой компании.
Как правильно сформировать GS1 DataMatrix:
- GS1 DataMatrix
- ASCII 232 (FNC1).
- Код продукта (GTIN).
- (21) Серийный номер.
- Разделитель групп данных ASCII 29 (GS).
- (91) Ключ проверки, предоставляемый оператором системы в составе кода проверки;
- Разделитель групп данных ASCII 29 (GS).
- Электронную подпись, предоставляемую оператором системы в составе кода проверки, 88 символов (цифры, строчные и прописные буквы латинского алфавита, а также специальные символы) — криптохвост.
*При формировании используется таблица символов Base64
Согласно рекомендациям GS1 DataMatrix Guideline, перед обработкой строки кода необходимо вставить символ ASCII232 (FNC1) в ее начало.
Символ FNC1 является специальным символом, который указывает на то, что закодированная последовательность является штрихкодом GS1. Если этот символ отсутствует, технические устройства не смогут правильно распознать код и обработать его. Для обозначения конца полей переменной длины важно использовать специальные разделители GS1. Эти символы необходимы для идентификации отдельных блоков штрихкода. Можно использовать символ ASCII 29 (GS) в качестве разделителя.
Для обозначения конца полей переменной длины в штрихкодах рекомендуется применять специальные символы GS1-разделители. Они помогают выделять отдельные блоки информации в коде. Для этой цели можно использовать символ ASCII 29 (GS).
Важно помнить, что не следует использовать символ FNC1 в качестве разделителя, поскольку это может нарушить порядок полей.
Отметим, что GS1-разделители не отображаются визуально в подписи DataMatrix кода.
Важно отметить, что приложение Честный Знак способно распознавать различные виды DataMatrix, включая QR-коды. Однако успешное отображение информации о товаре после распознавания не гарантирует правильность формирования и структуру GS1 DataMatrix.
Оператор ЦРПТ выпустил пояснение по правильной генерации кодов. Из-за большого количества кодов с ошибками они решили признать коды без FNC1 валидными, но все же рекомендуют использовать GS1 DataMatrix. К сожалению, значительная часть DataMatrix кодов, получаемых от субъектов, содержит ошибки.
Когда Коды Маркировки заказаны и сгенерированы. Их можно забрать через API в текстовом виде, в формате ТХТ (как файл с текстом).
Если открыть файл в notepad++(блокнот) можно увидеть строки такого вида. Серым цветом выделены скрытые символы разделители ASCII 29 в виде <0x1d>. В последующем эти символы при печати должны быть преобразованы в разделители строк формата GS1 DataMatrix.
При получении информации в формате TXT никогда не следует открывать и сохранять ее в формате Excel. В процессе автоматического сохранения Excel может изменить ваши коды в самом непредсказуемом виде. Рекомендуется использовать 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:
- Не вставлен специальный символ FNC1 в начале (1 символ);
- Вместо FNC1 в начале добавлен текст "FNC1" (4 символа);
- Вместо FNC1 в начале добавлен GS;
- Пропущены разделители групп данных GS после полей переменной длины (например, после серийного номера);
- Разделители групп данных добавлены в неправильном месте (например, после поля (01) GTIN, где они не нужны);
- Вместо GS вставлен текст "GS";
- Использование программ или алгоритмов печати, которые искажают информацию (например, удаляют символы из кода, считая их лишними, такие как арифметические символы или скобки).