Od 1. srpnja 2019. godine u Rusiji je uvedeno obavezno označavanje određene grupe proizvoda. Od 1. ožujka 2020. godine ovaj zakon trebao je obuhvatiti obuću. Nisu se svi stigli pripremiti, a rezultat je bio odgoda pokretanja na 1. srpnja. Lamoda je među onima koji su se pripremili.
Stoga želimo podijeliti iskustvo s onima koji tek trebaju označiti odjeću, gume, parfeme itd. U članku je opisan niz industrijskih standarda, određena normativa i osobno iskustvo. Članak je prvenstveno namijenjen integratorima i programerima kojima tek treba razjasniti ovaj projekt.

Imajte na umu da se normativa često mijenja i autor nema mogućnost stalnog ažuriranja materijala. Stoga može se dogoditi da dio informacija do trenutka čitanja već bude zastario.
Osobno iskustvo autor je stekao kako u okviru projekta Datamatrix u Lamodi, tako i prilikom razvoja vlastite besplatne aplikacije za označavanje BarCodesFx.
Od 1. srpnja 2019. godine u Rusiji je na snazi zakon o obveznom označavanju. Zakon se ne odnosi na sve grupe proizvoda, a rokovi za početak obveznog označavanja različitih grupa proizvoda se razlikuju. Trenutno obvezno označavanje obuhvaća duhan, krzna, obuću i lijekove. Ubrzo će se uvesti za gume, odjeću, parfeme i bicikle. Svaka grupa proizvoda regulirana je posebnim vladinim propisom (PPR). Stoga neka izjava, koja je ispravna za obuću, može biti netočna za druge grupe proizvoda. No, može se nadati da će tehnička komponenta značajno varirati za različite grupe proizvoda.
OznačavanjeOsnovna ideja označavanja je dodijeliti jedinstveni broj svakoj jedini proizvoda. Prema tom broju može se pratiti povijest konkretne jedinice proizvoda od trenutka proizvodnje ili uvoza u zemlju, do trenutka izlaska na blagajni. Zvuči lijepo, ali u praksi je izuzetno teško ostvarivo. Detaljnije o konceptu opisano je na službenoj stranici poštenog znaka.
Uobičajeni pojmovi i definicije
UOT — sudionik u prometu proizvoda.
CRPT — središte za razvoj perspektivnih tehnologija. Privatna tvrtka, jedini državni izvođač na projektu označavanja. Radi po shemi javno-privatnog partnerstva (PPP). Nažalost, nema informacija o drugim sudionicima natječaja za projekt, kao ni o samom natječaju.
TG — trgovačka grupa. Obuća, odjeća, gume itd.
GTIN — u biti, artikal uzimajući u obzir boju i veličinu. Izdaje se u GS1 ili nacionalnom katalogu za svakog uvoznika ili proizvođača za njegov proizvod. Prethodno, proizvođač ili uvoznik mora opisati taj proizvod.
PPR — uredba Vlade RF. Za obuću — 860.
KM — kod označavanja. Jedinstveni skup simbola dodijeljen specifičnoj jedinici proizvoda. Za obuću se sastoji od GTIN-a, serijskog broja, kontrolnog koda i kripto repa.
GS1 — međunarodna organizacija koja izdaje GTIN-ove. Također, sastavljači niza standarda za označavanje.
Nacionalni katalog — analog GS1, razvijen od strane CRPT-a.
Kripto rep — analog elektroničkog potpisa, koji potvrđuje zakonitost KM-a. Obavezno mora biti u datamatrixu na marki. Spremanje u tekstualnom obliku je zabranjeno. Nakon ispisivanja, marka mora biti uklonjena prema ugovoru s CRPT-om. Nema poznatih slučajeva stvarne upotrebe.
SUZ — stanica za upravljanje narudžbama. Sustav u kojem se naručuju KM-ovi za proizvod.
EDO — elektronički dokumentarni promet.
UKEP — pojačani kvalificirani elektronički potpis.
Pojmovi i definicije u okviru ovog članka
ČZ — pošteni znak.
LK — korisnički račun.
Marka — ispisani kod označavanja.
Proces izgleda ovako: prvo sudionik (UOT) izdaje elektronički potpis (UKEP), registrira se u poštenom znaku (ČZ), opisuje proizvod u nacionalnom katalogu ili GS1, a zatim dobiva GTIN-ove za proizvod. Na stranici poštenog znaka ti koraci su detaljno opisani, stoga se na njima nećemo zadržavati.
Narudžba i dobivanje kodova
Nakon dobivanja GTIN-ova, sudionik (UOT) naručuje kodove (KM) u sustavu SUZ.
Važno, ali ne očito.
- U jednoj narudžbi moguće je zatražiti kodove za maksimalno 10 GTIN-ova. U principu, nejasno ograničenje. Uvozniku s 14 000 GTIN-ova mora kreirati 1400 narudžbi.
- U jednoj narudžbi moguće je zatražiti maksimalno 150 000 kodova.
- Postoji ograničenje od 100 narudžbi u obradi. To znači da može biti najviše 100 narudžbi istovremeno obrađeno. Ako bude više od 100, API će početi vraćati greške umesto liste narudžbi. Jedini način da se ispravi ova greška je zatvoriti deo narudžbi preko web interfejsa. U API-ju nije predviđena opcija za delimično prikazivanje narudžbi.
- Postoji limit na broj zahteva — ne više od 10 zahteva u sekundi. Prema mojim saznanjima, ovo ograničenje nije navedeno u dokumentaciji, ali ono postoji.
Iz ličnog iskustva u radu s narudžbama oznaka KМ putem API sistema SUZ.
- Zahtev (sam json) mora se potpisati GOST potpisom. Ovo je rad s kriptografijom. Potrebno je pažljivo pratiti da korišćeni okvir ili biblioteka ne promene originalni json ni za bajt. Inače, potpis odmah prestaje biti važeći.
- Potpis narudžbe. Narudžba može biti potpisana bilo kojim potpisom, bilo kojeg klijenta. Ako je potpis važeći, sistem SUZ će ga prihvatiti. Tokom integracije moglo se potpisivati zahtev tuđim potpisom, izdatim od testnog UЦ. Borbeni kontur SUZ-a obradio je narudžbu i izdao oznake. Po mom mišljenju, ovo je sigurnosna rupa. Na prijavu greške, programeri su odgovorili 'pogledaćemo'. Nadam se da su ispravili.
Zato budite izuzetno pažljivi ako na jednom radnom mestu radi više pravnih lica. Danas će SUZ prihvatiti te zahteve, a sutra će ponovo proveriti zahteve i povući polovinu oznaka zbog tuđeg potpisa. I u suštini, formalno će biti u pravu.
- Automatsko potpisivanje narudžbi — ova funkcionalnost više nije dostupna u SUZ-u. Za njen rad bilo je potrebno učitati tajni deo ključa u ličnom kabinetu poštenog znaka. Ovo predstavlja kompromitaciju ključa. I prema važećim zakonima, u slučaju kompromitacije pojačane kvalifikovane elektronske potpisa, vlasnik mora obavestiti svoj certifikacijski center (UC) i povući UKEP. Ako se ova funkcionalnost ponovo uvede, pažljivo pratite da tajni deo ključa ne napusti računar.
- U veljači je Centar za razvoj perspektivnih tehnologija (CRPT) tiho uveo ograničenje na broj upita prema API-ju SUZ. Ne više od jednog upita u sekundi. Kasnije je također iznenada i tiho ukinuo ovo ograničenje. Stoga preporučujem da se u sustav ugradi mogućnost ograničavanja broja upita prema API-ju CRPT u slučaju ponovne pojave. Trenutno postoji informacija o limitu od 10 upita u sekundi.
- Također, u veljači se bez upozorenja značajno promijenilo ponašanje API-ja SUZ. U API-ju postoji upit za dobivanje statusa narudžbi. U statusu su se navodili baferi i njihovo stanje. Jedan GTIN = jedan bafer. Tu se također navodilo koliko je kodova dostupno za dobivanje iz bafera. Jednog lijepog dana, kod svih bafera, količina je postala -1. Morali smo putem posebne metode ispitivati stanje svakog bafera pojedinačno. Umjesto jednog upita, morali smo napraviti jedanaest.
Struktura kodova
Dakle, kodovi su naručeni i generirani. Mogu se preuzeti preko API-ja u tekstualnom obliku, u PDF-u kao etikete za ispis i kao CSV datoteka s tekstom.
O API-ju je već bilo riječi ranije. Što se tiče dva druga načina. Isprva je SUZ dopuštao preuzimanje kodova samo jedanput. Ako bi se preuzimao PDF dokument, kodove u tekstualnom obliku bilo je moguće dobiti samo ponovnim skeniranjem svih datamatrici iz PDF-a. Na sreću, dodana je mogućnost višekratnog preuzimanja kodova, čime je ovaj problem riješen. U roku od dva dana, kodovi su i dalje dostupni za ponovno preuzimanje.
Ako preuzimate u CSV formatu, nikada, ni pod kojim okolnostima, nemojte ga otvarati u Excelu. I nikome ne dopustite. U Excelu postoji funkcija automatskog spremanja. U trenutku spremanja, Excel može na najnepredvidljiviji način promijeniti vaše kodove. Preporučujem korištenje Notepad++ za pregled kodova.
Ako otvorite datoteku iz SUZ-a u Notepad++, možete vidjeti retke poput ovih. Treći kod je nevažeći (nedostaju mu GS odvojivači).
![]()
Partneri su nam slali kodove za označavanje svoje robe. Golim okom je vidljivo koje su datoteke formirane pomoću Excela — do 5% kodova bilo je nevažećih.
Preporučujem da pažljivo pročitate o GS1. U opisu standarda nalaze se odgovori na mnoga pitanja vezana uz formiranje DataMatrix.
Identifikacijski kod sastoji se od GTIN-a i serijskog broja. Prema GS1 standardu, njima odgovaraju identifikatori primjene (IP) 01 i 21. Imajte na umu da identifikatori primjene nisu dio GTIN-a i serijskog broja. Oni označavaju da nakon identifikatora primjene (IP) dolazi GTIN ili serijski broj. To je posebno važno prilikom programiranja kasirskog softvera. Za ispunjavanje oznake 1162 potrebni su upravo GTIN i serijski broj, bez identifikatora primjene.
Za UPD (univerzalni prijenosni dokument) i druge dokumente, naprotiv, najčešće je potrebna cijela zabilješka s identifikatorima primjene.

