Новые штрих-коды продуктов и европейский артикул

Время на прочтение

В обычный день мы сталкиваемся с разными баркодами более десятка раз, не обращая на них особого внимания. К обычным линейным штрих-кодам на продуктах мы уже привыкли, не говоря уже о QR-кодах в эпоху COVID. Но давайте присмотримся повнимательнее, какие еще коды служат нам каждый день, храня информацию о нас и об услугах и товарах, которыми мы пользуемся.

PDF-417

Наступает счастливый день: мы летим в отпуск. При печати посадочных талонов перед авиакомпанией стоит задача сделать билет уникальным, чтобы можно было отличить подделку, но не печатать на нем при этом данные пассажира. Ответ закодирован внутри в PDF-417.

Видим PDF — сразу представляем распространенный формат документов, но этот штрих-код умеет делать кое-что поинтереснее. Самое частое его применение — это идентификация личности, а также он востребован в сфере отчётности и хранения товаров.

Кстати, развею один старый миф. Паспортные данные пассажира не хранятся в посадочном талоне. Они находятся в базе данных перевозчика. А в штрих-коде находится ID номер вашего билета. Сканируя код, перевозчик находит запись и меняет ее статус.

Новые штрих-коды продуктов и европейский артикул

Фото взято из открытого источника.

Кстати, до 2018 года этот баркод также охранял бутылки алкоголя в виде акцизной марки.

Про мини ПК:  Штрих-код или штрих-код? 15 случаев, когда мы ставим дефис там, где он не нужен

EAN-13

Приходим в супермаркет, разнообразие всевозможных товаров радует наши глаза, но смотрел ли кто-нибудь на штрих-код? Чаще всего товары кодируются EAN-13 (European Article Number, предназначенный для кодирования идентификатора товара и производителя). Первые 3 цифры обозначают код страны. Например, 500 – это Великобритания, 400-440 будет Германия, 460-469 относятся к России, 590 у Польши, а 00-09 США и Канада.

Новые штрих-коды продуктов и европейский артикул

Раз уж затронули ранее тему мифов, то развеем ещё парочку.

Миф 1. Если есть штрих-код, значит товар автоматически качественный.

По правде говоря, к качеству товаров штрих-код не имеет никакого отношения. Для потребителя он может показать только страну-производителя (и то не всегда). По большей части его создавали для производителей и продавцов ради удобства учёта товара.

Миф 2. В штриховом коде есть “скрытый смысл” в виде информации об изготовителе, цвете упаковки, сроке годности и так далее.

Сформулирую своё опровержение в виде небольшой истории. Идём в магазин и покупаем допустим упаковку яблочного сока. Для надёжности фотографируем упаковку или сохраняем коробку на некоторое время. Через условные полгода идём в тот же магазин за этим же соком. Сравним штрих-коды и какой же будет результат? А результат будет одинаковым. Если бы в штриховом коде хранилась информация о тех же сроках годности, то код бы отличался.

На самом деле там закодирован лишь уникальный номер. По нему можно отыскать данные о продукте в каталоге компании изготовившей его. Без этого каталога ничего узнать не получится. Повторюсь, для покупателя это просто цифры и не более.

Хотя есть один интересный проект, который позиционирует себя как служба поиска информации о штрих-кодах. Просто введя номер продукта в GEPIR, любой может найти владельца контактной информации этого штрих-кода.

Миф 3. Если товар не нашёлся в регистре GEPIR, то он поддельный.

Это легко объясняется тем, что во многих странах приняты законы о раскрытии информации. В соответствии с ними компания при особых обстоятельствах может по своему желанию выбрать, предоставлять ли данные или нет.

Pharmacode

Новые штрих-коды продуктов и европейский артикул

Если нам не повезло заболеть, то наверняка придется приобрести кое-какие лекарства. И тут не обойдется без специальных баркодов. Для примера возьму вот эту коробочку (картинка выше).

Сперва рассмотрим специально разработанный штрих-код для лекарственных упаковок. Pharmacode легко считывается при помощи специальных идентификаторов. Особенно это удобно для регистрации фармацевтических поставок.

Основные его свойства:

  • Кодирование целых чисел от 3 до 131070.
  • Число кодируется в двоичном формате: каждая узкая полоса обозначает ноль в двоичном коде и каждая широкая полоса обозначает единицу.
  • Штрих-код читается справа налево (что делает Pharmacode уникальным среди других линейных штрих-кодов).
  • Pharmacode могут быть напечатаны в разных цветах (код и фон).

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

Новые штрих-коды продуктов и европейский артикул

Штрих-коды созданы с помощью генератора отчётов FastReport .NET.

Data Matrix

Следующим из штрих-кодов в глаза бросается странный уголочек с кучей квадратиков.  Это не многим привычный QR-код, а его «брат» Data Matrix. Перечислю их отличия:

  • Data Matrix бывает в форме квадрата или прямоугольника, а также в виде групп этих фигур. В то время как QR-код имеет строгий вид квадрата.
  • Data Matrix легко отличить по характерным 2 прямым линиям.

