Честный знак: коды маркировки в прайсе — как подготовить файл

Личный кабинет Честного знака выдал выгрузку на восемь тысяч кодов, а из неё нужно сделать файл ввода в оборот — и тут выясняется, что коды маркировки не похожи ни на один привычный формат: восемьдесят с лишним знаков, невидимые разделители, серийные номера с буквами и спецсимволами. Открыли CSV в Excel двойным кликом — и половина колонки превратилась в кракозябры и укороченные числа. Разберём, из чего состоит код Data Matrix в текстовой записи, какие файлы с ним бывают и как привести выгрузку к нужному виду без потери символов. Только формат данных — за требованиями к составу сведений по вашей товарной группе идите к инструкциям оператора.

Как устроен код маркировки в текстовом виде

Полный код идентификации — это не «длинный штрихкод», а несколько полей, склеенных в одну строку. Если штрихкод EAN-13 — тринадцать цифр и ничего больше, то код Data Matrix в текстовой записи выглядит примерно так:

010460703975136521ZxY8vQw<GS>910001<GS>92uLk3…

БлокИз примераЧто это
01 + 14 цифр0104607039751365GTIN товара — глобальный идентификатор позиции
21 + серийный21ZxY8vQwиндивидуальный серийный номер экземпляра
91 + 4 знака910001ключ проверки
92 + 44 знака92uLk3…криптографический «хвост» для проверки подлинности

Двузначные префиксы 01, 21, 91, 92 — идентификаторы применения: они говорят считывающей системе, где какое поле. Серийный номер и криптохвост имеют переменную длину, поэтому между ними стоит служебный символ-разделитель GS (ASCII 29). В одних выгрузках он виден как текст <GS>, в других присутствует как невидимый управляющий символ, в третьих отсутствует вовсе. Общая длина кода зависит от товарной группы: с криптохвостом это порядка восьмидесяти знаков и больше.

Важный нюанс: GTIN внутри кода — четырнадцатизначный. Привычный EAN-13 дописывается в нём ведущим нулём. Поэтому «достать штрихкод из кода» — значит взять четырнадцать цифр после префикса 01, а не первые тринадцать.

Какие бывают файлы с кодами маркировки

Выгрузка кодов маркировки из личного кабинета: одна строка — один длинный код
Типовая выгрузка кодов: по одному коду идентификации в строке

На практике с таблицами кодов сталкиваются в четырёх сценариях:

  • Заказ кодов в СУЗ. Станция управления заказами отдаёт список выданных кодов — обычно CSV по одному коду в строке, иногда с GTIN отдельной колонкой.
  • Файл ввода в оборот. При производстве или импорте в систему передают таблицу с кодами и реквизитами товара. Структура зависит от способа подачи, но колонка с кодом должна быть посимвольно точной.
  • Отчёт о выводе из оборота. Коды, пробитые на кассе при розничной продаже: снова таблица, где один код — одна строка.
  • Выгрузки из личного кабинета. Списки кодов по GTIN, остатки в обороте, реестры — для сверки с учётной системой или с прайсом поставщика.

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

Чем Excel ломает коды маркировки

Excel заточен под числа и даты, а код маркировки — текст со спецсимволами. Типовые поломки при открытии CSV двойным кликом:

Выгрузка кодов, открытая в Excel двойным кликом: кракозябры, слипшиеся столбцы, потерянные нули
CSV после двойного клика: кодировка угадана неверно, GTIN потерял ведущий ноль
  • Кракозябры и слипшиеся столбцы. Выгрузки идут в разных кодировках и с разными разделителями. Открытый «как попало» CSV превращается в одну колонку абракадабры. Отдельно про это — в статье про Excel и CSV в кодировке UTF-8.
  • Потерянный ведущий ноль. Если колонка с GTIN распознана как число, 04607039751365 становится 4607039751365 — тринадцать цифр вместо четырнадцати, и код больше не сходится с эталоном. Механика та же, что у ведущих нулей в артикулах.
  • Невидимый GS. Символ-разделитель Excel не отображает: в ячейке код выглядит целым, но при копировании или пересохранении разделитель теряется — и границы полей «съезжают».
  • Пробелы «для читаемости». Коллеги разбивают длинный код пробелами на группы, чтобы удобнее читать. Для системы это уже другой код.
  • Обрезанный хвост. При переносах между таблицами серийный номер и криптохвост отваливаются — строка превращается в «GTIN + обрубок», который не пройдёт проверку.

