DataMatrix, czyli jak prawidłowo oznakować buty

Od 1 lipca 2019 roku w Rosji wprowadzono obowiązkowe oznakowanie grupy towarów. Od 1 marca 2020 roku buty miały podlegać tej ustawie. Nie wszyscy mieli czas na przygotowania, w związku z czym premierę przesunięto na 1 lipca. Lamoda jest jednym z tych, którym się to udało.

Dlatego chcemy podzielić się naszym doświadczeniem z tymi, którzy nie mają jeszcze etykiet na ubraniach, oponach, perfumach itp. W artykule opisano szereg standardów branżowych, część dokumentacji regulacyjnej i osobiste doświadczenia. Artykuł przeznaczony jest przede wszystkim dla integratorów i programistów, którzy nie rozumieją jeszcze tego projektu.

DataMatrix, czyli jak prawidłowo oznakować buty

Należy pamiętać, że przepisy często się zmieniają i autor nie ma możliwości ciągłej aktualizacji materiału. Dlatego w momencie przeczytania niektóre informacje mogą być już nieaktualne.

Autor zdobywał osobiste doświadczenie zarówno w ramach pracy nad projektem Datamatrix w firmie Lamoda, jak i przy tworzeniu własnej, bezpłatnej aplikacji do etykietowania BarCodesFx.

Od 1 lipca 2019 roku w Rosji obowiązuje ustawa o obowiązkowym etykietowaniu. Prawo nie dotyczy wszystkich grup towarów, a daty wejścia w życie obowiązkowego oznakowania dla grup towarów są różne. Obecnie tytoń, futra, buty i leki podlegają obowiązkowemu oznakowaniu. Wkrótce zostanie wprowadzony dla opon, odzieży, perfum i rowerów. Każdą grupę towarów reguluje odrębna uchwała rządu (GPR). Dlatego też niektóre stwierdzenia odnoszące się do obuwia mogą nie mieć zastosowania w przypadku innych grup produktów. Możemy jednak mieć nadzieję, że komponent techniczny nie będzie się znacznie różnić w przypadku różnych grup produktów.

cechowanieGłówną ideą etykietowania jest to, że każdej jednostce towaru przypisany jest indywidualny numer. Za pomocą tego numeru można prześledzić historię konkretnego towaru od momentu produkcji lub importu do kraju, aż do momentu wyrzucenia przy kasie. Brzmi pięknie, ale w praktyce jest niezwykle trudne do zrealizowania.Koncepcję opisano szerzej na oficjalnej stronie uczciwego znaku.

Powszechne terminy i koncepcje

UOT - uczestnik obrotu towarowego.
CRPT — centrum rozwoju obiecujących technologii. Firma prywatna, jedyne państwo wykonawca projektu oznakowania. Działa w ramach partnerstwa publiczno-prywatnego (PPP). Niestety nie ma informacji o pozostałych uczestnikach przetargu na projekt, a także o samym przetargu.
TG - Grupa produktów. Buty, odzież, opony itp.
GTIN - w zasadzie artykuł uwzględniający kolor i rozmiar. Wydawane w GS1 lub katalogu krajowym dla każdego importera lub producenta dla jego produktu. Producent lub importer musi najpierw opisać produkt.
PPR - Dekret Rządu Federacji Rosyjskiej. Do butów - 860.
KM — kod znakujący. Unikalny zestaw znaków przypisany do konkretnej pozycji produktu. W przypadku obuwia składa się z numeru GTIN, numeru seryjnego, kodu weryfikacyjnego i krypto-ogona.
GS1 to międzynarodowa organizacja wydająca numery GTIN. Są także autorami wielu standardów etykietowania.
Katalog narodowy - analog GS1, opracowany przez CRPT.
Kryptotail - analog podpisu cyfrowego potwierdzający legalność CM. Musi znajdować się w matrycy danych na znaczku. Przechowywanie w formie tekstowej jest zabronione. Po wydrukowaniu pieczątki należy usunąć zgodnie z umową z CRPT. Nie są znane żadne przypadki rzeczywistego użycia.
CPS — stanowisko zarządzania zamówieniami. System, w którym zamawiane są KM za towar.
EDI - elektroniczne zarządzanie dokumentacją.
UKEP — udoskonalony kwalifikowany podpis elektroniczny.