В остальном их характеристики схожи, но для маркировки товаров был выбран именно Data Matrix. Причина кроется в размере. Минимальный размер Data Matrix 0,5×0,5 см, а QR-кода 2×2 см. Маленький штрих-код проще разместить на небольших сигаретных пачках или на упаковках лекарств.

Новые штрих-коды продуктов и европейский артикул

Aztec

Aztec-код — это одна из разновидностей QR-кодов. Такое название пришло из центральной Америки, а именно от племён индейцев. Тщательно присмотритесь к центру кода: в нем есть некая мишень. На самом деле этот квадрат схож с пирамидой Ацтеков (вид сверху), а также по нему определяется центр кода и ориентация.

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

Aztec можно встретить на железнодорожных билетах: Tehran Metro, Eurostar, Deutsche Bahn, TCDD Taşımacılık, DSB, České dráhy, Slovak Railways, Slovenian Railways, Croatian Railways, Trenitalia, Nederlandse Spoorwegen, PKP Intercity, VR Group, National Rail, Via Rail, Swiss Federal Railways, SNCB и SNCF. Код сканируется персоналом в поезде или у турникета для подтверждения билета.

Новые штрих-коды продуктов и европейский артикул

Разумеется, все разнообразие баркодов в природе не ограничивается этим списком: существуют еще и 3D, и 4D баркоды, и другие. О них расскажем в следующей серии.

Малоизвестные факты о штрихкодах — загадочные цифры под штрихкодом

Число зверя, штрихи смерти — насколько все это реально? Можно ли зашить в штрихкод видеоролик или фото голой Эммы Уотсон? Бывают ли “неправильные штрихкоды”, и что вообще значит “неправильный штрихкод”?

В “Клеверенсе” мы разрабатываем платформу Mobile SMARTS для создания мобильных решений по учету маркированного товара и постоянно сталкиваемся с детскими ошибками в маркировке. Обычно они вызваны простым нежеланием людей хоть немного разбираться в теме.

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

Сначала для затравки расскажем про кассовый штрихкод, а затем про загадочный GS1 DataMatrix, который используется в проекте тотальной маркировки товаров.

Сама статья больше развлекательная, всё изложенное при желании легко гуглится, но может и побудить кого-то изучить тему глубже.

Новые штрих-коды продуктов и европейский артикул

Цифры под штрихкодом — что это такое? Знающие люди говорят, что тут всё просто: именно эти цифры “зашиты” в штрихкод. Девушка на кассе вбивает в программу цифры под штрихкодом — и вуаля — товар найден.

К сожалению, это заблуждение. Цифры под штрихкодом не “зашиты” в штрихкод. Для разговоров у камина сойдет, а для айтишника беда.

Надписи под штрихкодом называются Human readable interpretation (HRI). Одно только название уже должно наводить на мысль, что тут не всё в порядке.

В самом мягком варианте вера в то, что цифры под штрихкодом повторяют содержимое штрихкода — это примерно как верить в то, что название файла определяет его содержимое. Типа: “Переименовала ваш файл в .doc, но он всё равно не открывается”.

Рассмотрим подробнее, где тут собака зарыта.

Кассовый штрихкод

Пример про кассовый штрихкод — для затравки. Он на самом деле не вызывает никаких проблем, потому что за 50 лет использования в софте и оборудовании были вставлены 1000 костылей, чтобы обойти все проблемы (ну почти). Зато он хорошо иллюстрирует вопрос.

Вот в этих двух штрихкодах (EAN-13) ниже, под которыми написано “4601200000003” и “0123456789128”, в обоих нет штрихов для первой цифры. В первом штрихкоде нет штрихов для “4” (она закодирована другим способом), а во втором штрихкоде вообще в принципе нет лидирующего нуля, хотя он и напечатан под штрихкодом.

Новые штрих-коды продуктов и европейский артикул

Новые штрих-коды продуктов и европейский артикул

Да-да, именно первой цифры, а не последней (чексуммы) как можно было бы подумать. Последняя цифра (чексумма) в полосках этих штрихкодов как раз-таки есть, иначе затея с чексуммой не будет работать.

Рассмотрим поближе, что тут происходит.

В первом приведенном штрихкоде (“4601200000003”) в начале идут две длинные полосочки, они кодируют “начало штрихкода”, далее идут штрихи и пропуски для цифры “6”, затем про цифры “0”, “1”, “2”, “0” и “0”, две длинные полосочки в центре говорят про середину, затем пять одинаковых групп штрихов и пропусков кодируют “00000”, далее идут штрихи и пропуски для цифры “3” и завершающие две длинные полоски про конец штрихкода. Итого, в штрихкоде есть штрихи только про “601200000003”. Цифра “3” (последняя) в полосках штрихкода есть, а первой “4” нет! Откуда же взялась “4”?

Дело в том, что “4” закодирована грязным хаком. Для неё не хватает места, и вообще всё это большой исторический казус.

Изначально такие кассовые штрихкоды появились в США, там они состоят из 12 цифр и называются UPC (Universal Product Code). Для переноса технологии в Европу и адаптации стандарта Европе нужны были дополнительные цифры, потому что американские 12 все уже были заняты.

Новые штрих-коды продуктов и европейский артикул

