GS1 DataMatrix
GS1 DataMatrix — символика Data Matrix ECC 200 с данными в формате GS1: идентификаторы применения (AI) и разделитель FNC1. Основа UDI-маркировки медизделий и «Честного знака».
Определение GS1 DataMatrix
GS1 DataMatrix — это не отдельная символика, а прикладной профиль стандартного кода Data Matrix (версия ECC 200 по ISO/IEC 16022), в который данные записаны по правилам организации GS1. От «обычного» Data Matrix его отличают две вещи: данные структурированы через идентификаторы применения (Application Identifier, AI), а перед первым AI и между полями переменной длины стоит служебный символ-разделитель FNC1.
Сам квадрат кода выглядит идентично любому Data Matrix — та же L-образная поисковая рамка (Finder Pattern), тот же пунктирный Timing Pattern, та же коррекция ошибок Reed-Solomon. Различие целиком в кодируемой строке: сканер, встретив FNC1 в первой позиции, понимает, что перед ним не произвольный текст, а пакет GS1-полей, и парсит его по таблице AI.
Как работает GS1 DataMatrix
Идентификатор применения — это 2–4-значный числовой префикс, который сообщает, что именно закодировано в следующем поле. Например, AI (01) — это GTIN (глобальный номер товара, 14 цифр), (17) — срок годности в формате ГГММДД, (10) — номер партии, (21) — серийный номер. Строка вида (01)04607177632245(17)261231(10)ABC123(21)00042 читается однозначно без разделителей между полями фиксированной длины.
Проблема возникает с полями переменной длины (партия, серийный номер): без явного маркёра конца сканер не знает, где обрывается поле. Эту роль и выполняет FNC1 — в потоке байтов он представлен управляющим символом ASCII 29 (GS, Group Separator, 0x1D). Первый FNC1 в начале строки обязателен как «флаг GS1», последующие завершают переменные поля. Те же правила действуют в линейном коде GS1-128 — там применяется тот же набор AI, поэтому данные легко переносятся между символиками.
Связанные концепции
- Data Matrix (ECC 200) — базовая символика; GS1 DataMatrix отличается только форматом данных, а не геометрией.
- UDI — уникальная идентификация медизделий (FDA, EU MDR). GS1 DataMatrix — основной носитель UDI на упаковке и корпусе инструмента, в том числе при прямой лазерной гравировке на металле.
- «Честный знак» — российская система маркировки от ЦРПТ, где код формируется как GS1-строка с GTIN, серийным номером и криптозащитой.
- GTIN и AI (01) — обязательный первый элемент почти любого товарного GS1 DataMatrix.
Сгенерировать корректный GS1 DataMatrix с автоматической расстановкой FNC1 можно в генераторе штрих-кодов.
Частые вопросы
Чем GS1 DataMatrix отличается от обычного Data Matrix?
Геометрически ничем — это тот же Data Matrix ECC 200 по ISO/IEC 16022. Отличие в данных: GS1 DataMatrix начинается со служебного символа FNC1 и содержит поля, размеченные идентификаторами применения AI (например, (01) для GTIN, (21) для серийного номера). Обычный Data Matrix хранит произвольный текст или URL без этой структуры.
Зачем нужен символ FNC1?
FNC1 в первой позиции — это флаг, сообщающий сканеру, что перед ним пакет данных GS1, а не свободный текст. Кроме того, FNC1 (байт ASCII 29, Group Separator) служит разделителем для полей переменной длины — номера партии и серийного номера, — где иначе было бы невозможно определить, где заканчивается одно поле и начинается следующее AI.
Где применяется GS1 DataMatrix?
Прежде всего — в маркировке медизделий по требованиям UDI (FDA в США, EU MDR в Европе), где код наносят на упаковку и гравируют на инструментах. В России это основа системы «Честный знак» для лекарств, табака, обуви и десятков категорий. Также используется в логистике, фармацевтике и на упаковке с ограниченной площадью печати.
Что такое идентификатор применения (AI)?
AI — это числовой префикс из 2–4 цифр, определяющий смысл следующего за ним поля. Например, (01) — глобальный номер товара GTIN, (17) — срок годности ГГММДД, (10) — партия, (21) — серийный номер. Таблица AI стандартизирована GS1, что делает строку однозначно читаемой любым совместимым сканером в любой стране.
Можно ли прочитать GS1 DataMatrix обычным сканером Data Matrix?
Прочитать матрицу — да, любой imager-сканер декодирует пиксели в строку. Но чтобы разобрать её на осмысленные поля GTIN, партии и срока годности, сканер или ПО должны поддерживать разбор AI и понимать FNC1. Устройства без поддержки GS1 вернут «сырую» строку с управляющими символами вместо структурированных данных.