DataMatrix 或如何正確標記鞋子

自 1 年 2019 月 1 日起,俄羅斯引入了一組商品的強制性標籤。 從 2020 年 1 月 XNUMX 日起,鞋子將受該法律管轄。 不是每個人都有時間準備,因此發布推遲到 XNUMX 月 XNUMX 日。 Lamoda 是成功做到這一點的人之一。

因此,我們想與那些還沒有給衣服、輪胎、香水等貼標籤的人分享我們的經驗。 文章描述了一些行業標準、一些法規文件和個人經驗。 本文主要面向尚未了解此項目的集成商和開發人員。

DataMatrix 或如何正確標記鞋子

請注意,監管框架經常變化,作者沒有機會不斷更新材料。 因此,在閱讀時,某些信息可能已經過時。

作者在 Lamoda 的 Datamatrix 項目框架和開發他自己的標記 BarCodesFx 的免費應用程序中獲得了個人經驗。

自 1 年 2019 月 XNUMX 日起,俄羅斯強制性標籤法生效。 該法律並不適用於所有商品組,強制性標籤對產品組的生效時間各不相同。 現在煙草、皮大衣、鞋子、藥品都必須強制標示。 在不久的將來會推出用於輪胎、服裝、香水和自行車的產品。 每組商品均受單獨的政府法令 (GPR) 監管。 因此,某些適用於鞋子的陳述可能不適用於其他產品組。 但我們希望技術組件不會因不同的產品組而有很大差異。

記號標籤的主要思想是為每個商品單元分配一個單獨的編號。 通過這個編號,您可以跟踪特定商品從生產或進口到該國的那一刻,直到結賬時處置的那一刻的歷史。 聽起來不錯,但實際執行起來卻極其困難,這個概念在誠信標誌的官方網站上有更詳細的描述。

常用術語和概念

UOT - 參與商品流通。
CRPT 是先進技術的開發中心。 私人公司,唯一的國家。 標記項目承包商。 它在公私合作夥伴關係 (PPP) 計劃下運作。 不幸的是,沒有關於該項目招標的其他參與者以及招標本身的信息。
ТГ - 商品組。 鞋子、衣服、輪胎等
GTIN - 事實上,考慮到文章的顏色和大小。 在 GS1 或每個進口商或製造商的產品國家目錄中發布。 製造商或進口商必須首先描述該產品。
PPR - 俄羅斯聯邦政府法令。 鞋子 - 860。
КМ - 標記代碼。 分配給特定項目的一組唯一字符。 對於鞋子,它由 GTIN、序列號、驗證碼和加密尾巴組成。
GS1 是發布 GTIN 的國際組織。 也是許多標籤標準的編譯者。
國家目錄 - GS1 的類似物,由 CRPT 開發。
隱尾 - 數字簽名的模擬,確認 CM 的合法性。 必須在郵票上的數據矩陣中。 禁止以文本形式存儲。 打印後,必須按照與CRPT的約定去除印章。 沒有已知的實際用例。
CPS - 訂單管理站。 為項目訂購 KM 的系統。
電子數據交換 - 電子文件管理。
英國環保署 ——增強型合格電子簽名。

本文範圍內的術語和概念

ЧЗ - 一個誠實的跡象。
ЛК - 個人專區。
馬克 - 打印標記代碼。

流程如下:首先,參與者(UOT)簽發電子簽名(ECES),在誠實標誌(CHZ)註冊,在國家目錄或GS1中描述產品,並收到產品的GTIN。 在誠信標誌的網站上,這些步驟都有詳細的介紹,我們就不贅述了。

訂購和接收代碼

收到 GTIN 後,參與者 (UOT) 在 CPS 系統中訂購代碼 (KM)。
重要,但不明顯。

  1. 每個訂單最多可以請求 10 個 GTIN 的代碼。 原則上,一個難以理解的限制。 擁有 14 個 GTIN 的進口商必須創建 000 個訂單。
  2. 一個訂單最多可以請求 150 個代碼。
  3. 工作中有 100 個訂單的限制。 即同時處理的訂單不超過100個。 如果超過 100 個,則 API 將開始返回錯誤而不是訂單列表。 修復此錯誤的唯一方法是通過 Web 界面關閉一些訂單。 API 不提供參數來部分顯示訂單。
  4. 請求數量有限制——每秒不超過 10 個請求。 根據我的資料,這個限制沒有出現在文檔中,但它確實存在。