Первым товаром, приобретенным по штрих-коду на этикетке, стал блок из 10 жевательных резинок Wrigley Juicy Fruit. Это произошло в супермаркете Marsh города Трой (Огайо) в четверг, 26 июня 1974 года в 8.01 утра. В историю вошли и имя покупателя, и имя кассира, открывших новую страницу розничной торговли. Теперь упаковка жвачки, которая тогда обошлась в 67 центов, вместе с чеком хранятся в музее американской истории Смитсоновского института.

Чтобы расширить емкость, можно было бы просто добавить еще немного штрихов и пропусков, но в те времена это серьезно ухудшало считываемость. Поэтому вместо того, чтобы просто увеличить штрихкод в ширину, был применен “хак”.

По американскому стандарту любая из цифр штрихкода может быть записана: а) обычными штрихами и пропусками; б) их зеркальным отражением; в) инверсией черного и белого; г) зеркальной инверсией. Всё это нужно для того, чтобы можно было печатать инверсные штрихкоды (белым по черному) и сканировать штрихкод вверх ногами (зеркальное отражение в случае штрихкода — то же самое, что и поворот на 180°).

В “американском” штрихкоде (который на 12 цифр) первые 6 цифр кодируются обычными штрихами, а вторые 6 цифр инвертированными штрихами (где черные штрихи заменены на белые полоски и наоборот). Это сделано для того, чтобы понимать, перевернут штрихкод или нет, нормально я его сканирую или вверх ногами (и затем декодировать цифры в правильном порядке, а не задом наперед).

В новом “европейском” штрихкоде (который на 13 цифр), первая цифра (например, “4”) кодируется не штрихами, а путем «перетасовывания» способов кодирования следующих за ней 6 цифр из первого блока (второй блок из 6 оставили в покое).

Например, следующая за четверкой “6” выводится как обычно, штрихи следующего за ней “0” выводятся в обратном порядке (зеркально), следующие за ней “1” и “2” выводится снова в обычном виде, следующие два “0” снова зеркально. Общая длина штрихкода и число штрихов в результате этого трюка не меняется.

Для “американского сканера” такая белиберда не имеет смысла, а для Европы это тайный знак того, что в штрихкоде закодирована еще одна цифра! (да, мы всегда знали, что европейцы извращенцы).

Для всех цифр от “1” до “9” были придуманы такие правила тасовки способов кодирования. Для “0” ничего нет, т.е. 13-значный штрихкод с лидирующим нулем визуально ничем не отличается от 12-значного штрихкода без этого лишнего ноля (EAN-13 с лидирующим нулем эквивалентен UPC-А).

Из этого получается первый прикол, что если перед нами “американский” штрихкод (в котором варианты кодирования не “перетасованы”), то “американский сканер” читает 12 цифр, а условный “европейский сканер” может считать, что в нем есть лидирующий «0», и считывать лишний ноль (т.к. для кодирования ноля не предусмотрено никакой “перетасовки”, этого “лидирующего нуля” очевидно в принципе нигде нет в штрихкоде).

Конечно, мир давно глобализован, поэтому “американский” сканер и “европейский” сканер — это просто условности. Сканер один и тот же, но у него есть настройка: нужно ли ему в принципе считывать EAN-13 (Европа) или читать только UPC-А (США), а если считывать EAN-13, то надо ли добавлять лишний ноль к американским штрихкодам UPC-А.

С этим связана одна распространенная проблема при внедрении штрихкодирования: когда в базе данных у компании либо нет нолей в начале штрихкодов, а сканер считывает с “лишним” нолем, либо наоборот, в базе данных есть ноль в начале, а сканер его “не считывает” (хотя, что там считывать, — этого ноля в принципе в штрихкоде нет).

Казалось бы, сложно накосячить в использовании EAN-13/UPC. Тем не менее, люди делают следующие ошибки:

  • Сохраняют штрихкод в учетной системе без чексуммы (последнего знака).
  • Забывают обрабатывать присутствие/отсутствие лидирующего нуля при разработке алгоритма поиска по штрихкоду.
  • Требуют ввода 13 символов, а потом приходят сигареты с EAN-8 (с вводом маркировки табака станет неактуально, но пока так).
  • Не оставляют положенных широких белых полей справа и слева от штрихкода.

В наших программных продуктах, таких как “Магазин 15” или “Склад 15”, построенных на платформе Mobile SMARTS, мы решаем эту проблему очень просто: сканер устройства всегда автоматически настраивается на возврат ноля, а поиск товара по базе данных производится два раза: и с нолем, и без ноля (чтобы уж точно найти товар).

Сканер мы стараемся настраивать программно, без участия человека. Если сканер нельзя настроить программно — то это всегда проблема, потому что по умолчанию сканером может обрезаться не только 0 (который в начале), но еще и чексумма (которая в конце), тогда в программу придут не 13, а уже 11 символов, зачастую даже без указания типа штрихкода (такие замечательные сканеры тоже бывают).

В этом случае мы бессильны улучшить результат. 11 символов могли прийти от сканирования любого другого типа штрихкода, мы не можем считать все штрихкоды как EAN-13. Чтобы настроить сканер, человеку придется сканировать с листа настроечные штрихкоды или заходить в какие-нибудь меню, а всё это — источники ошибок.

