Dal 1° luglio 2019, in Russia è stata introdotta la marcatura obbligatoria per alcuni gruppi di merci. Dal 1° marzo 2020, questo legge avrebbe dovuto riguardare le calzature. Poiché non tutti sono riusciti a prepararsi, il lancio è stato rinviato al 1° luglio. Lamoda è tra quelli che si sono preparati in tempo.
Perciò, vogliamo condividere l'esperienza con coloro che devono ancora affrontare la marcatura di abbigliamento, pneumatici, profumi, ecc. L'articolo descrive vari standard di settore, alcune normative e l'esperienza personale. L'articolo è principalmente destinato a integratori e sviluppatori che devono ancora familiarizzare con questo progetto.

Si prega di notare che la base normativa cambia spesso e l'autore non ha la possibilità di aggiornare continuamente il materiale. Pertanto, al momento della lettura, alcune informazioni potrebbero già essere superate.
L'esperienza personale è stata acquisita dall'autore sia nell'ambito del progetto Datamatrix in Lamoda, sia durante lo sviluppo della propria applicazione gratuita per la marcatura BarCodesFx.
Dal 1° luglio 2019, in Russia è in vigore la legge sulla marcatura obbligatoria. La legge non si applica a tutti i gruppi di merci e le scadenze per l'entrata in vigore della marcatura obbligatoria variano da un gruppo all'altro. Al momento, la marcatura obbligatoria riguarda tabacco, pellicce, calzature e farmaci. A breve, sarà introdotta per pneumatici, abbigliamento, profumi e biciclette. Ogni gruppo merceologico è regolato da un decreto governativo separato (DPR). Pertanto, alcune affermazioni valide per le calzature potrebbero non essere corrette per altri gruppi di merci. Tuttavia, si può sperare che la componente tecnica non vari troppo tra i diversi gruppi di merce.
MarcaturaL'idea principale della marcatura è che a ogni singolo pezzo di merce viene assegnato un numero identificativo. Con questo numero si può tracciare la storia di quel singolo pezzo di merce dal momento della produzione o dell'importazione nel paese, fino al momento in cui viene venduto alla cassa. Sembra bello, ma nella pratica è estremamente difficile da realizzare. Maggiori dettagli sul concetto sono descritti sul sito ufficiale del marchio onesto.
Termini e concetti comuni
UOT — soggetto della circolazione delle merci.
CRPT — centro di sviluppo delle tecnologie promettenti. Azienda privata, unico appaltatore statale per il progetto di marcatura. Opera secondo uno schema di partenariato pubblico-privato (PPP). Purtroppo, non ci sono informazioni su altri partecipanti alla gara del progetto, né sulla gara stessa.
TG — gruppo merceologico. Calzature, abbigliamento, pneumatici, ecc.
GTIN — essenzialmente, articolo considerando colore e taglia. Viene rilasciato da GS1 o dal catalogo nazionale per ogni importatore o produttore per il suo prodotto. In anticipo, il produttore o l'importatore deve descrivere questo prodotto.
PPR — decreto del governo della Federazione Russa. Per le calzature — 860.
KM — codice di marcatura. Un insieme unico di simboli assegnato a una specifica unità di prodotto. Per le calzature è composto da GTIN, numero di serie, codice di verifica e crypto-tail.
GS1 — organizzazione internazionale che rilascia GTIN. Anche redattori di vari standard di marcatura.
Catalogo nazionale — analogo di GS1, sviluppato da CRPT.
Crypto-tail — analogo della firma digitale, che conferma la legalità del KM. Deve essere presente nel datamatrix sull'etichetta. Il suo stoccaggio in formato testuale è vietato. Dopo la stampa dell'etichetta deve essere rimosso secondo il contratto con CRPT. Non si conoscono casi di utilizzo reale.
SUZ — stazione di gestione degli ordini. Sistema in cui vengono ordinati i KM per il prodotto.
EDO — flusso documentale elettronico.
UKEP — firma elettronica qualificata avanzata.
Termini e concetti nell'ambito di questo articolo
CZ — segno onesto.
LK — area personale.
Etichetta — codice di marcatura stampato.
Il processo appare come segue: inizialmente, il partecipante (UOT) emette una firma elettronica (UKEP), si registra nel segno onesto (CZ), descrive il prodotto nel catalogo nazionale o GS1, riceve i GTIN per il prodotto. Sul sito del segno onesto, questi passaggi sono dettagliatamente descritti, quindi non ci soffermeremo su di essi.
Ordine e ricezione dei codici
Dopo aver ricevuto i GTIN, il partecipante (UOT) effettua un ordine di codici (KM) nel sistema SUZ.
Importante, ma non ovvio.
- In un ordine è possibile richiedere codici per un massimo di 10 GTIN. In effetti, è un limite poco comprensibile. Un importatore con 14.000 GTIN deve creare 1400 ordini.
- In un ordine è possibile richiedere un massimo di 150.000 codici.
- C'è un limite di 100 ordini in lavorazione. Ciò significa che possono essere elaborati al massimo 100 ordini contemporaneamente. Se ci saranno più di 100, l'API inizierà a restituire errori invece dell'elenco degli ordini. L'unico modo per risolvere questo errore è chiudere parte degli ordini tramite l'interfaccia web. L'API non prevede un parametro per la visualizzazione parziale degli ordini.
- C'è un limite per il numero di chiamate: non più di 10 richieste al secondo. Secondo le informazioni in mio possesso, questo limite non è menzionato nei documenti, ma esiste.
Dalla mia esperienza personale con gli ordini dei codici di marcatura KM tramite l'API del sistema SUZ.
- La richiesta (il json stesso) deve essere firmata con una firma conforme agli standard GOST. È un lavoro con la crittografia. È importante monitorare attentamente, affinché il framework o la libreria utilizzata non modifichino nemmeno di un byte il json originale. Altrimenti, la firma smetterà di essere valida.
- Firma dell'ordine. L'ordine può essere firmato con qualsiasi firma, di qualsiasi cliente. Se la firma è valida, il sistema SUZ la accetterà. Durante l'integrazione, è stato possibile firmare una richiesta con una firma di terzi, emessa da un ente certificatore di test. Il contesto operativo del SUZ ha elaborato l'ordine e rilasciato i codici. A mio avviso, si tratta di una vulnerabilità di sicurezza. Gli sviluppatori hanno risposto al bug report dicendo 'ci daremo un'occhiata'. Spero abbiano fatto delle correzioni.
Pertanto, si prega di fare attenzione se più di una persona giuridica lavora nello stesso posto di lavoro. Oggi il SUZ accetterà queste richieste, ma domani verificherà le richieste e ritirerà metà dei codici a causa di una firma errata. In linea di principio, saranno formalmente nel giusto.
- L'autofirma degli ordini non è più disponibile nel SUZ. Per il suo utilizzo era necessario caricare la parte privata della chiave nel proprio account del sigillo onesto. Questa rappresenta una compromissione della chiave. Secondo la legislazione vigente, in caso di compromissione della firma elettronica qualificata rafforzata, il titolare deve informare il proprio ente certificatore (UC) e revocare la firma. Se questa funzionalità verrà ripristinata, si prega di monitorare attentamente che la parte privata della chiave non esca dal computer.
- A febbraio, il centro di sviluppo delle tecnologie avanzate (ЦРПТ) ha silenziosamente impostato un limite al numero di richieste all'API СУЗ. Non più di una richiesta al secondo. Poi, altrettanto inaspettatamente e in silenzio, ha rimosso questo limite. Pertanto, consiglio di prevedere nel sistema la possibilità di limitare il numero di richieste all'API ЦРПТ nel caso di recidiva. Attualmente ci sono informazioni su un limite di 10 richieste al secondo.
- Sempre a febbraio, senza preavviso, è cambiato drasticamente il comportamento dell'API СУЗ. Nell'API c'è una richiesta per ricevere lo stato degli ordini. Nello stato erano indicati i buffer e il loro stato. Un GTIN = un buffer. In un bel giorno, per tutti i buffer, il numero è diventato -1. È stato necessario interrogare lo stato di ogni buffer separatamente tramite un metodo distinto. Invece di una richiesta, ne sono state necessarie undici.
Struttura dei codici
Quindi, i codici sono stati ordinati e generati. Possono essere recuperati tramite API in formato testuale, in PDF come etichette per la stampa e come file CSV con il testo.
Di API si è già parlato sopra. Per quanto riguarda gli altri due metodi. All'inizio, СУЗ permetteva di recuperare i codici solo una volta. E se veniva recuperato un file PDF, i codici in formato testuale potevano essere ottenuti solo riscanando tutti i datamatrix dal PDF. Fortunatamente, è stata aggiunta la possibilità di recuperare i codici più volte e questo problema è stato risolto. Per due giorni, i codici sono ancora disponibili per il download ripetuto.
Se si recupera in formato CSV, non apritelo mai, in nessuna circostanza, in Excel. E non permettete a nessuno di farlo. In Excel c'è una funzione di salvataggio automatico. Al momento del salvataggio, Excel può cambiare i vostri codici in modo imprevedibile. Consiglio di utilizzare notepad++ per visualizzare i codici.
Se si apre un file da СУЗ in notepad++, si possono vedere righe di questo tipo. Il terzo codice è non valido (mancano i separatori GS).
![]()
I partner ci hanno fornito codici per la marcatura dei loro prodotti. A occhio nudo si può vedere quali file sono stati generati con Excel: fino al 5% dei codici erano non validi.
Consiglio vivamente di leggere su GS1. Nella descrizione dello standard ci sono risposte a molte domande sulla generazione di DataMatrix.
Il codice identificativo è composto da GTIN e numero di serie. Secondo lo standard GS1, corrispondono agli identificatori di utilizzo (IU) 01 e 21. Si prega di notare che gli identificatori di utilizzo non fanno parte del GTIN e del numero di serie. Indicano che dopo l'identificatore di utilizzo (IU) segue il GTIN o il numero di serie. Questo è particolarmente importante durante la programmazione del software per casse. Per la compilazione del tag 1162 sono necessari proprio il GTIN e il numero di serie, senza identificatori di utilizzo.
Per UDC (documento di trasmissione universale) e altri documenti, al contrario, è più comune che sia necessaria la registrazione completa con gli identificatori di utilizzo.

