https://i.imgur.com/XLE6ei8.jpg
фото: m.fotostrana.ru

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

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

Убеждённый в том, что система реализуема, Вудланд покинул Филадельфию и переехал во Флориду в квартиру своего отца для продолжения работы. Следующую реализацию системы подсказала азбука Морзе: Вудланд сформировал свой первый штриховой код из песка на берегу. Впоследствии он писал: «Я только расширил точки и тире вниз и сделал из них узкие и широкие линии». Чтобы считывать штрихи, он использовал технологию оптической звукозаписи, использовавшуюся в киноиндустрии. 20 октября 1949 года Вудланд и Сильвер подали заявку на изобретение, которая была удовлетворена 7 октября 1952 года.

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

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

Первой покупкой с использованием штрихкода была упаковка жевательной резинки компании Wrigley. Она была совершена в супермаркете Marsh[en] города Трой[en] (штат Огайо) 26 июня 1974 года в 8:01 утра и вместе с чеком хранится в музее американской истории[en] Смитсоновского института.

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

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

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

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

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

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

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

- Aztec Code
- Data Matrix
- MaxiCode
- PDF417
- QR код
- Microsoft Tag

Примеры соотношения размеров символов двухмерного штрихкода и ёмкости кода
Слоёв с данными Размер символа        Байт
1                               15x16                           7
4                               27x27                           53
7                               45x45                           145
11                               61x61                           298
15                               79x79                           502
20                               101x101                   824
26                               125x125                   1314
32                               151x151                   1914

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

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

Торговля
Исторически сложилось так, что в торговле наиболее часто используется код EAN/UPC. Первоначально была разработана американская система UPC, содержащая в себе для кодировки товара 12 цифр, и она обрела такую популярность, что на неё обратили внимание и eвропейские страны. Однако весь диапазон кодов уже был занят для кодирования товаров США и Канады, а товары и фирмы монопольно регистрировались в США. Перед разработчиками европейской кодировки EAN-13 встала серьёзная задача — расширить диапазон кодов и организовать независимую от США систему регистрации, обеспечив максимальную совместимость с кодировкой UPC. Решением стало добавление тринадцатой цифры в крайней слева позиции (она обычно указывается арабской цифрой слева от штрихкода) с помощью 12 цифровых шаблонов, так же как и в UPC. При этом удалось сохранить обратную совместимость EAN-13 с кодировкой UPC — последняя стала подмножеством кодировки EAN-13 с первой цифрой 0.

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

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

- Префикс национальной организации GS1 (3 цифры);
- Регистрационный номер производителя товара (4-6 цифр);
- Код товара (3-5 цифр);
- Контрольное число (1 цифра);
- Дополнительное поле (необязательное штрихкодовое поле, иногда там ставится знак «>», «индикатор свободной зоны»).

Префикс национальной организации. В цифровом обозначении штрихкода первые три цифры (987, см. рисунок) — префикс GS1. Означают код регионального представительства ассоциации GS1 (регистратора), в которой зарегистрировался производитель продукции, и совсем не означает страну происхождения (изготовителя или продавца) продукта. Ассоциация не запрещает регистрацию предприятия у регистратора другой страны. Хотя большинство предприятий регистрируется в представительстве ассоциации своей страны, это совсем не означает, что продукция произведена именно в этой стране. Подробную информацию о префиксах можно найти на сайте российского представительства GS1.

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

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

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

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

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

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

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

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

Кроме того, имеется официальный список префиксов GS1 на информационном портале российской национальной организации. Однако стоит помнить, что наличие кода страны на упаковке товара может не являться показателем происхождения товара именно из этой страны.

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

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

Перспективы в России
В 2017 году на упаковки с продуктами, продаваемыми в российских магазинах, предполагается наносить «расширенный» штрихкод, где будет представлена дополнительная информация о товаре, например, в случае с молочной продукцией: где и когда осуществлялась дойка коровы и какие лекарства она принимала; в случае с рыбной продукцией: сколько рыбы поступило в производство и сколько филе было из неё изготовлено, а также кто конкретно её обрабатывал. Расшифровать информацию с таких штрихкодов может любой покупатель с помощью смартфона.

Интересные факты
- При считывании кода в микроконтроллер передаётся кодовая комбинация целиком, включая и разделительные знаки. Корректное направление прочтения последовательности определяется посредством контроля чётности (parity check)
- Для шифровки 13 цифр в коде EAN-13 используется 12 штриховых групп цифр, в левой половине кода каждая цифра может быть закодирована одним из двух видов кодировки, набор видов кодировки, используемый в левой части кода, кодирует тринадцатую цифру.
- Штрихкод одинаково распознаётся как в фотографическом позитиве, так и в негативе.
- При монтаже кинофильмов используется штриховой Keykode футажных номеров негатива, пропечатанных в рабочем позитиве.
- Знак «>» (повёрнутая на 90 градусов буква V) в конце штрихкода не является частью данных, но резервирует место правой мёртвой зоны, не содержащей никаких штрихов и необходимой для надёжного считывания сканерами
- Код UPC позволяет кодировать до 14 цифр.
- Некоторые книги имеют код с префиксом страны, а не 978.
- Некоторые периодические издания имеют код с префиксом страны, а не 977.
- Некоторые товары одновременно имеют и код EAN, и код UPC.
- Главный герой серии компьютерных игр Hitman Агент 47 имеет штрихкод на затылке.