GS1 DataMatrix

Этот пример стал популярным благодаря введению обязательной маркировки товаров. История полна граблей, велосипедов и трупиков мелких животных, как сарай вашей бабушки.

Ну ладно, допустим с EAN-13 можно придраться и сказать, что первая цифра всё-таки есть в штрихкоде, просто она закодирована не совсем штрихами (хотя для лидирующего “0” это и не так).

Возьмем тогда другой пример, штрихкод GS1 DataMatrix «(21)abba01(01)04601200000003»:

Новые штрих-коды продуктов и европейский артикул

В этом штрихкоде “внутри” нет ни скобок, ни символа «0», ни буквы «a», ни переноса строки.

Что тут происходит?

Во-первых, никакие скобки в штрихкод не кодируются, они печатаются только для удобства прочтения человеком. Это снова называется Human readable interpretation (HRI), привет, кожаный мешок.

Во-вторых, в штрихкоде есть специальные управляющие символы, которые должна расставить та программа, которая формирует данные для штрихкода. Не какая-то бесплатная opensource программа, написанная умными очкариками, а ваша программа, та самая, которую пишете Вы, мой друг. В этот раз символы, которые нужно вставить, не имеют отношения к “коррекции” и т.п., а размечают данные, которые нужно закодировать в штрихкод.

В самом начале в штрихкод вставляется управляющий символ, который называется FNC1 и имеет код 232, что соответствует либо странному печатаемому символу «Þ» (ANSI), либо русской букве “и” (Windows-1251), смотря какую кодировку использовать. Этот символ говорит, что у нас не просто абы какой DataMatrix, а именно GS1 DataMatrix, данные в котором имеют определенный формат: массив данных из пар (“код поля”, “значение поля”).

Этот управляющий символ FNC1 попадает в самое начало штрихкода, но его нельзя “передать” в штрихкод в составе данных.

Кроме того, непечатаемые символы, вполне очевидно, нельзя копипастить в составе строки, хаха! Страдай, кожаный мешок!

Указание, нужен префикс или не нужен, обычно передают как отдельную настройку (галочку) в программу формирования штрихкода. Если передать префикс как часть данных, то получим либо ошибку, либо два префикса в штрихкоде (в зависимости от используемой программы).

Далее, поскольку в штрихкоде внутри нет скобок, то уже непонятно, где кончается одно поле и начинается другое, где тут номера полей. Без скобок получается “21abba010104601200000003” (тут “01” встречается три раза, ха-ха).

Где заканчивается “01” из значения поля (21) и начинается настоящее (01)?

Это решается следующим способом:

По стандарту GS1 поля имеют формат. Не абы что, а формат значения. Например, значение для (01) должно состоять из 14 цифр и баста (нельзя 13 цифр, нельзя 12 цифр, нельзя не цифры). А поле (21), наоборот, имеет переменную длину, разрешены цифры, латинские буквы обоих регистров, знаки препинания и даже (опачки!) скобки.

Если после значения для (21) штрихкод не закончился, и там еще что-то есть, то в данные вставляется разделитель (это может быть снова или FNC1, или непечатаемый символ GS с кодом 29).

А общее правило звучит так: спецсимвол GS не вставляется, только в случае если AI начинается с пары цифр из этой вот таблицы:

Новые штрих-коды продуктов и европейский артикул

Для всех остальных полей GS1 (не из этой таблицы) в конце значения нужно вставлять GS.

Т.е., мы получим “FNC121abba01GS0104601200000003” (только помним, что первый FNC1 мы не будем передавать в программу формирования штрихкода, а второй GS — это не строка “GS”, а один символ с кодом 29).

Эти требования — именно про данные, а не про штрихкод DataMatrix, потому что в штрихкод DataMatrix можно положить любые данные, они прекрасно закодируются и прочитаются. Тут речь о GS1 DataMatrix, который имеет определенный формат, и ваша программа должна соблюсти этот формат, прежде чем подавать данные в штрихкод.

Вообще говоря, в мире существуют программы печати штрихкодов, которым можно скармливать данные со скобками и они сами всё разрулят. Но это специализированный софт, который стоит денег, а не тот бестолковый и бесплатный онлайн-генератор штрихкодов, которым вы пользуетесь.

И наконец. То, как это будет напечатано и то, как это будет отсканировано, — две большие разницы. То, как данные печатаются под штрихкодом, и как они передаются сканером — это в чистом виде настройки принтера и сканера.

В нашем примере мы закодировали в штрихкод поля порядке: сначала (21), потом (01), а на изображении под штрихкодом распечаталось сначала (01), потом (21). Это снова называется Human readable interpretation (HRI), и порядок вывода в подписи соответствует правилу “потому что так принято”.

Сканер штрихкодов тоже имеет свои настройки, которые заставляют его переставлять поля, вставлять скобки и другие символы, переносить строки и т.п.

В большинстве случаев сканер прочитает наш штрихкод как “21abba01GS0104601200000003”. Никакого лидирующего FNC1, никаких скобок, GS не печатаемый и не виден в “Блокноте” (нужно использовать хотя бы Notepad+).