Lo standard GS1 stabilisce che il GTIN ha una lunghezza fissa di 14 cifre e può consistere solo di numeri. Il numero di serie ha una lunghezza variabile ed è descritto a pagina 155 dello standard. Lì si trova anche un riferimento a una tabella con i simboli che possono apparire nel numero di serie.
Poiché il numero di serie ha una lunghezza variabile, il delimitatore GS indica la sua conclusione. Nella tabella ASCII ha il codice 29. Senza questo delimitatore, nessun programma capirà in quale momento è terminato il numero di serie e sono iniziate altre serie di dati.
Maggiori dettagli sul codice di marcatura (KM) possono essere letti in .
Per le scarpe, il numero di serie è fissato a 13 cifre, tuttavia, la sua dimensione può essere modificata in qualsiasi momento. Per altri gruppi merceologici (GM) la lunghezza del numero di serie può variare.
Generazione di DataMatrix

Il passo successivo è la conversione dei dati in codice DataMatrix. Nella risoluzione del governo della Federazione Russa 860 è specificato uno standard secondo il quale è necessario formare il DataMatrix. Inoltre, nella PPR 860 è indicato l'uso obbligatorio degli identificatori di utilizzo. Si prega di notare che nello standard DataMatrix non esiste il concetto di 'identificatori di utilizzo'. Esistono solo nello standard GS-1 DataMatrix. Pertanto, la PPR 860 obbliga implicitamente a utilizzare proprio il GS-1 DataMatrix. Fortunatamente, gli standard sono simili. La principale differenza: nel GS-1 DataMatrix il primo simbolo deve essere FNC1. Il simbolo GS non deve essere posizionato al primo posto nel DataMatrix, solo FNC1.
FNC1 non può semplicemente essere aggiunto a una stringa come GS. Deve essere aggiunto dal programma che genera il DataMatrix. Sulle risorse dell'Alleanza Fort sono disponibili diversi , attraverso i quali è possibile controllare la correttezza dei codici DataMatrix generati.
Importante. L'applicazione etichetta onesta accetta DataMatrix non validi. Anche i codici QR. Il fatto che il marchio sia stato riconosciuto e le informazioni sul prodotto siano apparse non è un indicatore che il DataMatrix sia stato generato correttamente. Anche sostituendo il crypto-tail, l'applicazione CZ ha riconosciuto il marchio e ha visualizzato i dati del prodotto.
Successivamente, CZ ha emesso , su come generare correttamente i codici. A causa del gran numero di codici errati, hanno riconosciuto i codici senza FNC1 come validi, ma raccomandano comunque di generare il GS-1 DataMatrix.
Sfortunatamente, una percentuale piuttosto elevata di DataMatrix dai partner arrivava con errori. Grazie alle spiegazioni di CZ, la questione "Si può commerciare con tale prodotto dopo il 1 luglio o no?" è stata completamente risolta. Spoiler: si può.
Stampa
Fai attenzione al metodo di stampa dei marchi. Quando si stampa con una stampante termica, il marchio sbiadisce rapidamente e questo prodotto non può già essere venduto. Un marchio illeggibile è una violazione delle PPR 860. Ciò porta al ritiro del prodotto, sanzioni e responsabilità penale.
Utilizza la stampa termotransfer. In questo caso, il marchio non è così soggetto a sbiadimento. Anche il materiale dell'etichetta influisce su quanto il marchio sia vulnerabile ai danni meccanici. Se il codice non può essere letto a causa di danni meccanici, è equivalente all'assenza del marchio con tutte le conseguenze del caso.

