GS1-128 (ранее также назывался: UCC-128 или EAN-128) — формат штрихкода глобальной организации по стандартизации GS1, предназначенный для передачи информации о грузе между предприятиями. В формате регламентирован словарь (Code-128) и группы кодов, но не регламентирована длина. Такой код может содержать различную информацию, например, код товара, сроки годности, размеры, объём, код партии производителя и др.

Обзор Для построения GS1-128 используется словарь Code-128. Группы цифр в скобках в текстовом представлении кода, такие как (02), (15), (3303) и т. д., называются AI (англ. Application Identifiers — идентификаторы применения) и объясняют, как интерпретировать цифры, идущие следом.

Например, простой SSCC (англ. Serial Shipping Container Code — глобально-уникальный код грузовых контейнеров) штрихкод может выглядеть так:

[FNC1] 00 12345678 0000000001 [FNC1] — это один символ функциональный код 1, который указывает, что последовательность, закодированная с помощью Code-128 — это штрихкод GS1-128. 00 — это идентификатор применения (AI) SSCC, что определяет следующие данные как код SSCC, в котором 12345678 — это номер компании, а 0000000001 — это номер контейнера.

Можно кодировать несколько элементов данных в один штрихкод. Например серийный номер, (AI 21), дата производства (AI 11) и срок годности (AI 17) вместе будут выглядеть примерно так: [FNC1] 21 12345 [FNC1] 11 090101 17 100101 Требуется указать дополнительный FNC1 до даты производства, поскольку длина серийного номера переменная. При этом данный символ не обязательно указывать до срока годности, так как дата производства фиксированной длины. Если переупорядочить элементы и поместить серийный номер (элемент с переменной длиной) в конец, то можно получить более компактную форму: [FNC1] 11 090101 17 100101 21 12345

Список идентификаторов применения (AI) Приведённый список идентификаторов применения не является полным, а также может содержать ошибки. Также список является объектом авторского права GS1 — актуальный список доступен на официальном сайте Поскольку Code-128 является более эффективным при кодировании пар чисел, предпочтение отдаётся чётной длине в числовых полях.Все даты указываются в формате ГГММДД.

Y в AI обозначает число знаков после запятой в следующем значении. Представленное значение является следующим целым числом, которое делится на 10Y. Например, чистый вес 22,7 кг может быть закодирован в качестве 3101 000227, 3102 002270, 3103 022700, или 3104 227000. AIОписание Длина (без AI) 00 Глобально-уникальный код грузовых контейнеров (Serial Shipping Container Code (SSCC)) 18 01 Глобально-уникальный номер торговых продуктов (Global Trade Item Number (GTIN)) 14 02 GTIN содержащихся в грузе торговых продуктов (GTIN of Contained Trade Items) 14 10 Номер партии/лота (Batch/Lot Number) переменная, максимально 20 11 Дата производства (Production Date) 6 12 Дата, до которой необходимо оплатить счёт (Due Date) 6 13 Дата упаковки (Packaging Date) 6 15 Дата, до которой лучше всего использовать товар (Best Before Date) 6 17 Дата истечения срока годности (Expiration Date) 6 20 Вариант исполнения продукта (Product Variant) 2 21 Серийный номер (Serial Number) переменная, максимально 20 240 Дополнительный идентификатор продукта (Additional Product Identification) переменная, максимально 30 241 Номер партии по данным заказчика (Customer Part Number) переменная, максимально 30 242 Номер изготовленного под заказ варианта (Made-to-Order Variation Number) переменная, максимально 6 250 Второй серийный номер (Secondary Serial Number) переменная, максимально 30 251 Ссылка на исходную запись (Reference to Source Entity) переменная, максимально 30 253 Глобально-уникальный идентификатор типа документа (Global Document Type Identifier