ВЕСТН. МОСК. УН-ТА. СЕР. ПЕДАГОГИЧЕСКОЕ ОБРАЗОВАНИЕ. 2011. № 3
4 о и и V s z и и и и 1 V
Рис. 1. Штрих-код
В ПЕРЕРЫВАХ МЕЖДУ ЛЕКЦИЯМИ
ШТРИХ-КОД
Д.М. Златопольский
(Московский городской педагогический университет; e-mail: [email protected])
В настоящее время на упаковке большинства товаров имеется ряд вертикальных полосок различной толщины, разделенных пустыми интервалами, под которым написано число (рис. 1):
Как известно такое изображение называется штриховым кодом, или штрих-кодом. Что же это такое и зачем это нужно? Начнем с числа.
В свое время производители товаров и торговые фирмы столкнулись с серьезной проблемой: товаров много (например, средний универмаг оперирует десятью тысячами наименований), и к каждому — длинный сертификат — документ, в котором расписано, где сделан товар, на какой фирме, сколько весит, какие габариты и т.д. Поэтому придумали систему кодирования этой информации в виде последовательности цифр (и штрихового кода). Более 30 лет назад была создана глобальная международная организация система товарных номеров EAN/UCC, образованная на основе Европейской (European Article Numbering Association — EAN International) и Северо-Американ-ской (Uniform Code Council — UCC) ассоциаций товарной нумерации. В настоящее время система EAN/UCC объединяет национальные организации в более чем 100 странах мира. Каждая страна имеет свой номер. Коды стран, как правило, трехзначные (например, Россия имеет номера с 460 по 469). Внутри каждой страны проводится нумерация предприятий-изготовителей товаров. В Российской Федерации национальной организацией товарной нумерации — членом EAN International является Ассоциация автоматической идентификации ЮНИСКАН/EAN РОССИЯ, которая насчитывает более 5000 предприятий-членов. Всем им присвоены уникальные идентификационные номера, которые начинаются с цифр 460 (EAN РОССИЯ).
Каждому продукту назначается уникальный 13-цифровой номер. Его первые три цифры называют префиксом EAN и именно они указы-
4601234567893
вают страну. Следующие 9 цифр содержат номер предприятия, зарегистрированного внутри национальной организации, и номер товара.
Структура 9 знаков, приходящихся на номер предприятия и номер товара, определяется непосредственно национальной организацией, например:
5 знаков — предприятие и 4 знака — товар,
6 знаков — предприятие и 3 знака — товар, и т.п.
В настоящее время ЮНИСКАН/EAN РОССИЯ определила следующую структуру: 6 цифр — номер предприятия, 3 цифры — номер товара. В международной системе EAN/UCC она называется структурой "9/3", так как на префикс национальной организации и номер предприятия отводится 9 цифр, а на номер продукции внутри предприятия — 3 цифры.
Итак, всего всю необходимую информацию о конкретном товаре отражают 12 цифр1. Но внимательный читатель, конечно, обнаружит, что на приведенном выше рисунке в числе не 12, а 13 цифр. Дело в том, что последняя тринадцатая цифра — контрольная. Для чего она нужна — расскажем позднее.
При наличии на упаковке товаров закодированной информации о них можно автоматизировать процесс распознавания этой информации, если считывать ее специальным устройством — сканером. Причем можно, конечно, использовать для распознавания информации о товаре указываемые на упаковке цифры. Но это потребовало бы применения сложной компьютерной технологии распознавания символов. Проще и надежнее это делать с использованием двоичного кодирования этой информации. Нет, речь не идет о том, чтобы представлять число-код в виде цифр двоичной системы счисления. Просто десятичный номер товара изображается на упаковке в виде тех самых вертикальных полосок различной толщины и интервалов между ними, а эта информация является двоичной, хотя на первый взгляд этого и не скажешь.
Если сделать тонкий срез этих полосок, то можно увидеть изображение, показанное на рис. 2 (в увеличенном масштабе):
II III II I
Рис. 2. Увеличенный срез штрих-кода
Эти полоски и пробелы графического изображения штрихового кода предназначены для сканеров. Считывая эту информацию слева направо, сканер присваивает 1 первой встреченной черной полоске и
1 Обращаем внимание на то, что по первым трем цифрам кода определить страну происхождения товара нельзя, так как изготовители имеют право зарегистрироваться не в отечественной организации товарной нумерации, а за рубежом.
0 — первому промежутку. Следующие промежутки и штрихи считы-ваются как последовательности одного, двух, трех или четырех нулей или единиц, в зависимости от ширины штриха или промежутка. Следовательно, все изображение может быть представлено как последовательность битов:
1 0 1 0 0 0 0 1 1 0 0 1 0 1 1 0 0 0 0 1 0 0 1 1 0 0 1 ...
Эти биты и есть двоичное представление десятичного числа — кода товара. При считывании штрихового кода сканер из комбинации штрихов восстанавливает закодированный номер. В крупных магазинах кассир, делая расчет, просто проносит товар, повернув его штрих-кодом вниз, над кассовым аппаратом, и на экране аппарата мгновенно выскакивает цена. Это происходит потому, что кассы со считывателями штрихового кода подключены к компьютеру, который обрабатывает считанную информацию2. Кроме удобства работы кассира и "быстроты" обслуживания покупателя такая автоматизированная система может обеспечить и учет объема продаж того или иного товара, уровень спроса на те или иные изделия, заблаговременно сделать заказ на склад для восполнения запасов товаров на полках торгового зала и т.п.
Некоторых покупателей смущает, если на штрих-коде — только собственно штрихи, а цифр нет. Это — не признак подделки. Для кассового аппарата цифры вообще не имеют значения, и если места на товаре мало, их не ставят. Не нужно пытать продавца и в том случае, если штрих-код узкий или короткий, или вообще "какой-то не такой". Обычно так бывает на мелких по размеру товарах. ЮНИСКАН разрешает производителям таковых использовать сокращенный, 8-цифро-вой, вариант кодировки.
"Как же так?" — скажете вы, — "получается, нам можно на штрих-код вообще не смотреть, там нет полезной для нас информации?" Это не так — есть способ, хотя и несколько трудоемкий, узнать по штрих-коду, поддельный ли товар. Помните, мы говорили, что последняя цифра кода — контрольная? Именно с ее помощью можно проверить правильность кода товара. Итак, если вам крайне важно узнать, с чем вы имеете дело, нужно произвести следующие арифметические действия:
1. Сложить цифры, стоящие на четных позициях; для штрих-кода, изображенного на рисунке в начале статьи: 6 + 0 + 5 + 0 + 0 + 1 = 12.
2. Сумму умножить на 3: 12 х 3 = 36.
3. Сложить цифры, стоящие на нечетных позициях (не учитывая контрольную цифру): 4 + 0 + 9 + 2 + 0 + 0 = 15.
2 Многие думают, что в штрих-коде заложена цена. На самом деле в самом коде данных о цене нет. Ведь один и тот же товар в разных магазинах продается по разным ценам. Но когда товар поступает в данный магазин, принимается решение, по какой цене его продавать, в компьютер заносятся данные о его штрих-коде и цене, так что кассовый аппарат распознает, с каким товаром он имеет дело, и высвечивает заложенную стоимость.
4. Сложить то, что получилось в результате второго и третьего действий: 36 + 15 = 51.
5. От результата отбросить первую цифру. Получится 1.
6. И отнять от 10 то, что получилось в пятом пункте: 10 — 1 = 9.
Этот результат должен совпадать с контрольной цифрой. Если
нет — товар поддельный.
Метод, конечно, сложный. Однако, если вы покупаете дорогую вещь или есть сомнения, доброкачественный ли продукт питания перед вами, имеет смысл произвести эти в общем-то элементарные процедуры3. Ведь отравление и разочарование от неудачной покупки обойдутся гораздо дороже...
И еще. На обложке ряда книг штриховой код не начинается с цифр 460! Но такие книги — не поддельные (©). Просто для книг и ряда других видов товара выделены специальные префиксы.
Список литературы
1. Петцольд Ч. Код. М.: Издательско-торговый дом "Русская редакция", 2001. 560 с.
2. Центр промышленной маркировки. EAN/UPC (URL: http://www.mark-pro.ru/information/code/ean.html 05.04.2011).
Сведения об авторе
Златопольский Дмитрий Михайлович — кандидат технических наук, доцент Московского городского педагогического университета. Тел. (495) 433-02-48; e-mail: [email protected]
3 Конечно, если касса магазина оборудована сканером для считывания штрихового кода, то все за вас сделает компьютер, который по описанному выше алгоритму рассчитает контрольную сумму и сравнит ее с последней цифрой. Совпадение считанного и вычисленного контрольных разрядов означает правильное считывание штрихового кода. В этом случае на сканере появляется соответствующий световой/звуковой сигнал. Если код читается плохо, то одна или несколько цифр кода могут быть при считывании искажены. В этом случае сканер не даст сигнала о правильном считывании. Аналогично, если кто-то придумал свой код из произвольных 13 цифр или если контрольный разряд имеет произвольное значение, то этот штриховой код сканером считываться не будет!