И принтер, и сканер могут делать со штрихкодами что хотят: добавлять и убирать символы, менять их местами — ради соответствия гайдлайну или для совместимости со сторонней программой.

Что еще интересно: в этом штрихкоде только 16 байт данных (на 24 символа без скобок).

Вот что тут происходит:

Т.е. чтобы закодировать “a”, нужно записать в штрихкод “b”, чтобы закодировать “1”, нужно записать “2” и т.д., именно поэтому прямо в самом штрихкоде нет байта 97 (значение буквы “a” в ASCII).

Итого, в приведенном штрихкоде “закодировано” в байтах 232, 151, 98, 99, 99, 98, 131, 232, 131, 134, 190, 142, 130, 130, 130, 133. И это еще до кодов коррекции и паддинга!

Непонимание процесса кодирования приводит к тому, что, например, для начавшейся обязательной маркировки обуви люди печатают на принтер неправильно сформированные данные и получают неправильные штрихкоды, которые выглядят вполне нормально, читаются приложением “Честный знак”, но данные в них неверные, как минимум это не GS1 DataMatrix.

Штрихкоды неправильно напечатаны, неправильно читаются, и такая обувь не считается правильно промаркированной.

В своем софте “Кировка” мы боремся с этим следующим образом: для печати принимаем в качестве исходных данных любой мусор, пытаемся распарсить его как GS1 DataMatrix, разбираем на косточки. Если всё прошло удачно, то конвертируем в правильный формат, чтобы принтер это понял; а при сканировании перепроверяем данные от сканера, делая таким образом вывод о правильности печати.

Для этого нам, конечно, приходится работать на нативном уровне и со сканером мобильных устройств, и с принтерами, чтобы всё это было правильно ими интерпретировано, а мы собирали максимально полную информацию.

Выполним еще одно упражнение: посмотрим, какого размера должен быть штрихкод GS1 DataMatrix для хранения кода маркировки обуви и легпрома.

На сайте «Честного знака» написано, что код маркировки обуви должен содержать следующие поля (для легпрома те же требования):

  • Кода товара, 14 цифровых символов (GTIN).
  • Индивидуального серийного номера единицы товара, который генерируется оператором системы или участником оборота товаров, 13 символов (s/n).
  • Ключ проверки, предоставляемый оператором системы, 4 символа.
  • Код проверки, предоставляемый оператором системы, 88 символов.

Для каждого из этих полей в данных для штрихкода должен быть указан идентификатор применения GS1 (AI, application identifier).

Новые штрих-коды продуктов и европейский артикул

Таблица codeword для DataMatrix

Таблица, объясняющая кодирование КМ обуви в DataMatrix:

Как видно, размер данных в теории может меняться в широких пределах от 68 до 118 байт. На практике разброс меньше, длина ближе к 118, потому что в серийном номере и в криптокоде мало цифр и много знаков препинания, включая скобки.

Согласно GS1 DataMatrix Guideline, такие данные укладываются в штрихкоды размером от 36х36 до 44х44 (колонок и строк битов, не миллиметров). В миллиметрах размер будет зависеть от разрешающей способности принтера (обычно это 203-600 dpi).

Новые штрих-коды продуктов и европейский артикул

Таблица из GS1 DataMatrix Guideline

А как же голая Эмма Уотсон? Рассмотрим в следующей статье.

ТОВАРНЫЙ ШТРИХ-КОД ПРОИЗВОДИТЕЛЯ стран и его расшифровка (Таблица)

Штрих-код производителя — это последовательность черных и белых полос, представляющая некоторую информацию в виде, удобном для считывания техническими средствами. Информация, содержащаяся в коде может быть напечатана в читаемом виде под кодом (расшифровка). Штриховые коды используются в торговле, складском учете, библиотечном деле, охранных системах, почтовом деле, сборочном производстве, обработка документов. В мировой практике торговли принято использование штрихкодов символики EAN для маркировки товаров. В соответствии с принятым порядком, производитель товара наносит на него штриховой код, формируемый с использованием данных о стране местонахождения производителя и кода производителя. Код производителя присваивается региональным отделением международной организации EAN International. Такой порядок регистрации позволяет исключить возможность появления двух различных товаров с одинаковыми кодами.

Существуют различные способы кодирования информации, называемые (штрихкодовыми кодировками или символиками). Различают линейные и двухмерные символики штрих кодов.

Линейными (обычными) в отличие от двухмерных называются цифровые коды, читаемые в одном направлении (по горизонтали). Наиболее распространенные линейные символики: EAN-13, EAN-8, UPC-А, UPC-Е, Code39, Code128, Codabar, Interleaved 2 of 5. Линейные символики позволяют кодировать небольшой объем информации (до 20-30 символов – обычно цифр) с помощью несложных штрихкодов, читаемых недорогими сканерами. Пример кода символики EAN-13:

Новые штрих-коды продуктов и европейский артикул