U GS1 standardu navedeno je da GTIN ima fiksnu dužinu od 14 znakova i može se sastojati samo od brojeva. Serijski broj ima promjenjivu duljinu i opisan je na 155. stranici standarda. Tamo se također nalazi referenca na tablicu sa znakovima koji se mogu pojaviti u serijskom broju.
Budući da serijski broj ima promjenjivu duljinu, GS razdjelnik označava njegov završetak. U ASCII tablici ima kod 29. Bez ovog razdjelnika nijedan program neće razumjeti kada se završava serijski broj i započinju druge grupe podataka.
Detaljnije o kodu označavanja (KM) možete pročitati u .
Za obuću serijski broj je fiksiran na 13 znakova, međutim, njegova veličina može se promijeniti u bilo kojem trenutku. Za druge robne grupe (RG) duljina serijskog broja može se razlikovati.
Generiranje DataMatrix

Sljedeći korak je pretvaranje podataka u DataMatrix kod. U odluci vlade RF 860 naveden je GOST, prema kojem je potrebno formirati DataMatrix. Također u PPR 860 navedena je obaveza korištenja identifikatora primjene. Imajte na umu da u DataMatrix standardu ne postoji pojam 'identifikatori primjene'. Oni postoje samo u GS-1 DataMatrix standardu. Otuda, PPR 860 neizravno obvezuje korištenje upravo GS-1 DataMatrix. Na sreću, standardi su slični. Glavna razlika: u GS-1 DataMatrix prvi znak mora biti FNC1. GS znak ne smije biti na prvom mjestu u DataMatrix, samo FNC1.
FNC1 se ne može jednostavno dodati u niz kao GS. On mora biti dodan od strane programa koji generira DataMatrix. Na resursima Saveza Fortys objavljeno je nekoliko alatki koje omogućuju provjeru ispravnosti generiranih DataMatrix kodova.
Važno. Aplikacija Čestni znak prihvaća nevaljane DataMatrix kodove, čak i QR kodove. Samo to što je marka prepoznata i informacije o proizvodu su prikazane ne ukazuje da je DataMatrix ispravno formuliran. Čak i zamjenom kripto repa, aplikacija ČZ prepoznaje marku i prikazuje podatke o proizvodu.
Kasnije je ČZ objavio , kako ispravno generirati kodove. Zbog velikog broja kodova s greškama priznali su kodove bez FNC1 valjanima, ali svejedno preporučuju generiranje GS-1 DataMatrix.
Nažalost, prilično velik postotak DataMatrixa od partnera dolazio je s greškama. Zahvaljujući objašnjenjima od ČZ, potpuno je razriješeno pitanje "Može li se trgovati takvim proizvodom nakon 1. srpnja ili ne?" Spoiler — može.
Tisak
Obratite pažnju na način tiska markica. Prilikom tiska na termalnom pisaču markica brzo blijedi, i taj proizvod već se ne može prodavati. Nečitka markica je kršenje PPR 860. Što dovodi do povlačenja proizvoda, novčanih kazni i kaznene odgovornosti.
Koristite termotransferni tisak. U tom slučaju markica nije toliko podložna izbljeđivanju. Također, od materijala etikete ovisi koliko je markica podložna mehaničkim oštećenjima. Ako se kod ne može očitati zbog mehaničkog oštećenja, to je isto kao da nema markice sa svim posljedičnim dešavanjima.