Scegli una stampante in base ai volumi di stampa previsti. Le stampanti desktop non sono progettate per stampare 100.000 etichette al giorno.
Le fermate e l'avvio della stampa aumentano l'usura della stampante. Alcuni programmi inviano il compito di stampa etichetta per etichetta. È meglio non utilizzare tali programmi.
Lavorare con i documenti
Dopo che i marchi sono stati stampati e applicati, tutte le operazioni successive avvengono tramite documenti o l'area riservata dell'etichetta onesta.
Lavorando con un gran numero di codici, è possibile creare file XML contenenti i codici richiesti e caricare questi file tramite API o l'interfaccia web dell'area riservata.
È possibile scaricare lo schema XSD nella sezione 'aiuto' nell'area riservata di CZ.
Fai attenzione ai seguenti punti.
- Gli schemi Xsd nell'area riservata di CZ contengono errori nella validazione dell'INN e limitazioni sulla lunghezza della stringa. Solo correggendo gli errori è possibile utilizzare gli schemi. Fortunatamente, gli errori sono evidenti, quindi non è difficile farlo.
- Lo schema è composto per lo più da due parti: una comune per tutti i tipi di documenti e una separata per il tipo specifico. Lo schema generale viene aggiunto tramite importazione in quello specifico. Entrambi gli schemi sono collocati nella sezione di aiuto nel proprio profilo Assistenza.
- Le regole di escape per il KM differiscono da quelle comunemente accettate per XML, come indicato nella documentazione ufficiale di Assistenza, fatevi attenzione. Ecco a pagina 4 tutte le regole.
- Non dovreste tentare di inserire 150.000 codici in circolazione in un solo file. Secondo quanto riferito da testimoni, i file superiori a 30.000 di solito vengono accettati..
- Un file XML può essere rifiutato con l'errore 'errore di validazione xml', ma dopo cinque minuti lo stesso file può essere accettato senza problemi.
- Se nel file si trova un codice già in circolazione, è probabile che il file di input non venga accettato.
- I documenti di spedizione e ricezione sono utilizzati come soluzione temporanea. In futuro si prevede di eliminarli e passare all'UPD secondo il PPR 860.
- Il mito dei 60 giorni. Circola la voce che i codici non introdotti in circolazione 'scadano' dopo 60 giorni. Questo è un mito, la fonte è sconosciuta. I codici 'scadono' solo se non li avete ritirati dalla SUZ entro 60 giorni. Il periodo di validità dei codici ritirati non è limitato.
Conclusione
Durante lo sviluppo della mia applicazione gratuita per la marcatura BarCodesFX, inizialmente è stata effettuata un'integrazione con l'API della SUZ. Quando Honest Sign ha inaspettatamente cambiato nuovamente la logica di funzionamento dell'API, abbiamo dovuto rinunciare all'integrazione. Spero che in futuro Assistenza riesca a stabilizzare lo sviluppo e l'API, poiché per un prodotto non commerciale è molto costoso controllare ogni giorno se ci sono state modifiche nell'API e aggiornare rapidamente.
Quando implementate la marcatura, familiarizzate con la documentazione normativa per il vostro gruppo merceologico TG, stampate correttamente il GS1-DataMatrix e siate pronti a eventuali cambiamenti imprevisti da parte di Honest Sign.
L'Alleanza Fort ha creato uno spazio informativo (, su Telegram, seminari, webinar), dove potete trovare informazioni utili e aggiornate sulla marcatura in tutti i settori.
Fonte: habr.com