Двухмерными называются символики, разработанные для кодирования большого объема информации (до нескольких страниц текста). Двухмерный штрих-код считывается при помощи специального сканера двухмерных кодов и позволяет быстро и безошибочно вводить большой объем информации. Расшифровка такого кода проводится в двух измерениях (по горизонтали и по вертикали). Ниже показаны примеры двухмерных штрих-кодов по порядку QR-код, Datamatrix, PDF417 (акцизные марки на алкогольной продукции), Aztec.

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

Для считывания штрих-кодов используются специальные сканеры 1D (для линейных) и 2D (для двумерных), QR-код можно считывать камерой телефона и распознать через специальное приложение.

Расшифровка штрих-кода производителя

C помощью штрихового кода зашифрована информация о некоторых наиболее существенных параметрах продукции. Наиболее распространены американский универсальный товарный штрих-код UPC и Европейская система кодирования EAN. Наиболее распространенные EAN/UCC товарные номера EAN-13, EAN-8, UPC-A, UPC-E и 14-разрядный код транспортной упаковки ITF-14. Так же существует 128 разрядная система UCC/EAN-128. Согласно той или иной системе, каждому виду изделия присваивается свой номер, состоящий чаще всего из 13 цифр (EAN-13).

Расшифровка штрих-кода стран производителей EAN-13:

Возьмем, к примеру, цифровой код и расшифруем его:

(код страны) — первые две или три цифры означают страну происхождения (изготовителя или продавца) продукта, в данном случае это Украина,

(код изготовителя) — следующие 4 или 5 цифр, в зависимости от длинны кода страны, говорят кто предприятие-изготовитель,

(код товара) — еще пять цифр это наименование товара, его потребительские свойства, размеры, масса, цвет.

(контрольная цифра) — последняя цифра используется для проверки правильности считывания штрихов сканером.

Поле «кода товара» в свою очередь тоже расшифровывается:

1-я цифра: наименование товара,

2-я цифра: потребительские свойства,

3-я цифра: размеры, масса,

4-я цифра: ингредиенты,

5-я цифра: цвет.

Новые штрих-коды продуктов и европейский артикул

Проверка штрих кода на подлинность

Проверка штрих-кода на подленность заключается в вычислении контрольной цифры, если они совпали то вероятнее всего товар подленный (но это не 100%), но в первую очередь это говорит о том что штриховой код будет правильно сканироваться сканером.

Вычислим котрольную цифру на примере цифрового кода  (6 — это контрольная цифра):

Алгоритм вычисления контрольной цифры для определения подлинности товара

1.  Сложить цифры, стоящие на четных местах:  + + + + + =

2.  Полученную сумму умножить на 3:  x =

3.  Сложить цифры, стоящие на нечетных местах, без контрольной цифры:  + + + + + =

4.  Сложить числа, указанные в пунктах 2 и 3:  + =

5.  Отбросить десятки:  получим

6.  Из 10 вычесть полученное в пункте 5:  — =   (в нашем примере контрольная цифра совпала)

Если полученная после расчета цифра не совпадает с контрольной цифрой в штрих-коде, то есть вероятность, что товар произведен незаконно.

Таблица соответствия штрих-кода производителя стран мира

Все штрих-коды стран производителей, которые не были указаны в таблице выше, зарезервированы для будущего использования ими. По мере выхода их из резерва мы будем обновлять таблицу.

В комментариях часто спрашивают «почему страна в штрих коде товара не соответствует со страной указанной на этом же товаре?»

ОТВЕТ. «В соответствии с правилами GS1 приоритетное право штрихового кодирования продукции принадлежит владельцу товарного знака (брэнда) или спецификации на производство товара вне зависимости от того, где и кем он произведён. Если по каким-либо причинам владелец торговой марки штриховой код не нанёс, то это может сделать изготовитель. Если и изготовитель товара не нанёс штриховой код, то это делает поставщик (импортёр)»

У этого термина существуют и другие значения, см. код (значения).

История изобретенияПравить

В 1948 году Бернард Сильвер (Bernard Silver) (1924—1963), аспирант Технологического института при Дрексельском университете в Филадельфии, услышал, как президент местной продовольственной сети просил одного из деканов разработать систему, автоматически считывающую информацию о продукте при его контроле. Сильвер рассказал об этом друзьям — Норману Джозефу Вудланду (Norman Joseph Woodland; 1921—2012) и Джордину Йохансону (Jordin Johanson). Втроём они начали исследовать различные системы маркировки. Их первая работающая система использовала ультрафиолетовые чернила, но они были довольно дороги и со временем выцветали.

В 1951 году Вудланд и Сильвер попытались заинтересовать компанию IBM в развитии их системы, которая, однако, признав реализуемость и привлекательность идеи, отказалась от её реализации. IBM посчитала, что обработка получающейся информации потребует сложного оборудования и что его разработку она сможет провести при наличии свободного времени в будущем.

В 1952 году Вудланд и Сильвер продали патент компании Philco (в дальнейшем — Helios Electric Company). В том же самом году Philco перепродала патент компании RCA.