Odaberite pisač prema planiranim količinama tiska. Stolni pisači nisu predviđeni za ispis 100.000 etiketa dnevno.
Zaustavljanje i pokretanje ispisa povećava trošenje pisača. Neki programi šalju zadatak za ispis po jednoj etiketi. Takve programe bolje je ne koristiti.
Rad s dokumentima
Nakon što su marke isprintane i zalijepljene, sve daljnje operacije s njima odvijaju se putem dokumenata ili osobnog računa Čestnog znaka.
Pri radu s velikim brojem kodova moguće je kreirati XML datoteke koje sadrže potrebne kodove i učitati te datoteke putem API-ja ili web sučelja osobnog računa.
XSD shemu možete preuzeti u odjeljku "pomoć" u LK ČZ.
Obratite pažnju na sljedeće uočenosti.
- XSD sheme u LK ČZ sadrže greške u validaciji OIB-a i ograničenja na duljinu niza. Samo ispravljanjem grešaka možete koristiti sheme. Na sreću, greške su očite, stoga to nije teško napraviti.
- Shema se obično sastoji od dvije dijelove — zajedničkog za sve vrste dokumenata i odvojenog za određenu vrstu. Zajednička shema je dodana putem uvoza u specifičnu. Obje sheme su smještene u odjeljak pomoći u LK ČZ.
- Pravila eskape za KM razlikuju se od općeprihvaćenih za XML, o tome je pisano u službenoj dokumentaciji od ČZ, obratite na to pažnju. Evo na 4. stranici su sva pravila.
- Ne biste trebali pokušavati unijeti 150 000 kodova u promet jednim datotekom. Prema riječima svjedoka, datoteke veće od 30 000 obično prolaze.
- Xml datoteka može se odbiti s greškom “greška u validaciji xml”, a nakon pet minuta ista datoteka može biti prihvaćena bez problema.
- Ako datoteka sadrži već unesen kod u promet, tada datoteka za unos u promet vjerojatno neće biti prihvaćena.
- Dokumenti za otpremu i prijem koriste se kao privremeno rješenje. U budućnosti planiraju ukinuti te i preći na UPD prema PPR 860.
- Mit o 60 dana. Širi se mišljenje da kodovi koji nisu uneseni u promet ‘izgaraju’ nakon 60 dana. To je mit, izvor nepoznat. Kodovi ‘izgaraju’ samo ako ih niste preuzeli iz SUZ-a u roku od 60 dana. Rok trajanja preuzetih kodova nije ograničen.
Zaključak
Pri razvoju moje besplatne aplikacije za označavanje BarCodesFX, prvotno je bila napravljena integracija s API SUZ. Kada je ČZ neočekivano drugi put promijenio logiku rada API-ja, integracija je morala biti ukinuta. Nadam se da će ČZ u budućnosti uspjeti stabilizirati razvoj i API, jer za nekomercijalni proizvod za mene je vrlo skupo svaki dan provjeravati jesu li došlo do promjena u API-ju i brzo ih doraditi.
Prilikom implementacije označavanja pažljivo se upoznajte s normativnom dokumentacijom za vašu grupu proizvoda TG, pravilno tiskajte GS1-DataMatrix i budite spremni na svaku nepredviđenu promjenu s strane ČZ.
Fort Alliance je stvorio informacijski prostor (, na Telegramu, seminari, webinari), gdje možete pronaći korisne i aktualne informacije o označavanju u svim sektorima.
Izvor: habr.com