Terminy i koncepcje objęte zakresem tego artykułu

ЧЗ - uczciwy znak.
LK - Obszar osobisty.
Zaznacz — wydrukowany kod znakujący.

Proces przebiega następująco: w pierwszej kolejności uczestnik (UOT) wystawia podpis elektroniczny (UKEP), rejestruje się w znaku rzetelnym (CH), opisuje produkt w katalogu krajowym lub GS1 i otrzymuje numer GTIN dla produktu. Kroki te są szczegółowo opisane na stronie internetowej uczciwego znaku, więc nie będziemy się nad nimi rozwodzić.

Zamawianie i odbieranie kodów

Po otrzymaniu numerów GTIN uczestnik (UOT) składa zamówienie na kody (KM) w systemie CPS.
Ważne, ale nie oczywiste.

  1. Możesz zamówić kody dla maksymalnie 10 numerów GTIN w jednym zamówieniu. W zasadzie niezrozumiałe ograniczenie. Importer posiadający 14 000 numerów GTIN musi utworzyć 1400 zamówień.
  2. Na jedno zamówienie można zamówić maksymalnie 150 000 kodów.
  3. Limit zamówień w toku wynosi 100. Oznacza to, że jednocześnie nie można realizować więcej niż 100 zamówień. Jeśli będzie ich więcej niż 100, API zamiast listy zamówień zacznie zwracać błąd. Jedynym sposobem naprawienia tego błędu jest zamknięcie niektórych zamówień za pośrednictwem interfejsu internetowego. API nie udostępnia parametru umożliwiającego częściowe wyświetlanie zamówień.
  4. Istnieje ograniczenie liczby żądań - nie więcej niż 10 żądań na sekundę. Z moich informacji wynika, że ​​ograniczenie to nie pojawia się w dokumentach, ale istnieje.

Z własnego doświadczenia pracy z zamówieniami kodów znakujących KM poprzez API systemu CPS.

  1. Żądanie (sam json) musi być podpisane podpisem GOST. To działa z cryptopro. Musisz dokładnie upewnić się, że używany framework lub biblioteka nie zmienia oryginalnego JSON nawet o bajt. W przeciwnym razie podpis natychmiast traci ważność.
  2. Podpis zamówienia. Zamówienie może być podpisane dowolnym podpisem dowolnego klienta. Jeżeli podpis jest ważny, system CPS go zaakceptuje. Podczas integracji możliwe było podpisanie wniosku cudzym podpisem wystawionym w testowym urzędzie certyfikacji. Obwód bojowy systemu sterowania przetworzył rozkaz i wydał kody. Moim zdaniem jest to luka w zabezpieczeniach. Twórcy odpowiedzieli na raport o błędzie słowami „zobaczymy”. Mam nadzieję, że to naprawiono.

    Dlatego należy zachować szczególną ostrożność, jeśli w jednym miejscu pracy pracuje więcej niż jedna osoba prawna. twarze. Dzisiaj CPS zaakceptuje te wnioski, a jutro zostaną one ponownie sprawdzone i połowa kodów zostanie unieważniona ze względu na czyjś podpis. I w zasadzie formalnie będą mieli rację.

  3. Automatyczne podpisywanie zamówień to funkcjonalność, która nie jest już dostępna w KMS-ie. Aby to zadziałało konieczne było wgranie prywatnej części klucza na konto osobiste uczciwego znaku. To jest kompromis klucza. Zgodnie z obowiązującymi przepisami, w przypadku naruszenia ulepszonego kwalifikowanego podpisu elektronicznego, właściciel musi poinformować o tym swoje centrum certyfikacji (CA) i unieważnić ECEP. Jeśli ta funkcja zostanie zwrócona, należy uważać, aby prywatna część klucza nie opuściła komputera.
  4. W lutym Centrum Rozwoju Zaawansowanych Technologii (CRPT) po cichu wprowadziło ograniczenie liczby żądań do API CPS. Nie więcej niż jedno żądanie na sekundę. Następnie równie niespodziewanie i po cichu zniósł to ograniczenie. Dlatego polecam wbudować w system możliwość ograniczenia liczby żądań do CRPT API w przypadku nawrotu. Teraz pojawiła się informacja o limicie 10 żądań na sekundę.
  5. Również w lutym zachowanie API CPS zmieniło się znacząco bez ostrzeżenia. API ma żądanie pobrania statusu zamówień. Status wskazywał bufory i ich status. Jeden GTIN = jeden bufor. Wskazywał także, ile kodów można było odebrać z bufora. Pewnego pięknego dnia liczba wszystkich buforów wzrosła do -1. Musiałem użyć osobnej metody, aby osobno zapytać o stan każdego bufora. Zamiast jednej prośby, musiałem złożyć jedenaście.

