DataMatrix 或如何正确标记鞋子

自 1 年 2019 月 1 日起,俄罗斯引入了一组商品的强制性标签。 从 2020 年 1 月 XNUMX 日起,鞋子将受该法律管辖。 不是每个人都有时间准备,因此发布推迟到 XNUMX 月 XNUMX 日。 Lamoda 是成功做到这一点的人之一。

因此,我们想与那些还没有给衣服、轮胎、香水等贴标签的人分享我们的经验。 文章描述了一些行业标准、一些法规文件和个人经验。 本文主要面向尚未了解此项目的集成商和开发人员。

DataMatrix 或如何正确标记鞋子

请注意,监管框架经常变化,作者没有机会不断更新材料。 因此,在阅读时,某些信息可能已经过时。

作者在 Lamoda 的 Datamatrix 项目框架和开发他自己的标记 BarCodesFx 的免费应用程序中获得了个人经验。

自 1 年 2019 月 XNUMX 日起,俄罗斯强制性标签法生效。 该法律并不适用于所有商品组,强制性标签对产品组的生效时间各不相同。 现在烟草、皮大衣、鞋子、药品都必须强制标示。 在不久的将来会推出用于轮胎、服装、香水和自行车的产品。 每组商品均受单独的政府法令 (GPR) 监管。 因此,某些适用于鞋子的陈述可能不适用于其他产品组。 但我们希望技术组件不会因不同的产品组而有很大差异。

记号标签的主要思想是为每个商品单元分配一个单独的编号。 通过这个编号,您可以跟踪特定商品从生产或进口到该国的那一刻,直到结账时处置的那一刻的历史。 听起来不错,但实际执行起来却极其困难,这个概念在诚信标志的官方网站上有更详细的描述。

常用术语和概念

UOT - 参与商品流通。
CRPT 是先进技术的开发中心。 私人公司,唯一的国家。 标记项目承包商。 它在公私合作伙伴关系 (PPP) 计划下运作。 不幸的是,没有关于该项目招标的其他参与者以及招标本身的信息。
TG - 商品组。 鞋子、衣服、轮胎等
GTIN - 事实上,考虑到文章的颜色和大小。 在 GS1 或每个进口商或制造商的产品国家目录中发布。 制造商或进口商必须首先描述该产品。
PPR - 俄罗斯联邦政府法令。 鞋子 - 860。
KM - 标记代码。 分配给特定项目的一组唯一字符。 对于鞋子,它由 GTIN、序列号、验证码和加密尾巴组成。
GS1 是发布 GTIN 的国际组织。 也是许多标签标准的编译者。
国家目录 - GS1 的类似物,由 CRPT 开发。
加密尾巴 - 数字签名的模拟,确认 CM 的合法性。 必须在邮票上的数据矩阵中。 禁止以文本形式存储。 打印后,必须按照与CRPT的约定去除印章。 没有已知的实际用例。
CPS - 订单管理站。 为项目订购 KM 的系统。
电子数据交换 - 电子文件管理。
英国环保署 ——增强型合格电子签名。

本文范围内的术语和概念

ЧЗ - 一个诚实的迹象。
LK - 个人专区。
马克 - 打印标记代码。

流程如下:首先,参与者(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 标记的任何不可预见的变化做好准备。

堡垒联盟创建了一个信息空间(维基, 聊天室 电报、研讨会、网络研讨会),您可以在其中找到有关所有行业标签的有用和最新信息。

来源: habr.com

添加评论