Штрихкоды EAN

Опубликовано 01.09.2011 Ведущий Антон Степанов

Почти каждый раз делая покупки в магазине, мы сталкиваемся с использованием на практике методики штрихокодирования и автоматизации торговли с помощью штрих кода. Штрихокодирование было изобретено в середине 20го века и получило всеобщее распространение к его концу. Сам штрихкод — это последовательность черных и белых полос, при считывании которой определенными устройствами, электронная система распознает некую информацию, зашифрованную в этом коде.
Существует множество различных типов штрихкодов. Линейные, двухмерные. Способные содержать больше или меньше зашифрованной информации. Но чаще всего мы сталкиваемся с кодами стандарта EAN — European Article Number, т.е. европейский номер товара. Именно этот штрихкод используется в торговле и наносится на большинство товаров в магазинах по эту сторону Атлантики.
Это линейный код. Может быть сокращенным EAN-8, когда кодируется 8 цифр, но, чаще, расширенным EAN 13, соответственно с кодированием 13тью цифрами. Этот код родственен американскому стандарту UPC - Universal Product Code, почти идентичен ему, различается одной цифрой.
Давайте посмотрим на то, из чего состоит тринадцатизначный баркод. В первую очередь, обратим внимание, что код по краям ограничивают одинаковые штрихи, иногда их называют защитными. По два темных штриха и один белый между ними. Белые штрихи тоже считаются, т.е. всего три штриха. Похожие штрихи и в центре, разделяют группы цифр по шесть штук. Но в центре таких штрихов больше — три светлых и два темных. Эти штрихи необходимы, например, для синхронизации сканера. Данные штрихи имеют единичную, самую малую ширину, и сканерам раньше было необходимо ее оценить перед считыванием. Остальными штрихами закодированы, собственно, цифры кода. Каждая цифра закодирована четырьмя штрихами — по два белых и темных. Они могут быть различной ширины — всего четыре варианта от самого узкого к самому широкому, который равен четырем самым узким подряд. Но если посчитать общую ширину всех четырех штрихов для кодирования одной цифры, то она всегда будет равна семи самым узким штрихам. А общая ширина кода — 95 единиц, с учетом защитных штрихов. Всего существует по три набора кодирования для каждой цифры. Вообще, штрихокодировка сделана так, что сканер всегда без проблем может ее считать. Причем, считать как в прямом направлении, так и в обратном, на случай если товар перевернут. Так же возможно верное чтение даже негатива штрихкода. В любом случае, в коде присутствует контрольное число, требующееся для контроля правильности считывания. Оно самое правое в коде. Рассчитывается следующим образом. Сначала нумеруем числа слева направо, от 13ти до 1цы. Суммируем четные числа и умножаем результат на три. Суммируем нечетные и складываем с полученным перед этим числом. Если это число делится без остатка на десять, то контрольным числом будет ноль. Если нет, то им будет разность ближайшего более крупного числа, делящегося без остатка на десять и полученной нами суммы.
Тринадцатый знак системы EAN расположен левее остальных. Его выбор связан с порядком использования в левой половине кода одного из двух знаковых наборов, в соответствии с таблицей. Описаны десять возможных последовательностей.
И, наконец, о главном, какая же информация зашифрована в коде? Начнем с правой части. Самая правая цифра нам уже знакома — это контрольное число. Остальные пять — код товара, к которому в базе данных привязана определенная информация, например цена. А что слева? Первые два три числа, включая крайний левый символ — это, как правило, код страны производителя. Для России, например, это 460-469. А оставшиеся цифры — код зарегистрированного предприятия - производителя.
Вот так устроен самый популярный код стандарта EAN, European Article Number.