DataMatrix или как правилно да се маркира обувката

От 1 юли 2019 г. в Русия е въведено задължително маркиране на група стоки. От 1 март 2020 г. обувките трябваше да попаднат под този закон. Не всички успяха да се подготвят и в резултат стартирането беше отложено за 1 юли. Lamoda е сред тези, които успяха.

Затова искаме да споделим опит с тези, които все още трябва да маркират облекло, гуми, парфюми и т.н. В статията е описан редица индустриални стандарти, някои нормативни документи и личен опит. Статията е предназначена предимно за интегратори и разработчици, които само предстои да се запознаят с този проект.

DataMatrix или как правилно да се маркира обувката

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

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

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

МаркировкаОсновната идея на маркировката е, че на всяка единица стока се присвоява индивидуален номер. По този номер може да се проследи историята на конкретната единица стока от момента на производство или внос в страната до момента на изваждане на касата. Звучи прекрасно, но на практика е изключително трудно за реализиране. По-подробно концепцията е описана на официалния сайт на честния знак.

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

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

Термини и понятия в рамките на настоящата статия

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

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

Поръчка и получаване на кодове

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

  1. В една поръчка може да се поискат кодове максимум за 10 GTIN-ове. В принципе, необяснимо ограничение. Вносител с 14 000 GTIN-а трябва да създаде 1400 поръчки.
  2. В една поръчка може да се поискат максимум 150 000 кодове.
  3. Има ограничение от 100 поръчки в обработка. Тоест, едновременно могат да бъдат обработвани не повече от 100 поръчки. Ако броят им надхвърли 100, API-то ще започне да връща грешка вместо списък с поръчки. Единственият начин да се отстрани тази грешка е да се затворят част от поръчките през уеб интерфейса. В API-то не е предвиден параметър за частично показване на поръчките.
  4. Има лимит на броя запитвания — не повече от 10 запитвания в секунда. Според моите данни в документите това ограничение не фигурира, но то съществува.

От личен опит с поръчките на кодове за маркировка КМ през API на системата СУЗ.

  1. Заявката (самият json) трябва да бъде подписана с Гост-овска подпись. Това е работа с криптопро. Трябва да се следи внимателно, за да не бъде променен оригиналният json с нито един байт от използвания фреймворк или библиотека. В противен случай подписът веднага престава да бъде валиден.
  2. Подпис на поръчка. Поръчката може да бъде подписана с всякакъв подпис на клиент. Ако подписът е валиден, системата СУЗ ще го приеме. При интеграцията успях да подпиша заявка с чужд подпис, издаден от тестов УЦ. Оперативната част на СУЗ обработи поръчката и издаде кодове. Според мен, това е пропуск в сигурността. На баг-репорта разработчиците отговориха „ще погледнем“. Надявам се да го поправят.

    Затова бъдете изключително внимателни, ако на едно работно място работят повече от едно юридическо лице. Днес СУЗ ще приеме тези запитвания, а утре запитванията ще бъдат повторно проверени и половината кодове ще бъдат отзовани заради чужд подпис. В принципе, формално ще имат право.

  3. Автоподписването на поръчки — това е функция, която вече не е налична в СУЗ. За нейното функциониране беше необходимо да се качи затворената част от ключа в личния кабинет на честния знак. Това е компрометиране на ключа. И съгласно действащото законодателство, в случай на компрометиране на усилена квалифицирана електронна подпись, собственикът трябва да уведоми своя удостоверяващ център (УЦ) и да отзове УКЕП. Ако тази функция бъде възстановена, внимателно следете да не напуска затворената част на ключа компютъра.
  4. През февруари Центърът за развитие на перспективни технологии (ЦРПТ) тихо въведе ограничение на броя запитвания към API на СУЗ. Не повече от едно запитване в секунда. После също така неочаквано и безшумно това ограничение беше премахнато. Затова препоръчвам да включите в системата възможността да се ограничава броят запитвания към API на ЦРПТ в случай на рецидив. В момента има информация за лимит от 10 запитвания в секунда.
  5. Също така през февруари без предупреждение значително се промени поведението на API на СУЗ. В API има запитване за получаване на статуса на поръчките. В статуса се посочваха буферите и тяхното състояние. Един GTIN = един буфер. Там също беше посочено колко кода са налични за получаване от буфера. В един прекрасен ден за всички буфери количеството стана -1. Пристигна се до положение, в което трябваше да се проверява състоянието на всеки буфер поотделно чрез отделен метод. Вместо едно запитване, се наложи да се направят единадесет.

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

И така, кодовете са поръчани и генерирани. Могат да бъдат взети през API в текстов формат, в PDF като етикети за печат и като CSV файл с текст.

По отношение на API вече беше писано по-горе. Що се отнася до другите два начина. Първоначално СУЗ позволяваше да се вземат кодовете само веднъж. И ако се взимаше PDF файл, кодовете в текстов формат можеха да се получат само чрез повторно сканиране на всички датаматриси от PDF. За щастие, добавиха възможност за многократно получаване на кодовете и този проблем беше разрешен. В рамките на два дни кодовете все още са налични за повторно изтегляне.