根據通過 CMS API 訂購 KM 標記代碼的個人經驗。

  1. 請求(json 本身)必須使用 GOST 簽名進行簽名。 這是與 cryptopro 一起工作的。 我們必須仔細監控所使用的框架或庫不會為單個字節更改原始 json。 否則,簽名立即失效。
  2. 訂單簽名。 訂單可以由任何客戶的任何簽名簽署。 如果簽名有效,KMS 系統將接受它。 在集成期間,可以使用在測試 CA 上發布的其他人的簽名來簽署請求。 CPS 的作戰電路處理命令並發布代碼。 在我看來,這是一個安全漏洞。 開發人員對錯誤報告的反應是“我們拭目以待”。 希望它已被修復。

    因此,如果不止一個法人實體在一個工作場所工作,請格外小心。 面孔。 今天,CPS 將接受這些請求,明天將重新檢查這些請求,並且由於其他人的簽名,將撤回一半代碼。 原則上,形式上他們是對的。

  3. 自動簽署訂單是 CMS 中不再提供的功能。 對於其操作,需要將密鑰的私有部分上傳到誠實標誌的個人帳戶中。 這是一個關鍵的妥協。 根據現行立法,如果增強型合格電子簽名遭到破壞,所有者必須通知其認證中心 (CA) 並撤銷 UKES。 如果返回此功能,請仔細確保密鑰的私有部分不會離開計算機。
  4. 10 月,先進技術發展中心 (CRPT) 默默地引入了對 KMS API 請求數量的限制。 每秒不超過一個請求。 然後,同樣是出乎意料的悄無聲息,解除了這個限制。 因此,我建議在系統中加入限制對 CRPT API 的請求數量的功能,以防再次發生。 現在有關於每秒 XNUMX 個請求的限制的信息。
  5. 同樣在 1 月,KMS API 的行為在沒有任何警告的情況下發生了重大變化。 API 有一個獲取訂單狀態的請求。 狀態指示緩衝區及其狀態。 一個 GTIN = 一個緩衝區。 它還指示可從緩衝區接收多少代碼。 一個晴朗的日子,所有緩衝區的計數都為 -XNUMX。 我不得不通過單獨的方法分別查詢每個緩衝區的狀態。 我不得不提出 XNUMX 個請求,而不是一個請求。

代碼結構

因此,代碼是有序和生成的。 它們可以通過 api 以文本形式獲取,以 pdf 格式作為打印標籤,以及作為帶有文本的 csv 文件。

API上面已經寫好了。 至於其他兩種方式。 最初,CPS 只允許您提取代碼一次。 如果獲取了 pdf 文件,則僅通過重新掃描 pdf 中的所有數據矩陣就可以獲得文本形式的代碼。 幸運的是,他們多次添加了取碼功能,解決了這個問題。 兩天之內,代碼仍然可以重新下載。

如果您選擇的是 csv 格式,那麼在任何情況下都不要在 excel 中打開它。 並且不讓任何人。 Excel 具有自動保存功能。 在保存時,Excel 可以以最不可預測的方式修改您的代碼。 我推薦使用notepad++查看代碼。

如果您在記事本++中從 CMS 打開一個文件,您可以看到這樣的行。 第三個代碼無效(它沒有 GS 分隔符)。

DataMatrix 或如何正確標記鞋子

合作夥伴給了我們標記他們商品的代碼。 您可以用肉眼看到哪些文件是使用 Excel 生成的 - 高達 5% 的代碼無效。

我強烈建議閱讀 標準 GS1。 該標準的描述包含了關於 DataMatrix 形成的許多問題的答案。

識別碼由 GTIN 和序列號組成。 根據 GS1 標準,它們對應於應用程序標識符 (UI) 01 和 21。請注意,應用程序標識符不是 GTIN 和序列號的一部分。 它們表示應用程序標識符 (UI) 後跟 GTIN 或序列號。 這在編程 POS 軟件時尤為重要。 要填寫標籤 1162,您需要準確的 GTIN 和序列號,無需應用程序標識符。

相反,對於 UTD(通用傳輸文檔)和其他文檔,通常需要帶有應用程序標識符的完整記錄。

DataMatrix 或如何正確標記鞋子

GS1 標準規定 GTIN 的長度固定為 14 個字符,並且只能由數字組成。 序列號的長度可變,在標準的第 155 頁上有描述。 還有一個指向帶有符號的表格的鏈接,可以在序列號中找到這些符號。

由於序列號的長度可變,分隔符 GS 表示其結尾。 在 ASCII 表中,它有代碼 29。如果沒有這個分隔符,程序將無法理解序列號在什麼時候結束而其他數據組開始。

有關標記代碼 (KM) 的更多詳細信息,請參見 官方文檔.

對於鞋子,序列號固定為 13 個字符,但其尺寸可以隨時更改。 對於其他產品組 (TG),序列號的長度可能會有所不同。

數據矩陣生成

DataMatrix 或如何正確標記鞋子

