в штрих коде 12 цифр что означает
Малоизвестные факты о штрихкодах — загадочные цифры под штрихкодом
Число зверя, штрихи смерти — насколько все это реально? Можно ли зашить в штрихкод видеоролик или фото голой Эммы Уотсон? Бывают ли “неправильные штрихкоды”, и что вообще значит “неправильный штрихкод”?
В “Клеверенсе” мы разрабатываем платформу Mobile SMARTS для создания мобильных решений по учету маркированного товара и постоянно сталкиваемся с детскими ошибками в маркировке. Обычно они вызваны простым нежеланием людей хоть немного разбираться в теме.
Наша платформа тоже не идеальна, но кое-что в своём деле мы понимаем. Статья не к тому, что типа мы крутые и разбираемся, а все вокруг не крутые и не разбираются, нет. У каждого свои задачи, мы тоже часто лажаем. Просто тема набирает популярность и выходит в массы, а любые ошибки стоят денег.
Сначала для затравки расскажем про кассовый штрихкод, а затем про загадочный GS1 DataMatrix, который используется в проекте тотальной маркировки товаров.
Сама статья больше развлекательная, всё изложенное при желании легко гуглится, но может и побудить кого-то изучить тему глубже.
Загадочные цифры под штрихкодом
Цифры под штрихкодом — что это такое? Знающие люди говорят, что тут всё просто: именно эти цифры “зашиты” в штрихкод. Девушка на кассе вбивает в программу цифры под штрихкодом — и вуаля — товар найден.
К сожалению, это заблуждение. Цифры под штрихкодом не “зашиты” в штрихкод. Для разговоров у камина сойдет, а для айтишника беда.
Это распространенное заблуждение приводит к тому, что когда встает задача распечатать штрихкод, человек гуглит бесплатный онлайн генератор штрихкода, пихает в поле эти самые цифры, и… получает проблему на ровном месте.
Надписи под штрихкодом называются Human readable interpretation (HRI). Одно только название уже должно наводить на мысль, что тут не всё в порядке.
Рассмотрим подробнее, где тут собака зарыта.
Кассовый штрихкод
Пример про кассовый штрихкод — для затравки. Он на самом деле не вызывает никаких проблем, потому что за 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. Тем не менее, люди делают следующие ошибки:
В наших программных продуктах, таких как “Магазин 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 для хранения кода маркировки обуви и легпрома.
На сайте «Честного знака» написано, что код маркировки обуви должен содержать следующие поля (для легпрома те же требования):
Для каждого из этих полей в данных для штрихкода должен быть указан идентификатор применения GS1 (AI, application identifier).
Таблица codeword для DataMatrix
Таблица, объясняющая кодирование КМ обуви в DataMatrix:
Что | Формат | Codewords | Сколько байт | Всего байт, минимум | Всего байт, максимум |
---|---|---|---|---|---|
— | Codeword [232] | 1 | 1 | 1 | |
AI (00) | — | Codeword [130] | 1 | 2 | 2 |
GTIN | 14 цифр | Codeword со [130] по [229] | 7 | 9 | 9 |
AI (21) | — | Codeword [141] | 1 | 10 | 10 |
s/n | 13 знаков ASCII | Codewords с [1] по [128] и со [130] по [229] | от 7 до 13* | 17 | 23 |
— | Codeword 30 | 1 | 18 | 24 | |
AI (91) | — | Codeword 221 | 1 | 19 | 25 |
Ключ проверки | 4 цифры | Codeword с 130 по 229 | 4 | 23 | 29 |
AI (92) | — | Codeword 222 | 1 | 24 | 30 |
Код проверки | 88 знаков ASCII | Codewords с [1] по [128] и со [130] по [229] | от 44 до 88* | 28 | 118 |
* если в данных для штрихкода есть пары подряд идущих цифр, то они будут кодироваться одним байтом, а не двумя (Codewords со [130] по [229]), и это экономит байты.
Как видно, размер данных в теории может меняться в широких пределах от 68 до 118 байт. На практике разброс меньше, длина ближе к 118, потому что в серийном номере и в криптокоде мало цифр и много знаков препинания, включая скобки.
Согласно GS1 DataMatrix Guideline, такие данные укладываются в штрихкоды размером от 36х36 до 44х44 (колонок и строк битов, не миллиметров). В миллиметрах размер будет зависеть от разрешающей способности принтера (обычно это 203-600 dpi).
Таблица из GS1 DataMatrix Guideline
А как же голая Эмма Уотсон? Рассмотрим в следующей статье.
Штрих-коды стран мира – таблица и расшифровка
Штрих-код – это уникальный идентификатор (ID) для каждого товара. По задумке, каждый товар от каждого производителя каждой страны должен иметь свой уникальный штрихкод, если у двух разных товаров код одинаков – кто-то где-то ошибся и может понести за это наказание. Ниже – о том, какие штрихкоды существуют, как их расшифровывать, можно ли проверить подлинность товара по штрихкоду, как получить «свой» код для товара.
Подробнее о штрих-кодах
Правильное название – штриховой код, но все пользуются сокращенными: штрихкод или штрих-код, по вкусу. Штрихкод был разработан в середине прошлого века американским инженером. Идея была такова: сделать для каждого товара, выпускаемого на рынок США, уникальный код, который можно было бы просто присвоить во время создания и просто считать во время продажи в магазине. Перебрав несколько вариантов, инженер остановился на такой схеме: берем 12 цифр, 2 оставляем для префикса, 4 выделяем на ID производителя, 5 – на ID самого товара, последнюю резервируем в качестве проверочной. Механизм есть, но осталась проблема с реализацией – сканеры того времени не умели считывать цифры, это было слишком сложно.
В итоге инженер разработал систему битового кодирования чисел с помощью полосок – каждой цифре была назначена своя уникальная последовательность черных и белых полос.
Может показаться, что все – просто и прозрачно, но это не так. Как уже упоминалось, сканеры того времени были очень примитивными, и это накладывало свои ограничения. Во-первых, кроме самих закодированных цифр в штрихкоде есть разделители – начало, середина и конец. Это – 3/5/3 полоски, которые немного длиннее остальных, они помогают сканерам ориентироваться. Тихая зона, в свою очередь, помогает сканеру найти эти самые разделители. Во-вторых, перед инженером стоял непростой вопрос: как считать штрихкод, если его сканируют перевернутым? Решение состояло в том, что линии, кодирующие цифры в левой и правой половине кода, отзеркалены по цвету – если вы присмотритесь, то увидите, что 0 из левого кода – «негатив» 0 из правого кода. Если сканер при считывании первой цифры натыкается на «негатив» – он понимает, что штрихкод перевернут, и считывает остальные символы так же в «негативе». Так инженеры и «крутились» вокруг ограничений в прошлом веке, когда технологии еще не были развитыми.
Итак, система прижилась в США – появился регулятор, который начал выдавать уникальные ID производителям, производители разработали систему присваивания уникальных ID своим товарам, и каждый товар в итоге получил свой штрихкод. Сама система получила название UPC – Universal Product Code. Постепенно товары с «отметками» проникли на рынок Европы, и европейские производители тоже заинтересовались штрихкодами – уж очень они были практичными. Но тут же обозначилась проблема: с помощью UPC нельзя узнать, чья страна является производителем, код не содержит такую информацию. При этом проблему нужно решить так, чтобы сканеры могли считывать и новый код, содержащий информацию о стране, и старый, не содержащий эту информацию, с минимальными изменениями в ПО сканера. Выход оказался простым – добавили еще одну цифру в начале. Первые 3 цифры стали кодом страны, а пул цифр, начинающийся на 0 или 1, оставили за США и Канадой в целях обратной совместимости. Если в штрихкоде только 12 цифр – это американский штрихкод, сканер автоматически добавляет к нему 13-ю цифру в начале – 0. Новый формат назвали EAN-13 (European Article Number), иногда можно встретить название UPC/EAN-13.
Последний момент о штрихкодах, который хочется обсудить – разнообразие форматов. Все штрихкоды делятся на 2 больших семейства: линейные и матричные (двухмерные). Линейные – это когда вся закодированная информация располагается в линию, они выглядят вот так:
В матричных кодах информация располагается в двумерной матрице, из-за чего в код можно добавить намного больше информации. Выглядят они вот так:
Есть еще радиокоды – дальнейшее развитие технологии. Радиокоды «вшиваются» либо в защитные замки, которые вешают в товар, либо в специальные стикеры на товаре, считываются такие коды специальными радиоустройствами. Ниже мы будем расшифровывать самый популярный линейный штрихкод – EAN-13.
Таблица штрих-кодов производителей стран мира
Если код начинается на 0, 1 или имеет 12 цифр – товар произведен в США или Канаде. Что касается остальных производителей – ниже предоставлены таблицы. Для удобства разобьем штрих коды стран производителей по первой цифре, чтобы вам было удобнее ориентироваться.
Страна | Штрихкод |
Франция | 300-379 |
Болгария | 380 |
Словения | 383 |
Хорватия | 385 |
Босния и Герцеговина | 387 |
Страна | Штрихкод |
Германия | 400-440 |
Россия | 460-469 |
Киргизия | 470 |
Эстония | 474 |
Латвия | 475 |
Азербайджан | 476 |
Литва | 477 |
Узбекистан | 478 |
Шри-Ланка | 479 |
Филиппины | 480 |
Беларусь | 481 |
Украина | 482 |
Молдавия | 484 |
Армения | 485 |
Грузия | 486 |
Казахстан | 487 |
Таджикистан | 488 |
Япония | 490-499 |
Страна | Штрихкод |
Великобритания | 500-509 |
Греция | 520 |
Ливан | 528 |
Кипр | 529 |
Албания | 530 |
Северная Македония | 531 |
Мальта | 535 |
Ирландия | 539 |
Люксембург | 540-549 |
Бельгия | 540-549 |
Португалия | 560 |
Исландия | 569 |
Дания | 570-579 |
Польша | 590 |
Румыния | 594 |
Венгрия | 599 |
Страна | Штрихкод |
ЮАР | 600-601 |
Гана | 603 |
Бахрейн | 608 |
Маврикий | 609 |
Марокко | 611 |
Алжир | 613 |
Кения | 616 |
Кот-д’Ивуар | 618 |
Тунис | 619 |
Сирия | 621 |
Египет | 622 |
Ливия | 624 |
Иордания | 625 |
Иран | 626 |
Кувейт | 627 |
Саудовская Аравия | 628 |
ОАЭ | 629 |
Финляндия | 640-649 |
Китай | 690-695 |
Страна | Штрихкод |
Норвегия | 700-709 |
Израиль | 729 |
Швеция | 730-739 |
Гватемала | 740 |
Сальвадор | 741 |
Гондурас | 742 |
Никарагуа | 743 |
Коста-Рика | 744 |
Панама | 745 |
Доминиканская Республика | 746 |
Мексика | 750 |
Канада | 754-755 |
Венесуэла | 759 |
Швейцария | 760-769 |
Колумбия | 770 |
Уругвай | 773 |
Перу | 775 |
Боливия | 777 |
Аргентина | 779 |
Чили | 780 |
Парагвай | 784 |
Эквадор | 786 |
Бразилия | 789-790 |
Страна | Штрихкод |
Италия | 800-839 |
Испания | 840-849 |
Куба | 850 |
Словакия | 858 |
Чехия | 859 |
Черногория | 860 |
Сербия | 860 |
Монголия | 865 |
КНДР | 867 |
Турция | 869 |
Нидерланды | 870-879 |
Республика Корея | 880 |
Камбоджа | 884 |
Таиланд | 885 |
Сингапур | 888 |
Индия | 890 |
Вьетнам | 893 |
Индонезия | 899 |
Страна | Штрихкод |
Австрия | 900-919 |
Австралия | 930-939 |
Новая Зеландия | 940-949 |
Мала й зия | 955 |
Отметим, что есть 3 специальных кода: 977, 978, 979. Первый предназначен для журналов и газет, второй – для книг, третий – для музыкальной продукции. При этом изготовитель не обязан пользоваться ими – к примеру, типография, расположенная в России, может использовать для книг как 978 в начале, так и 461.
Расшифровка штрих-кода производителя
Здесь мы объясним, как осуществляется расшифровка EAN-13.
Страна
Чтобы узнать, штрих код какой страны перед вами находится, вам нужно посмотреть на первые 3 цифры 13-значного штрихкода. Если код содержит только 12 цифр – добавьте к нему 0 в начале. Полная таблица кодов, позволяющая определить страну, будет предоставлена ниже, здесь же поговорим про коды, первая цифра которых – 0, 1 или 2. Если код начинается на 0 или 1, то проверить страну очень просто – это гарантированно будет либо США, либо Канада. Причины мы уже объясняли выше, из-за введения 13-й цифры и обратной совместимости с 12-значными кодами Северной Америки было предложено начинать штрих коды стран этого континента с 0, позже за ним «подтянулась» единица.
Если же вы нашли штрихкод, первая цифра которого – 2, то перед вами либо «липовый» код, либо на производстве произошла какая-то ошибка. Дело в том, что коды, начинающиеся с двойки, зарезервированы для внутреннего применения у производителя. То есть для каких-то своих дел (отметить брак, например) производитель может использовать абсолютно любой код, начинающийся с 2, но в продажу выпускать товары с такими штрихкодами запрещено, регулятор за это наказывает. Штрих коды стран никогда не начинаются с 2.
Производитель
Если вы хотели полностью расшифровать код самостоятельно, то здесь вас ждет первая плохая новость – код производителя в разных странах имеет разную длину, от 4 до 6 цифр. И даже в одной стране, к примеру – в России, эта длина может различаться, потому что у России есть несколько кодов страны (от 460 до 469) и для каждого отдельного кода регулятор может указывать свои длины кода производителя/кода товара. Самый простой способ точно узнать код производителя – взять 2 разных товара от него и сравнить между собой штрихкоды. Но это не будет гарантировать вам 100%-ный результат – если, например, первая цифра товара у обоих товаров будет одинаковой, вы можете ошибочно принять эту цифру за последнюю цифру кода производителя.
Товар
За цифрами, обозначающими производителя, следуют цифры, обозначающие номер товара, от 3 до 5 штук. Обратите внимание – номер товара. Внутренний номер, который лично вам ничего не скажет. Эти цифры имеют значение только для самого производителя и для продавца – с их помощью можно вести учет товара. Никаких «скрытых знаний» код товара не несет, код 48 (40, 2, 4, 20, 69..) ничем не отличается от любого другого. Хотя здесь вы можете запомнить 2 полезных момента:
Контрольная цифра
Последняя цифра кода – контрольная. С помощью нее сканер проверяет, верно ли он считал весь код. Как считают контрольную цифру для штрихкода в 12 символов:
Для примера возьмем вот этот штрихкод:
Цифры на нечетных позициях: 0, 6, 0, 2, 1, 5. Цифры на четных позициях: 3, 0, 0, 9, 4. Все нули откинем. Умножаем оставшиеся цифры из первой группы на 3, получаем: 18, 6, 3, 15. Складываем все: 18 + 6 + 3 + 15 + 3 + 9 + 4 = 58. 5 откидываем, 8 оставляем. Вычитаем восьмерку из 10, получаем 2. Проверочная цифра – 2. Все совпало, штрихкод верен.
У EAN-13 тоже есть проверочная цифра, 13-я. Но так просто рассчитать ее не получится, потому что информация о первой и последней (проверочной) цифре закодирована не в банальном вычислении, а в разности расположения цифр левой половины кода. Для проверки правильности штрихкода из 13 цифр вам лучше воспользоваться онлайн-базами, о которых мы расскажем в следующем разделе, потому что для ручной проверки вам придется «обложиться» сложными таблицами.
Как узнать товар по штрих-коду онлайн
Для проверки товаров по штрихкоду есть множество онлайн-сервисов. Давайте протестируем их, для проверки возьмем вот эту вот колбасу из Пятерочки:
Progaonline
Barcodesdatabase
Учитывая, что эта база предназначена больше для товаров из ЕС и США – неудивительно, что в базе ничего не нашлось.
Service-online
Можно сделать вывод, что товары из СНГ лучше искать в русскоязычных базах, товары из других стран – в англоязычных базах.
Как проверить товар по штрих-коду на подлинность
Если вкратце – то почти никак. Создать поддельный штрихкод – очень просто, вычислить поддельный штрихкод – очень сложно. Есть 2 момента, на которых можно поймать нечестных на руку производителей:
Все, других вариантов нет. Некоторые источники, к примеру, говорят, что знак «>» в конце кода указывает на «подлинность произведенной продукции», но это не так – этот знак просто указывает сканеру, что достигнут конец строки. Кроме того, даже если вы по штрихкоду определите страну производителя, это может вам ничего не дать. К примеру: в России выращивают чай, который потом в виде сырья переправляют в Англию. В Англии производитель этот чай обрабатывает и сортирует по упаковкам, на которые и наносит штрихкод. По итогу вы получаете российский чай с английским штрихкодом. Или юрлицо, производящее чай, зарегистрировано в Великобритании – тогда оно имеет право наносить британский штрихкод даже тогда, когда сам товар производится в другой стране (если за чаем зарегистрирован бренд). В общем, в плане определения качества штрихкод – сомнительный помощник. Подлинность штрихкода как такового проверяется через онлайн-сервисы и указывает только на подлинность штрихкода, но не товара.
Как сделать штрих-код для товара самостоятельно
Сделать штрих код на товар самостоятельно проще всего в специально разработанных для этого сервисах. Как пример: https://barcode.tec-it.com/ru/EAN13
Выбираете тип штрихкода, выбираете начальные данные, задаете параметры последовательности – получаете список штрихкодов и картинки линий штрихкода для скачивания.
А вот получить разрешение на использование штрихкодов – куда сложнее. Выдачей разрешений занимается компаний GS1. Вам нужно написать заявление на вступление в Ассоциацию автоматической идентификации (нужна подпись руководителя и печать), оплатить это вступление (25 000 рублей) и послать заявление + чек на рассмотрение. Вас примут в Ассоциацию, после чего можно будет пользоваться штрихкодами. За членство нужно ежегодно платить 15 000 рублей.
Ответы на частые вопросы
Что делать, если столкнулся с «липовым» штрихкодом?
Для начала – указать руководству магазина на ошибку. Претензию можно внести в книгу жалоб и предложений, в этом случае вам должны будут дать письменный ответ. Скорее всего ответом будет или «извините, производитель ошибся, мы его уведомили», или «производитель сам виноват – с ним и разбирайтесь». Во втором случае вы можете либо просто перестать покупать товары у этого производителя, либо, если есть время и желание, написать жалобу в Роспотребнадзор.
Насколько можно доверять определению «родины» товара на основании штрихкода?
Штрихкод не очень информативен в этом плане, потому что его может наносить не только изготовитель, но и упаковщик/дистрибьютор. Если товар произведен в одной стране, а упакован в другой – наносится тот штрихкод, где товар был упакован. Если вы пытаетесь отследить по штрихкоду родину товара от крупного бренда – у вас ничего не получится, потому что штрихкод будет принадлежать родине бренда, а не товара. Более достоверной будет информация, полученная от штрихкода неизвестного бренда.
На некоторых товарах есть основной штрихкод на 13 цифр, а рядом с ним – дополнительный. Что это за дополнительный код?
Иногда производители добавляют в такие добавочные коды дополнительную информацию – рекомендуемая цена, срок годности и так далее. Учитывая разнообразие кодировок, вам вряд ли удастся узнать, что именно «вшито» в этот дополнительный код. Если есть желание – можете спросить у сотрудников магазина.
На товаре нет 13 цифр, но есть QR-код. Стоит ли мне опасаться?
Нет. 12- или 13-значный код (UPC/EAN-13) очень распространен по историческим причинам, но производитель может выбрать и другой формат – QR, Data Matrix, Aztec и так далее. Главное, что код есть – это значит, что производитель заключил договор с регулятором.
На пачке сигарет нашел штрихкод из 8 цифр. Что это?
Это – EAN-8, упрощенная система «обычного» штрихкода. Она содержит информацию о стране (первые 3 цифры) и информацию о товаре, кодировка производителя опускается. EAN-8 используется на небольших вещах, на которых EAN-13 просто не помещается: сигаретные пачки, ручки, пачки жвачек и так далее.
Вместо вывода
Штрихкод – это уникальный набор цифр и соответствующих им графических символов, который маркирует определенный товар и позволяет отличить один товар от другого. Штрихкоды бывают разными и по виду, и по длине, но самый распространенный – EAN-13, состоящий из 13 цифр. Он содержит в себе код страны, производителя и товара, последний символ – проверочный. Несмотря на информативность для магазинов, штрихкод дает очень мало информации для обычного человека – по нему можно плюс-минус достоверно узнать страну производителя и его идентификатор, информацию непосредственно о товаре он не содержит.