В конце 1950-х и в 1960-е многочисленные инвенторы-изобретатели предлагали другие аналогичные технологии. Среди них следует отметить систему отслеживания железнодорожных вагонов, разработанную Дэвидом Коллинзом из корпорации Sylvania Corporation, в которой использовались серии цветных полосок, изготовленных из отражающих свет материалов, который представляли десятизначные цифры. Компьютер производства Sylvania преобразовывал и передавал эти данные операторам. Когда вагон въезжал на территорию депо, то цветная этикетка отражала свет и световой датчик «декодировал» результаты. Эта система поступила в продажу в начале 1970-х годов, но оборудование было дорогостоящим и громоздким. Коллинз ушел из Sylvania и основал Computer Identics. Он решил использовать черно-белый штрих-код и лазер для сканирования. В конце 1960-х годов Computer Identics установила две таких системы — одну на заводе General Motors, а другую — на оптовой базе General Trading Company в Нью-Джерси.

Способы кодирования информацииПравить

Линейными (также называются полосковыми кодами) называются штрихкоды, читаемые в одном направлении (по горизонтали). Наиболее распространённые линейные символики:

  • EAN (EAN-8 состоит из 8 цифр, EAN-13 — используются 13 цифр)
  • UPC (UPC-A, UPC-E)
  • Code56
  • Code128 (UPC/EAN-128)
  • Codabar
  • «Interleaved 2 of 5»

Линейные символики позволяют кодировать небольшой объём информации.

Пример кода Data Matrix, кодирующего текст: «Wikipedia, the free encyclopedia»

Двумерный штрихкод на медицинском рецепте

Двухмерные символики были разработаны для кодирования большого объёма информации.
Расшифровка такого кода проводится в двух измерениях (по горизонтали и по вертикали).

Двухмерные коды подразделяются на многоуровневые (stacked) и матричные (matrix). Многоуровневые штрихкоды появились исторически ранее, и представляют собой поставленные друг на друга несколько обычных линейных кодов. Матричные же коды более плотно упаковывают информационные элементы по вертикали.

В настоящее время разработано множество двумерных штрихкодов, применяемых с той или иной широтой распространения (таблица Сравнение характеристик штрихкодов). Вот некоторые коды:

Примеры соотношения размеров символов двухмерного штрихкода и ёмкости кода

Хотя радиометки RFID уже не имеют прямого отношения к штриховому кодированию, они являются логическим продолжением системы идентификации. Иногда на радиометки наносится и штриховой код.

Практическое применениеПравить

  • кодировка EAN-13 смогла стать независимой от единого регистратора;
  • для европейского товара не потребовалось вводить дополнительных полей со штрихкодом или второго поля с другим штрихкодом;
  • штриховка американского товара не требовала никаких изменений.

Код EAN-13 с точки зрения кодировки товара условно можно разделить на 5 зон:

  • Префикс национальной организации GS1 (3 цифры);
  • Регистрационный номер производителя товара (4-6 цифр);
  • Код товара (3-5 цифр);
  • Контрольное число (1 цифра);

Отдельно зарезервированы коды, начинающиеся с цифры «2» (префиксы с 200 по 299). Это коды для внутреннего использования предприятиями для собственных целей. Любое предприятие любых регионов мира, а также частные лица могут использовать их как угодно, по своему усмотрению, но исключительно в своих внутренних целях. Использование этих кодов за пределами предприятия запрещено. Внутреннее содержание кодов, начинающихся с 2, может подчиняться любой логике, которое установило то или иное предприятие для себя (обычно это предприятия розничной торговли), и может содержать цену или вес товара, или любые другие параметры. Особенно часто эта кодировка применяется для весового товара. Эти коды может использовать любое предприятие, причём, они нигде специально не регистрируются и никак не регулируются сторонними организациями.

Регистрационный номер производителя товара.
Вторая логическая группа цифр — это код предприятия производителя или продавца товара. Обычно он занимает 4—6 цифр, то есть для каждого регионального префикса может быть зарегистрировано от десяти тысяч до миллиона предприятий. Длина этого поля зависит от политики регионального представительства. В ряде стран размер этого поля зависит от уровня оплаты членских взносов.
Проблема связана с тем, что если длина этого поля больше, то можно зарегистрировать больше предприятий, но при этом каждому предприятию выделяется возможность регистрирования меньшего количества товара. То есть, если код предприятия составляет 6 цифр, то каждому предприятию выделяется пространство для регистрации 1000 единиц товара. Ранее Российское представительство выделяло в качестве кода предприятия 4 цифры, и тогда для кодировки товара предприятие обладало возможностью регистрации ста тысяч единиц товара. В 2000-x году российское представительство приняло решение о выделении вновь регистрируемым предприятиям 6 цифр под код предприятия и 3 цифр под код товара. Это было обусловлено тем, что большая часть предприятий выпускает менее 1000 наименований товара, и это было бы более разумным шагом к более экономному расходованию кодов.

Код товара.
Ранее было сказано, что 3-5 оставшихся цифр выделяется для кодировки самого товара. И длина этого поля зависит от политики регистратора, то есть, в зависимости от того, какую длину кода предприятия выбрал регистратор в качестве базовой. То есть, от одной до ста тысяч наименований. Вопреки сложившемуся мнению, цифровой код самого товара никакой смысловой нагрузки не несёт. Ассоциация рекомендует последовательное присвоение кодов по мере выпуска нового вида продукции без вложения в этот код какой-либо дополнительной смысловой нагрузки. То есть, это ни вес, ни цвет, ни цена, ни что бы то ни было ещё — это всего лишь порядковый номер товара, который компьютер терминала магазина просто берёт из своей компьютерной базы, где хранится как наименование, так и цена товара.