下一步是將數據轉換為 DataMatrix 代碼。 俄羅斯聯邦政府法令 860 規定了 GOST,根據該法令有必要形成 DataMatrix。 此外,PPR 860 規定了應用程序標識符的強制使用。 請注意,DataMatrix 標準中沒有“應用程序標識符”的概念。 它們僅在 GS-1 DataMatrix 標準中。 事實證明,PPR 860 隱式要求使用 GS-1 DataMatrix。 幸運的是,標準是相似的。 主要區別:在 GS-1 DataMatrix 中,第一個字符必須是 FNC1。 GS 符號不必在 DataMatrix 中排在第一位,只需 FNC1。

不能簡單地將 FNC1 作為 GS 添加到生產線中。 它必須由生成 DataMatrix 的程序添加。 一些 移動應用程序,您可以使用它檢查生成的 DataMatrix 代碼的正確性。

這很重要。 誠實簽名應用程序接受無效的 DataMatrix。 甚至二維碼。 品牌被識別和產品信息被顯示並不意味著DataMatrix 形成正確。 即使更換了 crypto-tail,CZ 應用程序也能識別品牌並在產品上顯示數據。

後來CZ發布 解釋如何正確生成代碼。 由於錯誤代碼數量眾多,他們將沒有 FNC1 的代碼識別為有效代碼,但是,儘管如此,他們還是建議生成 GS-1 DataMatrix。

不幸的是,來自合作夥伴的相當大比例的數據矩陣都存在錯誤。 由於CZ的澄清,“是否可以在1月XNUMX日之後交易這種產品?”的問題得到了徹底解決。 劇透 - 你可以。

打印

注意郵票的印刷方式。 用熱敏打印機打印時,印章很快褪色,此產品無法再銷售。 難以辨認的郵票違反了 PPR 860。這會導致沒收貨物、罰款和承擔刑事責任。

使用熱轉印。 在這種情況下,郵票不太容易褪色。 標籤材料還決定了品牌對機械損壞的敏感程度。 如果代碼因機械損壞而無法讀取,則無異於失去品牌,並產生所有後果。

DataMatrix 或如何正確標記鞋子

從計劃的打印量中選擇打印機。 桌面打印機並非設計為每天打印 100 個標籤。

停止和開始打印會增加打印機的磨損。 某些程序一次發送一個標籤打印作業。 最好不要使用此類程序。

處理文檔

打印和粘貼郵票後,所有進一步的操作都通過文件或誠實標記的個人帳戶進行。

當處理大量代碼時,您可以創建包含所需代碼的 xml 文件,並通過 API 或您個人帳戶的 Web 界面上傳這些文件。

XSD 架構可以在 LC CZ 的“幫助”部分下載。

注意以下幾點。

  1. LC CZ 中的 Xsd 方案包含 TIN 驗證中的錯誤和對線路長度的限制。 只有糾正錯誤,您才能使用這些方案。 幸運的是,錯誤很明顯,所以這並不難做到。
  2. 該方案通常由兩部分組成 - 對所有類型的文檔通用,對特定類型分開。 一般模式通過導入添加到特定模式。 這兩個方案都位於 LC ChZ 的幫助部分。
  3. CM的轉義規則與普遍接受的XML的轉義規則不同,這個在CZ的官方文檔中有寫,注意這一點。 這裡 這裡 在第 4 頁上的所有規則。
  4. 您不應嘗試在一個文件中輸入 150 個代碼進行流通。 據目擊者稱,通常要通過 000 多個文件......
  5. 一個 Xml 文件可以用錯誤“xml validation error”包裝,五分鐘後相同的文件被毫無問題地接受。
  6. 如果文件中包含已經流通的代碼,那麼流通文件將很可能不被接受。
  7. 發貨和接收文件作為臨時解決方案。 未來,他們計劃取消它們,並根據 PPR 860 改用 UPD。
  8. 神話大約60天。 有觀點認為,未投入流通的代碼在 60 天后“燒毀”。 這是一個神話,來源不明。 僅當您未在 60 天內從 CPS 收集代碼時,代碼才會“燒毀”。 所收集代碼的生命週期不受限制。

結論

在開發我的免費標籤應用程序 BarCodesFX 時,最初完成了與 KMS API 的集成。 當第二次誠實的跡象意外地改變了API的邏輯時,不得不放棄整合。 我希望未來CZ能夠穩定開發和API,因為。 對於一個非商業產品來說,每天仔細檢查API是否有變化并快速完善,對我來說是非常昂貴的。

實施標記時,請仔細閱讀您的 TG 產品組的監管文件,正確打印 GS1-DataMatrix,並為公平 CZ 標記的任何不可預見的變化做好準備。

堡壘聯盟創建了一個信息空間(維基百科, 聊天 電報、研討會、網絡研討會),您可以在其中找到有關所有行業標籤的有用和最新信息。

來源: www.habr.com

添加評論