← Блог · 31 июля 2026
Разделитель групп в коде маркировки: почему код перестаёт приниматься
Знакомая история: коды выгрузили в Excel или в текстовый файл, переслали, загрузили в другую систему — и она отказывается их принимать. На вид коды целые: то же начало «01», тот же серийный номер, ни одного лишнего символа. Причина обычно в символе, которого вы не видите, — в разделителе групп.
Код маркировки состоит из групп данных
Код «Честного знака» — не одна сплошная строка, а несколько групп подряд. У каждой группы свой идентификатор применения: 01 — код товара из 14 цифр, 21 — серийный номер, 93 — код проверки. У части товарных групп вместо 93 идут 91 и 92, у табачной добавляется 8005 с ценой.
Часть полей переменной длины, и по документации СУЗ такая группа «завершается символом-разделителем FNC1 (ASCII 29)». Это и есть разделитель групп, GS — управляющий символ с кодом 29. Он не печатается и в тексте никак не выглядит, но для приёмной системы он граница поля: без него непонятно, где закончился серийный номер и начался код проверки.
Где он теряется
Невидимый управляющий символ съедает почти любой промежуточный этап: выгрузка в текст, сохранение в Excel, копирование через буфер обмена, чужая система, которая на всякий случай чистит управляющие символы. Иногда его не съедают, а заменяют текстовой меткой — [GS], <GS>, : код остаётся читаемым для человека, но настоящего символа в нём больше нет.
Проще всего заметить потерю по длине: код без разделителей ровно на столько символов короче, сколько их в нём было. Глазами же два варианта неотличимы.
Почему нельзя просто вставить разделитель «после серийного номера»
Потому что неизвестно, где серийный номер заканчивается. Его длина зависит от шаблона кода: 6, 7, 13 или 20 символов. Шаблонов много — в инструменте их 85: 79 действующих из справочника «Шаблоны КМ» документации API СУЗ 3.0 и 6 устаревших вариантов длины серийного номера, которые ещё попадаются в старых выгрузках.
Вдобавок по структуре кода товарная группа не определяется. Одна и та же раскладка «01 код товара + 21 серийный номер (13) + 93 код проверки» используется десятком групп — от упакованной воды до строительных материалов. А у табачных шаблонов раскладка совпадает символ в символ, но правила разделителей разные: у табачной продукции разделители есть, у никотиносодержащей документация их прямо исключает. Выбрать здесь может только человек, который знает, что за товар.
Как инструмент возвращает разделители
Восстановление разделителей работает по шагам:
- Загружаете TXT, CSV или XLSX (в таблице читается первая колонка первого листа) либо вставляете коды текстом — по коду в строке.
- Пачка разбирается: сколько кодов взято в работу, сколько строк пропущено как «не похоже на код», одинаковая ли у всех длина. Разная длина означает разные шаблоны, и одна расстановка на всю пачку не подойдёт — лишние длины отсеиваются одной кнопкой.
- Расстановка подбирается по справочнику автоматически, вместе с ней показывается список шаблонов, которым код подходит. Если подобралось не то, шаблон выбирается вручную — из тех, на которые код вообще ложится по длине и формату полей.
- Позиции можно поправить руками: щёлкнуть по символу, перед которым должен стоять разделитель, или ввести позиции числами.
- «Проверить и восстановить» прогоняет всю пачку по справочнику: видно, сколько кодов проверку прошли, а какие нет и почему. Результат выгружается в TXT.
Уцелевшие разделители и метки [GS] при этом снимаются и расставляются заново — смешанная пачка приводится к одному виду.
Вот синтетический пример кода той самой распространённой раскладки: 0104600000000015215AbCdEf01234!93Xy7z. Разделитель здесь должен стоять ровно перед 93.
Если код не лёг ни на один шаблон, есть запасной путь: инструмент ищет идентификаторы 91, 92, 93 и 8005, стоящие на одинаковых позициях во всех кодах пачки. Данные между ними у каждого кода свои, поэтому совпадение по всей пачке — сильный признак, что это действительно идентификатор, а не случайное сочетание символов.
Ни файл, ни коды никуда не сохраняются: пачка живёт в памяти открытой страницы.
Причём тут Sensei
Инструмент бесплатный, его сделала команда Sensei — сервиса поиска по базе знаний компании. Вы подключаете wiki, документы и таблицы, задаёте вопрос обычной фразой и получаете ответ с цитатами из своих источников. Если разбираетесь с маркировкой в техподдержке, посмотрите демо — оно работает на нашей собственной документации.