Od 1. jula 2019. godine u Rusiji je uvedeno obavezno označavanje grupe proizvoda. Od 1. marta 2020. godine, ovo zakonodavstvo trebalo je da obuhvati obuću. Nisu se svi uspeli pripremiti, pa je početak pomeren na 1. jul. Lamoda je među onima koji su uspeli.
Zato želimo da podelimo iskustvo sa onima koji tek treba da označe odeću, gume, parfeme itd. U članku je opisan niz industrijskih standarda, neka pravna dokumentacija i lično iskustvo. Članak je prvenstveno namenjen integratorima i programerima koji tek treba da se upoznaju sa ovim projektom.

Obratite pažnju da se pravni okviri često menjaju, a autor nema mogućnosti da stalno ažurira materijal. Stoga deo informacija može biti zastareo do trenutka čitanja.
Lično iskustvo autora dobijeno je kako u okviru rada na projektu Datamatrix u Lamodi, tako i prilikom razvoja vlastite besplatne aplikacije za označavanje BarCodesFx.
Od 1. jula 2019. godine u Rusiji važi zakon o obaveznom označavanju. Zakon se ne odnosi na sve grupe proizvoda, a rokovi za sticanje obaveznog označavanja variraju za različite grupe proizvoda. Sada su pod obavezno označavanje uključeni duvan, krzno, obuća, lekovi. U bliskoj budućnosti biće uključeni gume, odeća, parfemi i bicikle. Svaka grupa proizvoda reguliše se posebnim vladinim dekretom (PPR). Zato neka objašnjenja koja su tačna za obuću mogu biti netačna za druge grupe proizvoda. No, može se nadati da tehnička komponenta neće mnogo varirati za različite grupe proizvoda.
OznačavanjeOsnovna ideja označavanja je da se svakoj jedinici proizvoda dodeljuje jedinstveni broj. Prema tom broju može se pratiti istorija konkretne jedinice proizvoda od trenutka proizvodnje ili uvoza u zemlju, pa do trenutka prodaje na kasi. Zvuči lepo, ali u praksi je izuzetno teško realizovati. Detaljnije, koncept je opisan na zvaničnom sajtu poštenog znaka.
Opšteprihvaćeni termini i pojmovi
UOT — učesnik u prometu proizvoda.
CRPT — center for advanced technology development. A private company, the only state contractor for the labeling project. Operates under the public-private partnership (PPP) scheme. Unfortunately, there is no information about other tender participants in the project, as well as about the tender itself.
TG — product group. Footwear, clothing, tires, etc.
GTIN — essentially, an article number that considers color and size. Issued in GS1 or the national catalog for each importer or manufacturer for their product. The manufacturer or importer must first describe this product.
PPR — government decree of the Russian Federation. For footwear — 860.
KM — marking code. A unique set of characters assigned to a specific unit of goods. For footwear, it consists of GTIN, serial number, check code, and crypto tail.
GS1 — an international organization that issues GTINs. Also, the authors of several labeling standards.
National Catalog — the analogue of GS1, developed by CRPT.
Crypto Tail — the analogue of a digital signature, confirming the legality of the KM. It must be present in the data matrix on the label. Storage in plain text is prohibited. After printing the label, it must be deleted according to the contract with CRPT. There have been no known cases of actual use.
SUZ — order management station. A system where KM codes for products are ordered.
EDO — electronic document management.
UCEP — enhanced qualified electronic signature.
Terms and concepts within the framework of this article
CZ — honest sign.
LK — personal account.
Label — printed marking code.
The process looks as follows: first, the participant (UOT) issues an electronic signature (UCEP), registers in the honest sign (CZ), describes the product in the national catalog or GS1, and obtains GTINs for the product. These steps are detailed on the honest sign website, so we won’t dwell on them.
Ordering and receiving codes
After receiving GTINs, the participant (UOT) places an order for codes (KM) in the SUZ system.
Important, but not obvious.
- In one order, you can request codes for a maximum of 10 GTINs. This is, in principle, an unclear limitation. An importer with 14,000 GTINs has to create 1,400 orders.
- In one order, you can request a maximum of 150,000 codes.
- Obstaja omejitev na 100 naročil v obdelavi. To pomeni, da lahko hkrati obdelujemo največ 100 naročil. Če bo več kot 100, bo API začel vračati napako namesto seznama naročil. Edini način za odpravo te napake je zapreti del naročil preko spletnega vmesnika. V API-ju ni predvidenega parametra za delno prikazovanje naročil.
- Obstaja omejitev števila poizvedb — največ 10 zahtevkov na sekundo. Po mojih podatkih ta omejitev ni omenjena v dokumentih, vendar obstaja.
Iz osebnih izkušenj z naročili kod označevanja KZ preko API sistema SUZ.
- Zahtevo (sami json) je treba podpisati z ГОСТ-ovsko podpisom. To vključuje delo s kripto. Treba je skrbno spremljati, da uporabljeni okvir ali knjižnica ne spremenita izvirnega json-a niti za en bajt. V nasprotnem primeru podpis takoj preneha biti veljaven.
- Podpis naročila. Naročilo lahko podpiše vsak podpis katerega koli strank. Če je podpis veljaven, ga sistem SUZ sprejme. Pri integraciji je bilo možno podpisati zahtevo s tujim podpisom, izdanem pri testnem UČ. Bojni okvir SUZ-a je naročilo obdelal in izdal kode. Po mojem mnenju je to varnostna luknja. Na poročilo o napaki so se razvijalci odzvali z 'oglejte si'. Upam, da so to popravili.
Zato bodite izjemno previdni, če na enem delovnem mestu dela več pravnih oseb. Danes bo SUZ sprejel te zahteve, jutri pa bodo zahteve ponovno preverili in odvzeli polovico kod zaradi tujega podpisa. In načeloma bodo formalno imeli prav.
- Samodejno podpisovanje naročil — ta funkcionalnost ni več na voljo v SUZ. Njegovo delovanje je zahtevalo nalaganje zaprtega dela ključa v osebni račun poštenega znamenja. To je kompromitacija ključa. In v skladu z veljavno zakonodajo, v primeru kompromitacije poostrene kvalificirane elektronske podpise, mora lastnik obvestiti svoj potrjevalni center (UČ) in umakniti UKEP. Če se ta funkcionalnost vrne, skrbno spremljajte, da zaprti del ključa ne zapusti računalnika.
- V februarju je Center za razvoj perspektivnih tehnologij (CRPT) tiho uvedel omejitev na število zahtevkov za API SUZ. Največ en zahtevek na sekundo. Potem je to omejitev prav tako nenadoma in tiho odstranil. Zato priporočam, da v sistem vgradite možnost omejevanja števila zahtevkov za API CRPT v primeru ponovnega pojava. Sedaj so informacije o limitu 10 zahtevkov na sekundo.
- Prav tako je februarja brez opozorila bistveno spremenjeno delovanje API SUZ. V API-ju je zahtevek za pridobitev stanja naročil. V stanju so bili navedeni bufferi in njihovo stanje. En GTIN = en buffer. Tam je bilo tudi navedeno, koliko kod je na voljo za pridobitev iz buffra. Nekega lepega dne se je število pri vseh buffrih spremenilo v -1. Moral sem preko ločene metode preverjati stanje vsakega buffra posebej. Namesto enega zahtevka sem moral opraviti enajst.
Struktura kod
Torej, kode so naročene in generirane. Lahko jih prevzamete preko API-ja v besedilni obliki, v pdf kot etikete za tiskanje in kot csv datoteko z besedilom.
O API-ju je bilo že napisano zgoraj. Kar se tiče dveh drugih načinov. Sprva je SUZ dovoljeval, da se kode vzamejo le enkrat. In če je bila prevzeta pdf datoteka, je bilo mogoče pridobiti kode v besedilni obliki le z ponovno skeniranjem vseh datamatričnih kod iz pdf. Na srečo je bila dodana možnost, da kode večkrat prevzamete, in ta težava je bila rešena. Kode so bile še dva dni na voljo za ponoven prenos.
Če vzamete v csv formatu, potem nikoli, pod nobenim pogojem, ne odpirajte tega v Excelu. In nikomur ne dovolite. V Excelu je funkcija samodejnega shranjevanja. V trenutku shranjevanja lahko Excel na najbolj nepredvidljiv način spremeni vaše kode. Priporočam uporabo notepad++ za pregled kod.
Če odprete datoteko iz SUZ v notepad++, lahko vidite vrstice takega tipa. Tretja koda je neveljavna (manjkajo ji GS ločila).
![]()
Partnerji so nam posredovali kode za označevanje svojih izdelkov. Nekoč je bilo na prvi pogled vidno, kateri datoteki so bile oblikovane s pomočjo Excela - do 5% kod je bilo neveljavnih.
Priporočam, da si preberete o GS1. V opisu standarda so odgovori na mnoge vprašanja glede oblikovanja DataMatrix.
Identifikacijski kod se sastoji od GTIN-a i serijskog broja. Prema GS1 standardu, njima odgovaraju identifikatori primene (IP) 01 i 21. Imajte na umu da identifikatori primene nisu deo GTIN-a i serijskog broja. Oni označavaju da nakon identifikatora primene (IP) dolazi GTIN ili serijski broj. Ovo je posebno važno prilikom programiranja softvera za kase. Za popunjavanje taga 1162 potrebni su upravo GTIN i serijski broj, bez identifikatora primene.
Za UPD (univerzalni prenosni dokument) i druge dokumente, s druge strane, najčešće je potrebna puna evidencija sa identifikatorima primene.

