Перейти к содержанию
Содержание

GS1 DataMatrix: найдите границу поля переменной длины

Сканер читает код, но принимающая программа объединяет партию со следующим полем. Проверьте не только цифры и буквы, но и границу элементов данных. Этот разбор относится к GS1 element string syntax; его нельзя автоматически переносить на GS1 Digital Link URI или внутренний код поставщика.

Установите правило для каждого AI

AI, идентификатор применения GS1, задаёт смысл и формат следующего поля. В руководстве GS1 для 2D-кодов, разделы 4.5.1 и 4.6.1, выделены элементы с предопределённой длиной и без неё. Для последних требуется разделитель FNC1 перед следующим элементом; если такой элемент стоит последним в строке, разделитель после него не нужен.

GS1 DataMatrix: найдите границу поля переменной длины

Не подменяйте это правило предположением «любое поле фиксированной длины можно завершить без разделителя». Проверяйте именно классификацию AI в актуальных спецификациях GS1. Максимально допустимая длина поля также не означает, что каждый фактический экземпляр обязан её занимать.

Сохраните цепочку одного образца

Возьмите реальную этикетку и ожидаемый состав её данных у ответственного за формирование кода. Для каждого AI запишите назначение, формат, правило длины и следующее поле. Полный код и серийные данные храните в согласованном защищённом месте.

Сравнивать нужно три этапа: содержимое, которое должен был сформировать генератор этикетки, результат декодирования и данные на входе программы. Если видна только строка в обычном текстовом поле, этого недостаточно для вывода об отсутствии служебного символа.

В руководстве GS1 знак ^ используется как условное обозначение непечатаемого Group Separator, hex 1D, или символа FNC1 в соответствующем контексте. Это не инструкция печатать буквальный ^ в коде. Различайте символику внутри штрихкода и представление разделителя в переданных данных.

Найдите первое расхождение

НаблюдениеСледующий шаг
Разделитель не предусмотрен между соответствующими полями в исходных данныхПроверить генератор и правила AI
В декодированных данных граница есть, на входе программы её нетПроверить настройки вывода, драйвер и промежуточную обработку
Граница доходит, но программа объединяет поляПроверить парсер и поддерживаемый синтаксис
Поле стоит последним и разделителя после него нетСначала проверить допустимость такого окончания по правилу AI

Таблица задаёт порядок диагностики, а не настройку для любого устройства. Для Zebra отдельный материал показывает, как получить исходные байты через DataWedge. Он помогает собрать входные данные; правильность структуры GS1 проверяется отдельно.

Подтвердите разбор полей

После согласованного исправления повторите чтение того же образца. Сравните каждое разобранное поле с ожидаемым значением. Дополнительно проверьте доступный корректный образец с другим фактическим размером переменного поля: решение не должно зависеть от случайного числа символов одной партии.

Не вставляйте разделитель в общую строку по найденным цифрам предполагаемого следующего AI: такие цифры могут быть частью значения. Завершайте проверку, когда место потери или неверного разбора объяснено, а полученные поля воспроизводимы. Этот результат не подтверждает юридический статус маркировочного кода.

Теги

Комментарии 0

0 / 1500

Популярные статьи