Генератор GS1-128

GS1-128 — это линейный штрихкод на базе Code 128, который позволяет закодировать не только идентификатор товара, но и партию, срок годности, вес, серийный номер и многое другое. Незаменим в логистике и поставках для крупных сетей.

Автор как-то участвовал во внедрении системы приёмки товаров в гипермаркете. Поставщик привозил коробки с разными партиями колбасы — у каждой был свой срок годности. Сети нужно было отслеживать не только что в коробке, но и когда продукт испортится. Обычный EAN-13 такую задачу не решал. Тогда и пригодился GS1-128.

Этот код позволяет наклеить на коробку одну этикетку, а сканер сам определит и товар, и номер партии, и дату производства, и даже вес нетто. Рассказываем, как его генерировать.

Что скрывается за названием GS1-128

GS1-128 (ранее назывался UCC/EAN-128) — это не отдельная символика, а правило использования стандарта Code 128. Ключевая особенность: наличие специального символа FNC1 в первой позиции, который говорит сканеру, что внутри — данные GS1 с идентификаторами применения (Application Identifiers, AI).

Каждый AI — это код из 2–4 цифр, за которым следуют данные. Примеры:

  • (01) — GTIN товара (14 цифр).
  • (10) — номер партии (до 20 символов).
  • (17) — срок годности (дата в формате YYMMDD).
  • (3103) — вес нетто в килограммах.
  • (21) — серийный номер (уникальный для единицы).

Все AI отделяются друг от друга специальным управляющим символом GS (ASCII 29), который в удобочитаемой записи часто отображают как (GS) или скобках.

Как генерировать GS1-128 правильно

Процесс создания этого кода значительно сложнее, чем у обычного Code 128. Вот алгоритм, которому должен следовать хороший инструмент:

  • Шаг 1. Собрать данные в формате AI + значение. Например: (01)04601234567890 (17)251231 (10)партия2025
  • Шаг 2. Вставить разделители GS (ASCII 29) между группами (кроме последней).
  • Шаг 3. Добавить символ FNC1 в начало (он же автоматически вставляется, если выбран режим GS1-128).
  • Шаг 4. Закодировать полученную строку в Code 128 с выбором подходящего типа (A, B или C) для максимальной плотности.
  • Шаг 5. Отрисовать штрихкод с обязательным выводом удобочитаемого текста в формате (AI)данные.

Качественный генератор должен также проверять корректность AI (существует ли такой идентификатор) и формат данных (например, дата — только 6 цифр, GTIN — 14 цифр).

Где применяется GS1-128

Список огромен, особенно в логистике и международной торговле:

  • Поставки в розничные сети (как требование при приёмке товара).
  • Отслеживание медицинских препаратов — обязательное требование в некоторых странах.
  • Экспорт и импорт — таможенные декларации могут требовать GS1-128 на паллетах.
  • Управление складами и заказами — удобно для WMS-систем.

Ошибки при создании и печати

Опыт показывает, что чаще всего проблемы возникают из-за:

  • Отсутствия символа FNC1 — без него сканер не распознаёт формат GS1-128.
  • Неправильные разделители — вместо GS (ASCII 29) ставят пробел или запятую. Это нарушает стандарт.
  • Неверная длина GTIN — должно быть ровно 14 цифр (добавьте ведущие нули, если нужно).
  • Нечитаемая удобочитаемая часть — шрифт должен быть чётким, иначе при ручном вводе возникнут ошибки.

Заключение

Коротко по делу:

  • GS1-128 — это расширение Code 128 для кодирования множества атрибутов товара с помощью идентификаторов применения (AI).
  • Генератор должен автоматически добавлять FNC1, корректно вставлять разделители GS и проверять форматы данных.
  • Применяется повсеместно в логистике и торговле, особенно там, где нужны партия, срок годности или вес.

Вопрос читателям: с какими AI вы работаете чаще всего? Может быть, сталкивались с требованием сети наносить на коробку GS1-128 с (415) — код места назначения? Расскажите, как настраивали генерацию.