U GS1 standardu navedeno je da GTIN ima fiksnu dužinu od 14 znakova i može se sastojati samo od cifara. Serijski broj ima promenljivu dužinu i opisan je na 155. strani standarda. Tamo se takođe nalazi referenca na tabelu sa simbolima koji se mogu javiti u serijskom broju.
Pošto serijski broj ima promenljivu dužinu, GS razdvajač označava njegov kraj. U ASCII tabeli ima kod 29. Bez ovog razdvajača nijedan program neće razumeti kada se završava serijski broj i kada počinju druge grupe podataka.
Detaljnije informacije o kodu označavanja (KМ) možete pročitati u .
Za obuću serijski broj fiksiran je na 13 znakova, međutim, njegova dužina može se promeniti u bilo kojem trenutku. Za druge grupe proizvoda (TP) dužina serijskog broja može se razlikovati.
Generisanje DataMatrix

Sledeći korak je pretvaranje podataka u DataMatrix kod. U uredbi vlade RF 860 je naveden GOST prema kojem je potrebno formirati DataMatrix. Takođe, u PPR 860 je navedena obavezna upotreba identifikatora primene. Imajte na umu da u standardu DataMatrix ne postoji pojam 'identifikatori primene'. Oni postoje samo u GS-1 DataMatrix standardu. Dakle, PPR 860 neizravno obavezuje upotrebu upravo GS-1 DataMatrix. Na sreću, standardi su slični. Glavna razlika je u tome što prvi simbol u GS-1 DataMatrix mora biti FNC1. GS simbol ne sme stajati na prvom mestu u DataMatrix, samo FNC1.
FNC1 se ne može jednostavno dodati u red kao GS. Mora ga dodavati program koji generiše DataMatrix. Na resursima Alijanse Fortis objavljeno je nekoliko , pomoću kojih se može proveriti tačnost generisanih DataMatrix kodova.
Važno. Aplikacija pošteni znak prihvaća nevažeće DataMatrix kodove. Čak i QR kodove. Činjenica da je oznaka prepoznata i da su informacije o robi prikazane ne znači da je DataMatrix pravilno generisan. Čak i uz zamenu kripto repa, aplikacija ČZ prepoznaje oznaku i prikazuje podatke o robi.
Kasnije je ČZ objavio , kako pravilno generisati kodove. Zbog velikog broja kodova sa greškama priznali su kodove bez FNC1 kao važeće, ali ipak preporučuju generisanje GS-1 DataMatrix kodova.
Nažalost, prilično veliki procenat datamatrix kodova od partnera stizao je sa greškama. Zahvaljujući objašnjenjima od ČZ, potpuno je razjašnjeno pitanje „Može li se trgovati takvim proizvodom nakon 1. jula ili ne?“. Spoiler - može.
Štampanje
Obratite pažnju na način štampanja oznaka. Kada se štampa na termoprinteru, oznaka brzo bledi, i taj proizvod više ne može biti prodat. Nečitljiva oznaka predstavlja kršenje PPR 860. Što dovodi do povlačenja proizvoda, kazni i krivične odgovornosti.
Koristite termotransfernu štampu. U tom slučaju, oznaka nije tako podložna bledenju. Takođe, materijal etikete utiče na to koliko je oznaka podložna mehaničkim oštećenjima. Ako kod nije moguće pročitati zbog mehaničkog oštećenja, to je jednako odsustvu oznake sa svim proizašlim posledicama.

