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

Обърнете внимание, че нормативната база често се променя, и авторът няма възможността постоянно да актуализира материала. Затова в момента на прочитането, част от информацията може вече да е остаряла.
Личният опит е получен от автора както в рамките на работата по проекта Datamatrix в Lamoda, така и при разработването на собствено безплатно приложение за етикетиране BarCodesFx.
От 1 юли 2019 година в Русия действа закон за задължителното етикетиране. Законът не обхваща всички групи стоки, и сроковете за влизане в сила на задължителното етикетиране за различни товарни групи се различават. В момента под задължително етикетиране попадат тютюн, кожуси, обувки, лекарства. В най-близко време ще бъде въведено за гуми, облекла, парфюми и велосипеди. Всяка група стоки се регулира от отделен постановление на правителството (ППР). Затова някои твърдения, валидни за обувките, може да се окажат неверни за други групи стоки. Но можем да се надяваме, че техническата съставка няма да варира значително за различните групи стоки.
ЕтикетиранеОсновната идея на етикетирането е на всяка единица стока да се присвои индивидуален номер. По този номер може да се проследи историята на конкретната единица стока от момента на производството или вноса в страната, до момента на намалението на касата. Звучи красиво, но на практика е изключително трудно реализуемо. Подробности за концепцията са описани на официалния сайт на честния знак.
Общоприети термини и понятия
УОТ — участник в оборота на стоки.
ЦРПТ — център за развитие на перспективни технологии. Частна компания, единственият държавен изпълнител по проекта за маркировка. Работи по схемата на публично-частно партньорство (ПЧП). За съжаление информацията за другите участници в търга по проекта, както и самият търг, не е налична.
ТГ — товарна група. Обувки, дрехи, гуми и т.н.
GTIN — по същество артикул с оглед на цвят-размер. Издава се в GS1 или националния каталог за всеки вносител или производител на неговия продукт. Предварително производителят или вносителят трябва да опише продукта.
ППР — постановление на правителството на РФ. За обувките — 860.
КМ — код за маркировка. Уникален набор от символи, присвоен на конкретна единица продукт. За обувките се състои от GTIN, сериен номер, код за проверка и криптохвост.
GS1 — международна организация, която издава GTIN-ове. Също така разработчици на редица стандарти за маркировка.
Национален каталог — аналог на GS1, разработен от ЦРПТ.
Криптохвост — аналог на цифров подпис, който потвърдява легитимността на КМ. Задължително трябва да бъде в датаматрикса на марката. Съхранението в текстов вид е забранено. След печатането на марката трябва да бъде изтрит в съответствие с договора с ЦРПТ. Не е известно за нито един случай на реална употреба.
СУЗ — станция за управление на поръчки. Система, в която се поръчват КМ-ите за продукта.
ЕДО — електронен документообмен.
УКЕП — усилен квалифициран електронен подпис.
Термини и понятия в рамките на тази статия
ЧЗ — честен знак.
ЛК — личен кабинет.
Марка — отпечатан код за маркировка.
Процесът изглежда следния начин: първо участникът (УОТ) издава електронен подпис (УКЕП), регистрира се в честния знак (ЧЗ), описва продукта в националния каталог или GS1, получава GTIN-ове за продукта. На сайта на честния знак тези стъпки са подробно описани, така че няма да спираме на тях.
Поръчка и получаване на кодове
След получаване на GTIN-овете участникът (УОТ) прави поръчка на кодове (КМ) в системата СУЗ.
Важно, но неочевидно.
- В една поръчка може да се искат кодове максимум за 10 GTIN-ове. По принцип, необяснимо ограничение. Вносителят с 14 000 GTIN-а трябва да създаде 1400 поръчки.
- В една поръчка може да се искат максимум 150 000 кода.
- Има ограничение на 100 поръчки в обработка. Тоест едновременно в обработка могат да бъдат не повече от 100 поръчки. Ако броят им надхвърли 100, API-то ще започне да връща грешка вместо списък с поръчки. Единственият начин да се отстрани тази грешка е да се затворят част от поръчките през уеб интерфейса. В API не е предвиден параметър за частично показване на поръчките.
- Има лимит на броя на запитванията — не повече от 10 заявки в секунда. Според моите данни в документите това ограничение не фигурира, но то съществува.
От личния ми опит в работа с поръчки за кодове за етикетиране КМ чрез API на системата СУЗ.
- Запитването (самият json) трябва да бъде подписано с ГОСТ подпись. Това е работа с крипто-програми. Необходимо е внимателно да се следи, за да не бъде променен изходният json нито с един байт от използвания фреймворк или библиотека. В противен случай подписът веднага престава да бъде валиден.
- Подпис на поръчката. Поръчката може да бъде подписана с всякакъв подпис на всеки клиент. Ако подписът е валиден, системата СУЗ ще го приеме. При интеграцията беше възможно да се подпише запитването с чужд подпис, издаден от тестов УЦ. Реалният контур на СУЗ-а обработи поръчката и издаде кодове. Според мен, това е дупка в сигурността. На баг-репорта разработчиците реагираха с "ще разгледаме". Надявам се, че са го поправили.
Затова бъдете изключително внимателни, ако на едно работно място работят повече от едно юридическо лице. Днес СУЗ ще приеме тези запитвания, а утре ще преразгледа заявките и ще отзове половината кодове поради чужд подпис. И по принцип, формално ще имат право.
- Автоподписването на поръчките вече е функционалност, която не е налична в СУЗ. За нейната работа беше необходимо да се зареди закритата част на ключа в личния кабинет на честния знак. Това представлява компрометиране на ключа. И съгласно действащото законодателство, в случай на компрометиране на усилената квалифицирана електронна подпис, собственикът трябва да информира своя удостоверяващ център (УЦ) и да отзове УКЕП. Ако тази функционалност бъде върната, следете внимателно, за да не напуска затворената част на ключа компютъра.
- През февруари Центърът за развитие на перспективни технологии (ЦРПТ) тихо въведе ограничение на броя заявки към API на СУЗ. Не повече от една заявка в секунда. След това също така неочаквано и безшумно премахна това ограничение. Затова препоръчвам да включите в системата възможността да се ограничава броят на заявките към API на ЦРПТ в случай на рецидив. В момента има информация за лимит от 10 заявки в секунда.
- Също така през февруари, без предупреждение, поведението на API на СУЗ се промени значително. В API има заявка за получаване на статуса на поръчките. В статуса бяха упоменати буферите и тяхното състояние. Един GTIN = един буфер. Там също бе указано колко кода са налични за получаване от буфера. В един прекрасен ден за всички буфери количеството стана -1. Приходеше да се опрашва състоянието на всеки буфер поотделно чрез отделен метод. Вместо една заявка, трябваше да се направят единадесет.
Структура на кодовете
И така, кодовете са поръчани и генерирани. Те могат да бъдат изтеглени чрез API в текстов вид, в PDF като етикети за печат и като CSV файл с текст.
За API вече беше споменато по-горе. Що се отнася до другите два начина. Първоначално СУЗ позволяваше да се вземат кодовете само веднъж. И ако се вземеше PDF файл, то получаването на кодовете в текстов вид беше възможно само като се пренасканират всички датаматрикси от PDF. За щастие, добавиха възможността да се вземат кодовете многократно и този проблем бе решен. В течение на два дни кодовете са още достъпни за повторно изтегляне.
Ако изтегляте в CSV формат, никога, при никакви обстоятелства, не го отваряйте в Excel. И не позволявайте на никого да го прави. В Excel има функция за автосъхранение. В момента на запазване Excel може по най-непредсказуем начин да промени вашите кодове. Препоръчвам да използвате Notepad++ за преглед на кодовете.
Ако отворите файла от СУЗ в Notepad++, можете да видите редове от такъв вид. Третият код е невалиден (липсват му разделителите GS).
![]()
Партньорите ни предадоха кодовете за маркировка на техния продукт. С невъоръжено око се вижда, какви файлове бяха формулирани с помощта на Excel - до 5% от кодовете бяха невалидни.
Настоятелно препоръчвам да прочетете за GS1. В описанието на стандарта има отговори на много въпроси относно формированието на DataMatrix.
Идентификационният код се състои от GTIN и сериен номер. Според стандарта GS1, на тях съответстват идентификаторите на приложението (ИП) 01 и 21. Обърнете внимание, че идентификаторите на приложенията не са част от GTIN и сериен номер. Те посочват, че след идентификатора на приложението (ИП) следва GTIN или сериен номер. Това е особено важно при програмирането на касово ПО. За попълване на етикета 1162 са необходими именно GTIN и сериен номер, без идентификатори на приложенията.
За УПД (универсален предавателен документ) и други документи, напротив, най-често е необходимо записването в цялост с идентификаторите на приложенията.