Ако взимате в CSV формат, абсолютно никога, при никакви обстоятелства, не го отваряйте в Excel. И не позволявайте на никого да го прави. В Excel има функция за автоматично запазване. В момента на запазване, Excel може по най-непредсказуем начин да променя вашите кодове. Препоръчвам да използвате Notepad++ за преглед на кодовете.

Ако отворите файла от СУЗ в Notepad++, можете да видите редове от подобен вид. Третият код е невалиден (липсват му разделители GS).

DataMatrix или как правилно да се маркира обувката

Партньорите ни предоставиха кодове за маркерирането на техния продукт. С просто око се вижда, кои файлове са форматирани с помощта на Excel - до 5% от кодовете бяха невалидни.

Настоятелно препоръчвам да прочетете за стандарти GS1. В описанието на стандарта има отговори на много въпроси относно формированието на DataMatrix.

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

За УПД (универсален предавателен документ) и други документи, обратно, най-често е нужна пълната записка с идентификатори на приложение.

DataMatrix или как правилно да се маркира обувката

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

Тъй като серийният номер има променлива дължина, разделителят GS указва края му. В таблицата ASCII той има код 29. Без този разделител, нито една програма няма да разбере, в кой момент е завършил серийният номер и са започнали другите групи данни.

По-подробно за кода на маркировка (КМ) можете да прочетете в официалната документация.

За обувките, серийният номер е фиксиран на 13 знака, но размерът му може да бъде променен по всяко време. За други товарни групи (ТГ) дължината на серийните номера може да варира.

Генерация на DataMatrix

DataMatrix или как правилно да се маркира обувката

Следващата стъпка е преобразуването на данните в код 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.

За съжаление, доста голям процент от DataMatrix кодовете от партньорите идваха с грешки. Благодарение на обясненията от ЧЗ, въпросът "Може ли да се търгува с такъв продукт след 1 юли или не?" беше напълно решен. Спойлер — може.

Печат

Обърнете внимание на начина на печат на марките. При печат на термопринтер марката бързо избледнява и този продукт вече не може да се продава. Нечетлива марка е нарушение на ППР 860, което води до изземване на стоката, глоби и наказателна отговорност.

Използвайте термотрансферен печат. В този случай марката не е подложена на избледняване толкова силно. Зависимо е и от материала на етикета, колко марката е подложена на механични повреди. Ако кодът не се чете поради механична повреда, това е равносилно на отсъствие на марка с всички произтичащи последствия.

DataMatrix или как правилно да се маркира обувката

Изберете принтер в съответствие с планираните обеми на печат. Настолни принтери не са предназначени за печат на 100 000 етикета на ден.

Спирането и стартирането на печат повишават износването на принтера. Някои програми изпращат задачи за печат по една етикета. По-добре е да не използвате такива програми.

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

След като марките са отпечатани и залепени, всички следващи операции с тях се извършват чрез документи или личен кабинет на честния знак.

При работа с голямо количество кодове можете да създавате XML файлове, в които ще бъдат необходимите кодове, и да качвате тези файлове чрез API или уеб интерфейс на личния кабинет.

XSD схемата може да се изтегли в раздел "помощ" в ЛК ЧЗ.

Обърнете внимание на следните моменти.

  1. XSD схемите в ЛК ЧЗ съдържат грешки при проверката на ИНН и ограничения на дължината на стринга. Само след като бъдат коригирани грешките, можете да използвате схемите. За щастие, грешките са очевидни, така че не е трудно да се поправят.
  2. Схемата най-често се състои от две части — обща за всички видове документи и отделна за конкретен вид. Общата схема е добавена чрез внос в конкретната. И двете схеми са разположени в раздела помощ в ЛК ЧЗ.
  3. Правилата за екрантиране за КМ се различават от общоприетите за XML, за което е написано в официалната документация от ЧЗ, обърнете внимание на това. Ето тук на 4 страница всички правила.
  4. Не трябва да се опитвате да въведете 150 000 кода в обращение с един файл. Според свидетели, файловете над 30 000 обикновено минават...
  5. XML файл може да бъде отказан с грешка “грешка валидация xml”, а след пет минути същият файл да бъде приет без проблеми.
  6. Ако в файла се окаже вече въведен код, то файлът за въвеждане в обращение вероятно няма да бъде приет.
  7. Документите за отгрузка и приемане се използват като временно решение. В бъдеще именуват да бъдат отменени и да преминат към УПД според ППР 860.
  8. Митът за 60 дни. Има мнение, че не въведените в обращение кодове „изгарят“ след 60 дни. Това е мит, източникът е неизвестен. Кодове „изгарят“, само ако не сте ги взели от СУЗ в рамките на 60 дни. Срокът на живот на взетите кодове не е ограничен.

Заключение

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

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

Алиансът Форта създаде информационно пространство (wiki, чатове в Телеграм, семинари, уебинари), където можете да намерите полезна и актуална информация за етикетирането във всички отрасли.

Източник: habr.com

Купете надежден хостинг за сайтове с защита от DDoS, VPS VDS сървъри 🔥 Купете надежден хостинг за сайтове с защита от DDoS, VPS VDS сървъри | ProHoster