Birajte printer u skladu sa planiranim obimima štampe. Stočni printeri nisu predviđeni za štampanje 100.000 etiketa dnevno.
Zaustavljanje i pokretanje štampe povećava habanje printera. Neki programi šalju zadatak za štampu po jednoj etiketi. Takvim programima je bolje ne koristiti.
Rad sa dokumentima
Nakon što su oznake odštampane i zalepene, sve daljnje operacije s njima obavljaju se putem dokumenata ili ličnog računa poštenog znaka.
Kada radite sa velikim brojem kodova, možete kreirati xml datoteke u kojima će biti potrebni kodovi, i učitati te datoteke putem API-ja ili web interfejsa ličnog računa.
XSD šemu možete preuzeti u odeljku „pomoć“ u LK ČZ.
Obratite pažnju na sledeće stavke.
- XSD šeme u LK ČZ sadrže greške u validaciji INN i ograničenja na dužinu stringa. Samo ispravivši greške, možete koristiti šeme. Srećom, greške su očigledne, tako da to nije teško uraditi.
- Shema se običajno sestoji iz dveh delov — skupnega za vse vrste dokumentov in posebnega za določeno vrsto. Skupna shema je dodana preko uvoza v posebno. Obe shemi sta objavljeni v razdelku pomoč v uporabniškem računu ČZ.
- Pravila za kodiranje za KM se razlikujejo od splošno sprejetih za XML, o tem piše uradna dokumentacija ČZ, bodite pozorni na to. Tukaj je na 4. strani vsa pravila.
- Ne poskušajte vnesti 150.000 kod v obratovanje z enim datotekom. Po besedah prič podatki z več kot 30.000 običajno gredo skozi..
- Xml datoteka se lahko zavrne z napako "napaka pri validaciji xml", a čez pet minut ta ista datoteka sprejeta brez težav.
- Če se v datoteki znajde že v obratovanju vnesena koda, datoteke za vnos v obratovanje verjetno ne bodo sprejeli.
- Dokumenti za dostavo in prevzem se uporabljajo kot začasna rešitev. Kasneje načrtujejo njihovo ukinitev in prehod na UPD v skladu s PPR 860.
- Mit o 60 dnevih. Zdi se, da je mnenje, da ne vnesene kode "zmanjšajo" po 60 dneh. To je mit, vir ni znan. Kode "zmanjšajo", samo če jih v 60 dneh niste prevzeli iz SUZ. Čas trajanja prevzetih kod ni omejen.
Zaključek
Pri razvoju moje brezplačne aplikacije za označevanje BarCodesFX je bila sprva opravljena integracija z API SUZ. Ko je čisti znak drugič nepričakovano spremenil logiko dela API, smo se morali te integracije odreči. Upam, da bo ČZ v prihodnje uspelo stabilizirati razvoj in API, saj mi je za nekomercialni izdelek zelo drago vsak dan preverjati, ali je prišlo do sprememb v API in jih hitreje obdelovati.
Pri uvedbi označevanja se natančno seznanite z normativno dokumentacijo za vašo skupino izdelkov TG, pravilno natisnite GS1-DataMatrix in bodite pripravljeni na kakršne koli nepredvidene spremembe s strani Čistega znaka ČZ.
Zavezništvo Fort je ustvarilo informacijski prostor (, na Telegramu, seminarji, webinarji), kjer lahko najdete uporabne in aktualne informacije o označevanju v vseh panogah.
Izvor: habr.com