В стандарта GS1 е посочено, че GTIN има фиксирана дължина от 14 знака и може да се състои само от цифри. Серийният номер има променлива дължина и е описан на страница 155 от стандарта. Там има и препратка към таблица с символи, които могат да се срещат в серийния номер.
Тъй като серийният номер има променлива дължина, разделителят GS указва края му. В таблицата ASCII той има код 29. Без този разделител нито една програма няма да разбере в кой момент е завършил серийният номер и са започнали други групи данни.
По-подробно за кода на маркировката (КМ) може да се прочете в .
За обувките серийният номер е фиксиран на 13 знака, но размерът му може да бъде променен по всяко време. За други стокови групи (ТГ) дължината на сериите номера може да се различава.
Генерация на 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. Което води до изземване на продукта, глоби, наказателна отговорност.
Използвайте термотрансферен печат. В този случай марката не е толкова податлива на избледняване. От материала на етикета също зависи, колко марката е податлива на механични повреди. Ако кодът не може да бъде прочетен поради механично увреждане, това е равно на липса на марка с всички произтичащи от това последици.

Изберете принтер в зависимост от планираните обеми на печат. Настолни принтери не са проектирани за печат на 100 000 етикета на ден.
Спирането и стартирането на печата увеличават износа на принтера. Някои програми изпращат задания за печат по един етикет. Не е добре да се ползват такива програми.
Работа с документи
След като марките са разпечатани и залепени, всички последващи операции с тях се извършват чрез документи или личния кабинет на Честен Знак.
При работа с голямо количество кодове, можете да създавате xml файлове, в които ще бъдат необходимите кодове, и да качвате тези файлове чрез API или уеб интерфейса на личния кабинет.
XSD схемата може да се изтегли в раздела “помощ” в ЛК ЧЗ.
Обърнете внимание на следните моменти.
- Xsd схемите в ЛК ЧЗ съдържат грешки във валидирането на ЕГН и ограничения за дължината на строката. Само след поправяне на грешките можете да използвате схемите. За щастие, грешките са очевидни, така че не е трудно да се направят.
- Схемата обикновено се състои от две части — обща за всички видове документи и отделна за конкретен тип. Общата схема е добавена чрез импорт в конкретната. И двете схеми са разположени в секцията помощ в ЛК ЧЗ.
- Правилата за екрантиране за КМ се различават от общоприетите за XML, за което е написано в официалната документация от ЧЗ, обърнете внимание на това. Ето на страница 4 всички правила.
- Не трябва да се опитвате да въведете 150 000 кода в оборот с един файл. Според очевидци файловете над 30 000 обикновено преминават.
- Xml файл може да бъде отхвърлен с грешка “грешка във валидирането на xml”, а след пет минути същият файл да бъде приет без проблеми.
- Ако в файла се окаже вече въведен в оборот код, файлът за въвеждане в оборот, вероятно, няма да бъде приет.
- Документите за доставка и приемане се използват като временно решение. В бъдеще те планират да бъдат отменени и да преминат на УПД съгласно ППР 860.
- Митът за 60 дни. Има мнение, че не въведените в оборот кодове „изгарят“ след 60 дни. Това е мит, източникът е неизвестен. Кодове „изгарят“ само ако не сте ги взели от СУЗ в рамките на 60 дни. Срокът на живот на взетите кодове не е ограничен.
Заключение
При разработването на моето безплатно приложение за маркировка BarCodesFX, първоначално беше направена интеграция с API на СУЗ. Когато Честният Знак неочаквано промени логиката на работа на API за втори път, от интеграцията трябваше да се откажа. Надявам се в бъдеще ЧЗ да успее да стабилизира разработката и API, тъй като за некомерсиален продукт ми струва много да проверявам дневно дали е имало промени в API и бързо да поправям.
При внедряване на маркировка внимателно се запознайте с нормативната документация за вашата група товари ТГ, правилно печатайте GS1-DataMatrix и бъдете готови за всякакви неочаквани промени от страна на Честният Знак ЧЗ.
Алиансът Форта създаде информационно пространство (, в телеграм, семинари, уебинари), където можете да намерите полезна и актуална информация по маркировка във всички индустрии.
Източник: habr.com
