1 июля 2026 г.5 мин чтенияНикита Сухотский

Что такое GS-разделитель ASCII 29 в DataMatrix

Что такое GS-разделитель в коде маркировки, зачем нужен ASCII 29, почему он пропадает в Excel, сканере или 1С и как проверить полный КМ.

Сканер пищит, но в базу попадает обрезанная строка — в половине обращений по маркировке виноват не «битый» DataMatrix, а пропавший GS-разделитель (ASCII 29, FNC1). Код визуально целый, квадрат читается, но структура КМ для ГИС МТ и кассы уже нарушена.

Короткий ответ

GS-разделитель — невидимый символ между блоками кода маркировки. Без него серийник слипается с AI 93 или AI 92, парсер видит неверную длину полей, ГИС МТ отклоняет операцию. GS теряется при копировании в Excel, при неверной настройке сканера и при экспорте в CSV. Решение: не гонять полный КМ через таблицы, настроить передачу FNC1 на сканере (инструкция), проверять строку в онлайн-разборе DataMatrix.

Кому полезна статья

Программистам интеграций 1С/MES, операторам линии, которые копируют коды из файлов, инженерам АСУТП, настраивающим обмен с принтером и камерой, и всем, кто видел «(+93» в середине серийника вместо отдельного поля 93.

Какая проблема возникает на производстве

Линия получает файл кодов из ГИС МТ. Логист «для удобства» открывает выгрузку в Excel, фильтрует, копирует столбец в задание принтера. GS исчезает. Принтер печатает DataMatrix, в котором AI 21 и AI 93 склеены. Камера на линии декодирует строку, но MES сравнивает с эталоном из API — несовпадение. Оператор вручную копирует КМ из ячейки — ошибка повторяется на каждой смене.

На складе та же история: код из УПД вставлен в поле приёмки WMS — криптохвост отделился не там, где нужно, паллета не агрегируется.

Пример реальной ошибки

Вода, укороченный КМ. Эталон после AI 21 (13 символов серийника):

…PRkQ<GS>930ed7

где <GS> — байт 0x1D. После Excel в задании принтера:

…PRkQ(+930ed7

Символ (часть серийника, а не разделитель. Сканер на посту отдаёт ту же склейку. Проверка КМ показывает: поле 93 парсится неверно или пустое. Партия 12 000 бутылок — переделка этикеток. Подробный разбор копирования — в статье криптохвост и Excel.

Структура КМ и роль GS

Типовая цепочка для питьевой воды:

БлокAIПримечание
GTIN0114 цифр
Серийник21фиксированная длина
РазделительGSASCII 29
Криптохвост934 символа

В полной структуре (обувь, парфюм) после серийника идут GS, AI 91, ключ, GS, AI 92. Любой пропущенный GS ломает справочник AI.

DataMatrix на этикетке кодирует байтовую строку, не «текст для человека». Человекочитаемый вид в ЛК «Честный ЗНАК» скрывает непечатаемые символы — отсюда иллюзия, что «скопировал то же самое».

Где GS теряется в цепочке

Excel и CSV — главный враг. Ячейка показывает «текст», но при Save As CSV GS превращается в разрыв поля или исчезает.

Сканер — режим «GS1 без разделителей» для розничного EAN не подходит для полного КМ. Нужен профиль с FNC1 — см. настройку сканеров.

Принтер — если в задание пришла уже испорченная строка, DataMatrix будет математически корректен, но с неверным содержимым. Верификатор даст Grade A при неправильном КМ.

API и JSON — при передаче без экранирования \u001d хост обрезает строку на первом управляющем символе.

Как настроить сканер и хост

  1. Включите в сканере: DataMatrix, передача FNC1 как GS, отключите strip AI.
  2. На COM/USB проверьте длину принятого буфера в hex — между концом серийника и 39 33 (93) должен быть 1D.
  3. В 1С/MES храните КМ как бинарно-безопасную строку или base64, не как «отображаемый текст».
  4. Для отладки сравните с онлайн-разбором DataMatrix эталон из ГИС МТ и строку со сканера.

Для линии с автоматической проверкой содержимого — верификация DataMatrix и маркировка на производстве.

Печать и камера: GS не «печатается» отдельно

На этикетке нет «отдельной черточки» для GS — он внутри матрицы модулей. Камера либо декодирует полную строку, либо нет. Если камера отдаёт обрезанные данные — проблема в настройках декодера, аналогично ручному сканеру. См. также DataMatrix на линии розлива.

Чек-лист проверки

  • Эталон из ГИС МТ не проходил через ручное редактирование в Excel
  • Hex-дамп строки со сканера содержит 1D перед AI 93 или 91
  • Проверка КМ разбирает 01, 21, 93 на отдельные поля
  • Профиль сканера задокументирован; запасной сканер с тем же профилем
  • GTIN в задании сверен через валидатор GTIN
  • Интеграция с принтером — потоковая, без копипаста из таблиц (интеграция MES)

Когда пора внедрять систему

Пока коды передаются файлами «для удобства» через Excel — GS будет пропадать снова. Система нужна, когда:

  • Заказы кодов и задания принтеру идут напрямую из ГИС МТ / MES / 1С.
  • Более одного принтера или линии — единый источник эталона.
  • Склад принимает маркированный товар — см. WMS с маркировкой и ТСД для DataMatrix.

Централизованная интеграция 1С, WMS и Честный ЗНАК убирает ручное копирование — а вместе с ним исчезает и класс ошибок с пропавшим ASCII 29.

Что можно автоматизировать

  • проверка каждого КМ на наличие GS разделитель перед печатью;
  • запрет загрузки файла в принтер, если GS потерян;
  • тестовый прогон строки через буфер без Excel;
  • журнал: откуда пришла битая строка — Excel, сканер или 1С.

Связанные инструменты

Связанные решения

Когда это становится проблемой бизнеса

Пока оператор вручную копирует КМ между Excel и принтером — живут единицы. Когда в файле 10 000 строк, GS пропадает незаметно, а дубли всплывают на отгрузке — Excel становится узким местом.

  • оператор тратит время на ручную сверку
  • коды теряются между Excel, 1С и принтером
  • сканер читает не ту строку
  • в WMS попадает КИ вместо полного КМ
  • на линии появляются дубли
  • палеты агрегируются с ошибками
  • сеть возвращает поставку из‑за невалидных кодов

В таких случаях нужен не ещё один Excel-файл, а модуль проверки, печати, логирования и интеграции с оборудованием.

Когда стоит внедрять систему

Если ошибки с кодами появляются регулярно, КМ проходят через Excel, принтер, сканер, WMS или 1С, а оператор вручную сверяет строки — лучше внедрить модуль проверки, печати и логирования КМ.

ПО для маркировки

Что можно внедрить под вашу задачу

  • загрузка КМ из ГИС МТ
  • буфер кодов для линии
  • проверка структуры AI 01/21/93
  • проверка GS-разделителя
  • поиск дублей
  • печать DataMatrix
  • очередь печати
  • связь с принтером
  • связь со сканером или камерой
  • логирование каждого КМ
  • статусы: получен, напечатан, нанесён, верифицирован, списан, отгружен
  • агрегация коробов и палет
  • интеграция с 1С, WMS, MES
  • отчёты по смене и партии
Разобрать мою задачу

С чего можно начать

  • Разбор проблемы по описаниюот 0 ₽
  • Аудит маркировкиот 15 000 ₽
  • Модуль проверки DataMatrixот 60 000 ₽
  • AI Support Agent (базовая диагностика)от 60 000 ₽
  • Интеграция принтера/сканераот 80 000 ₽
  • WMS-стартот 120 000 ₽
  • SCADA/HMIот 95 000 ₽
  • WMS + ТСД + маркировкаот 250 000 ₽
  • XRAY/PACS архивот 200 000 ₽
  • Ежемесячное сопровождениеот 15 000 ₽/мес

Это ориентиры. Точная стоимость зависит от оборудования, интеграций, объёма данных и состояния текущего процесса. Для оценки достаточно описать задачу и прислать пример ошибки.

Читайте также

ЗАЯВКА

Разобрать проблему

Опишите контур: оборудование, симптом, пример кода, ошибки или фрагмент лога. Отвечу, где узкое место — данные, печать, сканер, WMS, 1С или сервер.

Модуль диагностики логов, диска и сервисов по runbook-сценариям. Подключается отдельно, не заменяет инженера.

Чем больше деталей вы укажете, тем быстрее можно понять, где ломается процесс: данные, печать, сканер, WMS, 1С, сервер или оборудование.

Частые вопросы

Что такое GS-разделитель в коде маркировки?

Это управляющий символ ASCII 29 (Group Separator), в терминологии GS1 — FNC1. Он отделяет переменные поля КМ друг от друга, например серийник (AI 21) от криптохвоста (AI 93).

Почему GS не виден в Excel и блокноте?

Символ непечатаемый. Excel, Word и мессенджеры при копировании часто удаляют или заменяют его пробелом, скобкой или обрезают строку.

Как проверить, что GS на месте?

Вставьте декодированную строку в онлайн-разбор DataMatrix: если поля 21 и 93 разобрались отдельно — разделитель сохранён. Либо смотрите hex-представление: между серийником и «93» должен быть байт 1D.