Код товара 999 или 99999 не встречается на упаковках с продукцией, потому что этот код указывает на предприятие как таковое. Код этого специфичного товара в совокупности с остальными частями кода идентифицирует уникальный код самого предприятия (Идентификационный номер предприятия или GLN) в целях автоматизации и обмена документацией. Аналогично и для его подразделений используются коды 998, 997 и 996.

Контрольное число.
Последняя цифра контрольная, используемая для проверки правильности считывания штрихов сканером.

Компьютер не различает части кода. Для компьютера важен уникальный код целиком, и именно этот код целиком прописывается в базу данных торгового предприятия. Исключение могут составлять только коды, начинающиеся с двойки, где предприятие может кодировать свою собственную логику для товара.

Для кодирования товара малой размерности применяется сокращённый код EAN-8, в этом коде отсутствует информация о производителе товара. Региональный регистратор последовательно присваивает товару порядковый номер в общем для всех пространстве номеров по заявкам, присылаемым производителями. Максимальное количество этих кодов значительно более ограничено.

Рельсы, помеченные штриховым кодом.

Расшифровка региональной принадлежности товара для линейного штрихкода

  • Почтовые отправления
  • Единицы хранения
  • Части для сборки

Список примеров в этой статье не основывается на авторитетных источниках, посвящённых непосредственно предмету статьи.

Добавьте ссылки на источники, предметом рассмотрения которых является тема настоящей статьи (или раздела) в целом, а не отдельные элементы списка. В противном случае список примеров может быть удалён.

  • Увеличение скорости прохождения документооборота банковской и др. платежных систем;
  • Минимизация ошибок считывания данных за счет автоматизации процесса;
  • Идентификация сотрудников (корпоративный штрих-код);
  • Организация систем регистрации времени;
  • Унификация бланков для сбора разного вида данных (медицина, статистика и пр.);
  • Упрощение складской инвентаризации;
  • Контроль за наличием и продвижением товаров в магазинах, обеспечение их сохранности и др.

Перспективы в РоссииПравить

  • Для шифровки 13 цифр в коде EAN-13 используется 12 штриховых групп цифр, в левой половине кода каждая цифра может быть закодирована одним из двух видов кодировки, набор видов кодировки, используемый в левой части кода, кодирует тринадцатую цифру.
  • Штрихкод одинаково распознаётся как в фотографическом позитиве, так и в негативе.
  • Код UPC позволяет кодировать до 14 цифр.
  • Некоторые товары одновременно имеют и код EAN, и код UPC.
  • Главный герой серии компьютерных игр Hitman Агент 47 имеет штрихкод на затылке.
  • «штрихкод», согласно gramota.ru
  • Патент США № 2 612 994 от 7 октября 1952. Classifying apparatus and method. Описание патента на сайте Ведомства по патентам и товарным знакам США.
  • История сканеров штрих-кодов тесно связана с розничной торговлей продуктами питания
  • Alan Haberman, Who Ushered In the Bar Code, Dies at 81. // The New York Times, 15.06.2011
  • Кунсткамера // «Наука и жизнь». — 2015. — . — .
  • Райкова Е.Ю. Теоретические основы товароведения и экспертизы. — М.: ИТК «Дашков и Ко», 2012. — С. 73. — 412 с. — (Учебные издания для бакалавров). — ISBN 978-5-394-01691-2.
  • История разработки и отличие EAN от UPC
  • Prefix List // GS1
  • Prefix List Таблица принадлежности префиксов к региональным представительствам GS1
  • Пароль для колбасы. РГ (20 января 2016).
  • C. K. Harmon. Lines of communucations. Bar code and data collection technology for 90s. — Helmers Publishing, Inc., 1994. — P. 21. Архивная копия от 18 мая 2008 на Wayback Machine)
  • Технология Kodak Keycode и её применение. Kodak. Дата обращения: 13 сентября 2014.
  • Giles, G.A. Design and Technology of Packaging Decoration for the Consumer Market. — CRC Press, 2000. — P. 257-259. — ISBN 9780849305061.

СсылкиПравить

  • Руководства по внешнеэкономической стандартизации штрихового кодирования на официальном сайте ассоциации GS1 gs1md.org
  • Алгоритмы формирования штрихкодов с примерами на различных языках программирования
  • Barcode History  (англ.)
  • Описание кодов EAN с объяснением расчёта контрольной цифры

Сравнение характеристик штрихкодов

Текущая версия страницы пока не проверялась опытными участниками и может значительно отличаться от версии, проверенной 6 сентября 2016 года; проверки требуют 29 правок.

Следующая таблица предназначена для сравнения основной и технической информации некоторых двумерных штрихкодов. Для детальной информации по каждому типу штрихкода — смотрите соответствующую статью.

Оцените статью
Карман PC
Добавить комментарий