Поиск кодов маркировки в логах и выгрузках
Достаёт коды маркировки из текста, где они перемешаны со служебными данными: лог принтера или камеры, выгрузка сканера, письмо от подрядчика. Опора — структура кода из справочника «Честного знака», поэтому строки вокруг кода значения не имеют.
- Текст просматривается построчно. В каждой строке ищется начало кода —
идентификатор товара
01с 14 цифрами и следом21. - От найденного места код сопоставляется со справочником шаблонов «Честного знака»: длины полей и идентификаторы применения жёсткие, поэтому случайный текст на них почти не ложится.
- Из нескольких подходящих вариантов берётся тот, что заканчивается на границе — дальше идёт пробел, конец строки или другой символ, которого в коде быть не может.
- Строка дополнительно разбирается как CSV: код в кавычках с удвоенными кавычками внутри собирается обратно в исходный вид.
- Найденному коду возвращаются разделители групп по раскладке его шаблона.
- Повторы отбрасываются: один и тот же код в логе встречается столько раз, сколько его сканировали.
- Товарную группу по коду определить нельзя — одна структура используется десятками групп. Инструмент показывает структуру и число подходящих групп.
- Коды без GS1-идентификаторов (сигаретная пачка) ищутся только по галочке: их начало — просто 14 цифр, и в логе с длинными числами будут ложные находки.
- Если разметку разделителей нужно поправить руками — инструмент восстановления разделителей покажет ленту символов и варианты расстановки.
Поиск по документации маркировки
Вопрос обычной фразой — «что означает эта ошибка», «какая структура кода у молочной продукции» — и ответ по смыслу с цитатами на источник. База собрана из документации «Честного знака» и материалов этого раздела.
Спросить документациюПочему коды нельзя просто «разобрать по колонкам»
Запятая, точка с запятой и кавычка входят в алфавит кода маркировки — это законные символы внутри серийного номера. Поэтому разбор выгрузки «взять первую колонку» режет часть кодов посередине, и они молча теряются. Отдельная ловушка — экранирование CSV: выгрузки сканеров кладут код в кавычки, а кавычку внутри кода удваивают. Такой код не сходится ни с одним шаблоном — лишний символ ломает длину поля. На реальной выгрузке это была почти тысяча кодов из десяти с половиной тысяч.
Поэтому каждая строка читается дважды: как есть и как набор полей CSV. А сам поиск
идёт не по колонкам, а по структуре: якорь — 01 плюс четырнадцать цифр
плюс 21, от него пробуются все шаблоны справочника, с разделителями и без.
Побеждает вариант, после которого идёт конец строки или символ вне алфавита кода, —
иначе шаблон с длинным серийным номером «съел» бы соседнее поле выгрузки.
Частые вопросы
Как достать коды маркировки из лога оборудования?
Вставьте лог целиком или загрузите файл: коды ищутся по структуре, а не по позиции в строке, поэтому время, уровни логирования и служебные слова вокруг кода значения не имеют. На выходе — чистый список без повторов.
Часть кодов в выгрузке «теряется» — почему?
Скорее всего, из-за экранирования CSV: выгрузки сканеров берут код в кавычки, а кавычку внутри кода удваивают. Лишний символ ломает длину поля, и обычный разбор такой код не узнаёт. Инструмент читает каждую строку и как есть, и как набор полей CSV.
Сохранятся ли разделители групп?
Если они были в исходном тексте — да, их можно выгрузить как есть. Можно и наоборот: получить коды с настоящими разделителями, даже если в логе они записаны метками.
Что делать с кодами без GS1?
Это коды сигаретной пачки и её аналогов: у них нет идентификаторов применения, и якорем служат просто четырнадцать цифр. В логе с длинными числами это даёт ложные находки, поэтому поиск таких кодов включается отдельной галочкой.
Мой файл где-то сохраняется?
Нет. Текст разбирается на лету, результат живёт в памяти открытой страницы и в логи не попадает.
Инструменты сделал Sensei — сервис ответов по базе знаний
Sensei отвечает на вопросы команды словами вашей же документации: подключаете wiki, регламенты, таблицы и историю обращений — сотрудник спрашивает обычной фразой и получает ответ с цитатами, по которым видно, откуда он взят.
Демо открыто без регистрации. Для своей базы знаний есть бесплатный тариф.