Struktura kodu

Zatem kody zostały zamówione i wygenerowane. Można je uzyskać poprzez API w formie tekstowej, w formacie PDF jako etykiety do druku oraz jako plik csv z tekstem.

API zostało już napisane powyżej. Jeśli chodzi o pozostałe dwie metody. Początkowo system kontroli pozwalał na jednokrotne pobranie kodów. A jeśli pobrano plik pdf, wówczas kody w formie tekstowej można było uzyskać jedynie poprzez ponowne zeskanowanie wszystkich matryc danych z pliku pdf. Na szczęście kilkukrotnie dodali możliwość zbierania kodów i problem ten został rozwiązany. Kody są nadal dostępne do ponownego pobrania w ciągu dwóch dni.

Jeśli zabierzesz go w formacie CSV, nigdy, pod żadnym pozorem, nie otwieraj go w Excelu. I nie pozwól nikomu. Excel ma funkcję automatycznego zapisywania. W momencie zapisywania Excel może modyfikować kody w najbardziej nieprzewidywalny sposób. Do przeglądania kodów polecam używać Notatnika++.

Jeśli otworzysz plik z CMS-a w notatniku++, zobaczysz takie linie. Trzeci kod jest nieprawidłowy (nie posiada ograniczników GS).

DataMatrix, czyli jak prawidłowo oznakować buty

Nasi partnerzy przekazali nam kody do oznaczania swoich produktów. Gołym okiem widać, które pliki zostały wygenerowane przy pomocy Excela – aż 5% kodów było nieprawidłowych.

Gorąco polecam poczytać o standard GS1. Opis standardu zawiera odpowiedzi na wiele pytań dotyczących powstawania DataMatrix.

Kod identyfikacyjny składa się z numeru GTIN i numeru seryjnego. Zgodnie ze standardem GS1 odpowiadają one identyfikatorom zastosowania (AI) 01 i 21. Należy pamiętać, że identyfikatory zastosowań nie są częścią GTIN i numeru seryjnego. Wskazują, że po identyfikatorze aplikacji (UI) następuje numer GTIN lub numer seryjny. Jest to szczególnie istotne przy programowaniu oprogramowania kasowego. Do wypełnienia tagu 1162 wystarczy numer GTIN i numer seryjny, bez identyfikatorów aplikacji.

W przypadku UTD (uniwersalnego dokumentu przelewu) i innych dokumentów wręcz przeciwnie, najczęściej potrzebny jest cały zapis z identyfikatorami aplikacji.

DataMatrix, czyli jak prawidłowo oznakować buty