Как привести файл к нужному виду в конвертере

Безопаснее не открывать выгрузку в Excel вовсе, а обработать её в конвертере на странице для Честного знака: он читает .xls, .xlsx и .csv и не переиначивает значения под числа.

Шаг «Структура». Укажите, с какой строки начинается таблица: у выгрузок из личного кабинета сверху часто идут служебные строки с названием отчёта и датой формирования. Строки-разделы удалите здесь же, чтобы они не попали в данные и не исказили дальнейшую проверку.

Шаг «Колонки». Переименуйте колонки под шаблон приёмника, переставьте в нужном порядке, лишние удалите. На колонку с кодом при необходимости назначьте действия: «Убрать пробелы» снимет краевые и вставленные «для читаемости» пробелы, «Заменить текст» уберёт приставки вида «КИ: » и пометки после кода. Если под шаблон нужен полный код, а в файле он разложен по частям — соберите его склейкой по шаблону из колонок {GTIN} и {Серийный номер}.

Шаг «Колонки» в конвертере: переименование колонок и действия на колонке с кодом маркировки
Шаг «Колонки»: порядок под шаблон приёмника, пробелы и приставки сняты действиями

Шаг «Фильтры». Отсейте брак до выгрузки: например, оставьте только строки, где длина кода больше заданного порога — обрезанные значения без криптохвоста выпадут из файла и не завалят загрузку сведений. Условий может быть несколько.

Экспорт. На выходе — XLSX со значениями без формул или CSV в UTF-8 с точкой с запятой: второй вариант чаще всего и ждут системы подачи сведений. Скачанный файл можно отправлять дальше сразу, не прогоняя через Excel.

Оговорка по существу: конвертер приводит файл к нужному виду, но не проверяет подлинность кодов и не сверяет их с базой Честного знака — это остаётся на стороне системы маркировки при загрузке сведений.

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

Что такое GS в коде маркировки и надо ли его удалять?

GS — служебный символ-разделитель (ASCII 29), который отделяет серийный номер от криптохвоста: у этих полей переменная длина, и без разделителя система не поймёт, где граница. Удалять или добавлять его нужно только под требования конкретного способа подачи сведений: одни шаблоны ждут код с разделителями, другие — без. И не путайте его с пробелом: это разные символы, замена одного на другой портит код.

GTIN и код маркировки — это одно и то же?

Нет. GTIN — четырнадцатизначный идентификатор товара, одинаковый для всех единиц одной позиции. Код идентификации — это GTIN плюс уникальный серийный номер экземпляра и криптохвост, то есть отдельная строка на каждую упаковку. В таблице их часто держат в разных колонках: GTIN — для связки с прайсом и карточкой товара, полный код — для подачи сведений.

Можно ли открыть выгрузку Честного знака в Excel?

Можно, но аккуратно: импортируйте CSV через «Данные → Из текста/CSV», укажите кодировку и пометьте колонку с кодом как текстовую. Открытие двойным кликом рискованно: Excel сам выберет кодировку и разделитель, а длинные значения может превратить в числа с потерей ведущих нулей. Если задача — только переформатировать файл, надёжнее обойтись без Excel и обработать выгрузку конвертером.

Конвертер проверит, что коды настоящие?

Нет. Конвертер работает с форматом данных: чистит пробелы, убирает приставки, склеивает колонки по шаблону, отфильтровывает обрезанные значения и отдаёт CSV или XLSX. Подлинность кодов и их статус в обороте проверяет только сама система маркировки — при загрузке файла она отклонит несуществующие или уже выбывшие коды.