Standard GS1 stanowi, że numer GTIN ma stałą długość 14 znaków i może składać się wyłącznie z cyfr. Numer seryjny ma zmienną długość i jest opisany na stronie 155 normy. Znajduje się tam również odnośnik do tabeli z symbolami, które mogą pojawić się w numerze seryjnym.

Ponieważ numer seryjny ma zmienną długość, separator GS wskazuje koniec numeru seryjnego. W tabeli ASCII ma on kod 29. Bez tego separatora żaden program nie zrozumie, w którym momencie kończy się numer seryjny, a zaczynają inne grupy danych.

Więcej szczegółów na temat kodu znakującego (KM) można znaleźć w oficjalna dokumentacja.

W przypadku obuwia numer seryjny jest ustalony na 13 znaków, jednakże jego rozmiar można w każdej chwili zmienić. W przypadku innych grup produktów (TG) długość numeru seryjnego może się różnić.

Generacja DataMatrix

DataMatrix, czyli jak prawidłowo oznakować buty

Następnym krokiem jest konwersja danych do kodu DataMatrix. Dekret rządu rosyjskiego nr 860 określa GOST, zgodnie z którym konieczne jest utworzenie DataMatrix. Ponadto PPR 860 określa obowiązkowe stosowanie identyfikatorów aplikacji. Należy pamiętać, że w standardzie DataMatrix nie ma koncepcji „identyfikatorów aplikacji”. Dostępne są wyłącznie w standardzie GS-1 DataMatrix. Okazuje się, że PPR 860 w sposób dorozumiany obliguje do stosowania GS-1 DataMatrix. Na szczęście standardy są podobne. Kluczowa różnica: w GS-1 DataMatrix pierwszym znakiem musi być FNC1. Symbol GS nie powinien pojawiać się jako pierwszy w DataMatrix, tylko FNC1.

FNC1 nie można po prostu dodać do linii, tak jak GS. Musi zostać dodany przez program generujący DataMatrix. Jest ich kilka w zasobach Fortów Sojuszu aplikacje mobilne, za pomocą którego możesz sprawdzić poprawność wygenerowanych kodów DataMatrix.

Jest to bardzo ważne. Aplikacja uczciwego znaku akceptuje nieprawidłową DataMatrix. Nawet kody QR. Fakt rozpoznania marki i wyświetlenia informacji o produkcie nie oznacza, że ​​DataMatrix jest utworzona prawidłowo. Nawet po wymianie kryptoogona aplikacja ChZ rozpoznała markę i wyświetliła dane o produkcie.

Później wypuszczono ChZ wyjaśnienie, jak poprawnie generować kody. Ze względu na dużą liczbę kodów z błędami uznali kody bez FNC1 za ważne, ale nadal zalecają generowanie GS-1 DataMatrix.

Niestety dość duży odsetek matryc danych od partnerów zawierał błędy. Dzięki wyjaśnieniom ChZ całkowicie rozwiązano pytanie „Czy po 1 lipca można handlować takim produktem, czy nie?”. Spoiler – możesz.

druk

Zwróć uwagę na sposób druku znaczków. Stempel wydrukowany na drukarce termicznej szybko blaknie i produkt nie nadaje się już do sprzedaży. Nieczytelny znaczek stanowi naruszenie PPR 860. Grozi to konfiskatą towaru, karami finansowymi i odpowiedzialnością karną.

Skorzystaj z druku termotransferowego. W tym przypadku marka nie jest tak podatna na blaknięcie. Materiał etykiety określa również, jak podatna jest marka na uszkodzenia mechaniczne. Jeżeli ze względu na uszkodzenie mechaniczne nie da się odczytać kodu, jest to równoznaczne z brakiem marki i wszystkimi tego konsekwencjami.

DataMatrix, czyli jak prawidłowo oznakować buty

Wybierz drukarkę z planowanych wolumenów wydruków. Drukarki stacjonarne nie są przeznaczone do drukowania 100 000 etykiet dziennie.

Zatrzymywanie i rozpoczynanie drukowania zwiększa zużycie drukarki. Niektóre programy wysyłają zadanie drukowania po jednej etykiecie na raz. Lepiej nie używać takich programów.

Pracuj z dokumentami

Po wydrukowaniu i wklejeniu znaczków wszelkie dalsze transakcje z nimi odbywają się za pośrednictwem dokumentów lub konta osobistego uczciwego znaku.

Podczas pracy z dużą liczbą kodów możesz utworzyć pliki XML zawierające wymagane kody i przesłać te pliki za pośrednictwem interfejsu API lub interfejsu internetowego swojego konta osobistego.

Schemat XSD można pobrać w sekcji „pomoc” ChZ LC.

Proszę zwrócić uwagę na następujące punkty.

  1. Schematy Xsd w LC ChZ zawierają błędy w walidacji NIP i ograniczenia dotyczące długości linii. Dopiero po poprawieniu błędów można korzystać ze schematów. Na szczęście błędy są oczywiste, więc nie jest to trudne.
  2. Schemat składa się najczęściej z dwóch części – wspólnej dla wszystkich typów dokumentów i odrębnych dla konkretnego typu. Schemat ogólny dodawany jest poprzez import do schematu szczegółowego. Obydwa diagramy zamieszczono w sekcji pomocy ChZ LC.
  3. Reguły ucieczki dla CM różnią się od ogólnie przyjętych dla XML, jest to zapisane w oficjalnej dokumentacji ChZ, zwróć na to uwagę. Tutaj tutaj Wszystkie zasady znajdują się na stronie 4.
  4. Nie należy próbować wprowadzać do obiegu 150 000 kodów w jednym pliku. Według naocznych świadków, zazwyczaj przekazywane są akta liczące ponad 30 000...
  5. Plik Xml może zostać opakowany błędem „błąd sprawdzania poprawności XML”, a pięć minut później ten sam plik może zostać zaakceptowany bez problemów.
  6. Jeżeli plik zawiera kod, który został już wprowadzony do obiegu, to plik wprowadzony do obiegu najprawdopodobniej nie zostanie przyjęty.
  7. Dokumenty wysyłkowe i odbiorcze służą jako rozwiązanie tymczasowe. W przyszłości planują je znieść i przejść na UPD zgodnie z PPR 860.
  8. Mit o 60 dniach. Istnieje opinia, że ​​kody nie wprowadzone do obiegu „wypalają się” po 60 dniach. To mit, źródło nieznane. Kody tracą ważność tylko wtedy, gdy nie odbierzesz ich z systemu kontroli w ciągu 60 dni. Żywotność zebranych kodów jest nieograniczona.

wniosek

Podczas opracowywania mojej bezpłatnej aplikacji do etykietowania BarCodesFX początkowo dokonano integracji z API CPS. Kiedy uczciwy znak nieoczekiwanie zmienił logikę API po raz drugi, trzeba było porzucić integrację. Mam nadzieję, że w przyszłości ChZ będzie w stanie ustabilizować rozwój i API, bo W przypadku produktu niekomercyjnego bardzo kosztowne jest dla mnie codzienne sprawdzanie, czy w API nastąpiły zmiany i szybkie jego ulepszanie.

Wdrażając oznaczenia, przeczytaj uważnie dokumentację regulacyjną dla swojej grupy produktów TG, wydrukuj poprawnie GS1-DataMatrix i bądź przygotowany na wszelkie nieprzewidziane zmiany ze strony uczciwego znaku ChZ.

Fort Alliance stworzył przestrzeń informacyjną (вики, pokoje czatowe w telegramach, seminariach, seminariach internetowych), gdzie można znaleźć przydatne i istotne informacje na temat etykietowania we wszystkich branżach.

Źródło: www.habr.com

Dodaj komentarz