Universal Product Code

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

UPC или Universal Product Code (универсальный товара) — американский стандарт штриха, предназначенный для отслеживания товаров в магазинах. UPC был разработан в 1973 году Джорджем Джосефом Лорером (George Joseph Laurer), работавшим инженером в корпорации IBM. В июне 1974 года первый UPC сканер производства корпорации NCR был установлен в супермаркете Марш (Marsh) в городе Трой (Troy) штата Огайо. 26 июня 1974 года кассиром этого супермаркета был просканирован первый товар — блок 10 фруктовых жевательных резинок компании Wrigley.


Стандартизация[ | ]

Стандартизацией и регистрацией ов UPC занимались организации UCC (Uniform Code Council, Inc.) в США и ECCC (Electronic Commerce Council of Canada) в Канаде. В 2005 году эти организации объединились с европейской ассоциацией EAN и образовали глобальную организацию по стандартизации GS1. «Национальная организация GS1 в России» является представителем этой организации в Российской Федерации.

ISSN с дополнительным UPC-2 обозначающим 5 номер выпуска.
ISBN с дополнительным UPC-5 обозначающим рекомендуемую цену в $44.95.

Разновидности а:

  • UPC-B — 12-цифровая версия UPC без контрольной цифры, разработанная для National Drug Code (NDC) и National Health Related Items Code.[1][нет в источнике] Эта версия содержит 11 цифр а также ещё 1-цифровой продукта. Эта разновидность не получила широкого применения.[2]
  • UPC-C — 12-цифровой , содержащий продукта и проверочную цифру. Не получил широкого примения.[2]
  • UPC-D — с переменной длиной (12 цифр и более) в котором 12-я цифра является контрольной цифрой. Не получил широкого примения.
  • UPC-E — из 8 цифр, эквивалентный UPC-A но использующий систему сжатия лишних нулей.[3]
  • UPC-2 — из 2 цифр, используемый в дополнение к UPC для обозначения номера выпуска журналов.
  • UPC-5 — из 5 цифр, используемый в дополнение к UPC для обозначения рекомендуемой розничной стоимости товара.
UPC-A и эквивалентный ему UPC-E
UPC-A UPC-E
UPC-A.png UPC-E.png

UPC содержит только числа и никаких букв или других символов.

Усовершенствование а для применения в других странах[ | ]

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

Важно, что сама «штриховка» при таком преобразовании, то есть рисунок EAN-13 для ов, соответствующих UPC, идентична «штриховке» UPC. Таким образом была обеспечена совместимость американских ов для чтения в Европе без какой-либо перепечатки этикеток или переупаковки товара.

Более подробная информация о е EAN-13 и его отличиях от UPC в статье European Article Number.

Общее описание структуры[ | ]

UPC — простой и практически симметричный линейный штрих. Простота, симметричность и высокая помехозащищённость обусловлена недостаточно развитой техникой времён создания этих ов.

состоит из 2 групп цифр, по 6 цифр в каждой группе — левой и правой. Группы цифр окаймляются так называемыми защитными, или ограждающими, штрихшаблонами (Guard Patterns). Эти шаблоны содержат штрихи единичной ширины, которые служат для синхронизации сканера штриха. Наличие именно трёх таких полей обусловлено в первую очередь возможным нанесением штриха на закруглённую поверхность. И если сейчас это не является особой проблемой, то во времена создания этого а сканеру требовалось знать ширину единичного штриха в начале, середине и конце а. Левые и правые защитные шаблоны состоят из 3 штрихов единичной ширины — двух тёмных и одного светлого между ними. Средний защитный шаблон состоит из 5 штрихов — трёх светлых и двух тёмных. Всё остальное — цифры.

Каждая цифра левой или правой группы ируется с помощью четырёх штрихов: двух светлых и двух тёмных. Каждый штрих может иметь относительную ширину в одну, две, три или четыре единицы. Общая ширина штрихов для одной цифры всегда составляет семь единиц. Битовая комбинация для каждой цифры разработана таким образом, чтобы цифры, насколько это возможно, отличались друг от друга. Максимальная длина тёмного или светлого участка не может превышать четырёх единиц. Общая ширина всего а всегда равна 95 единицам. В любом е 29 светлых и 30 тёмных штрихов. Все эти технические решения важны для надёжности и простоты сканирования этого а.

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

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

ировка цифр[ | ]

Таблица ирования штриха UPC-A с шаблоном SLLLLLLMRRRRRRE
«Тихая»
зона
S
(начало)
L
(левый )
M
(середина)
R
(правый )
E
(конец)
«Тихая»
зона
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9
UPC-A Q.svg UPC-A S.svg UPC-A L0.svg UPC-A L1.svg UPC-A L2.svg UPC-A L3.svg UPC-A L4.svg UPC-A L5.svg UPC-A L6.svg UPC-A L7.svg UPC-A L8.svg UPC-A L9.svg UPC-A M.svg UPC-A R0.svg UPC-A R1.svg UPC-A R2.svg UPC-A R3.svg UPC-A R4.svg UPC-A R5.svg UPC-A R6.svg UPC-A R7.svg UPC-A R8.svg UPC-A R9.svg UPC-A S.svg UPC-A Q.svg
ировка цифр для правых и левых частей а
Цифра Левый Правый Ширина линий
0 0001101 1110010 3-2-1-1
1 0011001 1100110 2-2-2-1
2 0010011 1101100 2-1-2-2
3 0111101 1000010 1-4-1-1
4 0100011 1011100 1-1-3-2
5 0110001 1001110 1-2-3-1
6 0101111 1010000 1-1-1-4
7 0111011 1000100 1-3-1-2
8 0110111 1001000 1-2-1-3
9 0001011 1110100 3-1-1-2
ировка защитных шаблонов
Шаблон Слева По центру Справа
Левый защитный шаблон 101
Средний защитный шаблон 01010
Правый защитный шаблон 101



При проектировании структуры а, в условиях ещё не слишком развитой электроники, было важным сделать его как можно более простым для считывания сканером и упростить аппаратную часть самого сканера. Одной из сложностей была проблема вероятного считывания а в обратном направлении, то есть считывания а на товаре, который кассир поднёс к сканеру «вверх ногами». Поэтому очень важно было, чтобы чередование полос было одинаковым в обоих направлениях — сначала тёмный штрих, потом белый, потом опять тёмный и так далее. Да, и ещё было бы неплохо, чтобы положение защитных шаблонов было всегда на одном и том же месте.

Решение было найдено. Можно обратить внимание, что выглядит очень симметрично, то есть количество штрихов справа и слева от центра всегда равно, а ширина правой и левой части штриха одинаковы. То есть механизм считывания штриха всегда одинаков, как этот ни поверни.

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

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

Всё это было определённой перестраховкой и по современным меркам излишеством, но и год был 1973.

Расчёт контрольного числа[ | ]

В е UPC-A (GTIN-12) контрольное число (цифра) рассчитывается следующим образом:

  1. Суммируются все цифры на НЕчётных позициях (первая, третья, пятая, и т. д.) и результат умножается на три.
  2. Суммируются все цифры на ЧЁтных позициях (вторая, четвёртая, шестая, и т. д.).
  3. Числа, полученные на предыдущих двух шагах, складываются, и из полученного результата оставляется только последняя цифра.
  4. Эту цифру вычитают из 10.
  5. Конечный результат этих вычислений и есть контрольная цифра (десятке соответствует цифра 0).

Например, контрольное число для приведённого на рисунке штриха UPC-A «03600029145X», где «X» — это искомая контрольная цифра, рассчитывается путём сложения всех нечётных цифр (0+6+0+2+1+5 = 14), умножается на три (14 × 3 = 42), результат суммируется со всеми чётными цифрами (42+3+0+0+9+4 = 58), отбрасывается всё, кроме последней цифры (58 mod 10 = 8), вычитается из 10 (10 − 8 = 2) и ещё раз, если это необходимо, отбрасывается всё, кроме последней цифры (2 mod 10 = 2). Искомое контрольное число — цифра 2.

При считывании а правильность считывания проверяется похожим способом, но несколько проще:

  1. суммируются все нечётные цифры и умножаются на 3.
  2. суммируются все чётные цифры включая контрольную цифру.
  3. эти суммы складываются и оставляется последняя цифра от результата.

Технически цифры обрабатываются последовательно, за один проход, с умножением каждой цифры на 1 или 3, в зависимости от чётности позиции, добавлением к сумме и взятием остатка по модулю 10 от текущей суммы. Иными словами десятки сразу отбрасываются, что сильно упрощает механизм вычисления.

Если результат равен нулю, то принимается решение, что считан правильно, если любая другая цифра, то однозначно считан неверно.

ировка товара[ | ]

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

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

Теоретический максимум этого а — 100 миллиардов различных видов товара (11 цифр). Казалось бы, огромное число. Но теория не всегда соответствует практике, и нынешняя ситуация такова, что, более чем за 30 лет существования системы, этих ов оказалось недостаточно. Это связано с несбалансированным, расточительным их расходованием.

Первоначально 11 цифр а были распределены следующим образом:

  • Префикс — 1 цифра.
  • производителя — 5 цифр.
  • товара — 5 цифр.

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

Префикс[ | ]

Это первая цифра а. Логически делит ы на виды выпускаемой продукции.

  • 0, 1, 6, 7, 8 — для большей части товаров.
  • 2 — Зарезервировано для внутреннего использования торговыми предприятиями, для весовых товаров. Переменная весовая часть а UPC для таких товаров, как сыры, колбасы, свежие фрукты и других присваивается в магазине во время их упаковки. При этом левая часть а — это внутренний товара в этом магазине, а в правой части а указывается вес или цена. Магазин сам определяет, как ировать такой товар.
  • 3 — Медикаменты и прочая продукция фармацевтики, согласно американскому у National Drug Code (NDC).
  • 4 — Зарезервировано для внутреннего использования торговыми предприятиями для карт покупателя.
  • 5 или 9 — для купонов, но многие торговые предприятия игнорируют это.

Для европейских ов EAN-13 все эти американские префиксы представляются начинающимися с нуля, то есть 01, 02, 03 и так далее. После объединения с европейской ассоциацией в глобальную GS1 Америке были присвоены дополнительные префиксы 10-13 в европейской ировке, которые будут использоваться для ировки обычного товара.

предприятия[ | ]

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

товара[ | ]

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

ировка товара[ | ]

Смысловая нагрузка цифр в наименовании товара: Вопреки сложившемуся мнению, цифровой самого товара (3-5 цифр) никакой смысловой нагрузки не несёт. Ассоциация рекомендует последовательное присвоение ов по мере выпуска новых видов продукции без вложения в этот какой либо дополнительной смысловой нагрузки.

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

«Миф» о заированных трёх шестёрках

Для синхронизации считывания а Джордж Лорер предусмотрел 3 специальных защитных, или ограждающих, поля (Guard Patterns) — левое поле (LGP), центральное поле (CGP) и правое поле (RGP). На рисунке эти поля для наглядности выделены зелёным цветом, на самом деле они белые. Левое и правое поля имеют ширину по три единицы, среднее поле имеет ширину 5 единиц (напомним, любой цифры имеет ширину 7 единиц). Легенда же возникла из-за того, что в одной из ировок (см. таблицу выше) цифра 6 представлена последовательностью 1010000, что визуально можно воспринять как два штриха. Защитные же поля (101 и 01010) так же выглядят как два штриха, но это не имеет никакого отношения к ировке цифры 6, кроме визуального сходства. Сам Джордж Лорер признаёт некоторое сходство этих полей с ированием шестёрки, но считает это случайностью. Также случайностью он считает и тот факт, что его имя, фамилия и отчество (George Joseph Laurer) содержат по шесть букв. Никаких заированных трёх шестёрок в штрихе UPC нет.[4] С другой стороны, Фома Псарас, греческий специалист по компьютерным технологиям, не имеющий никакого отношения к религии, сказал: «Чтобы правильно и безошибочно использовать штрих-, для разделения информации используются потаённые двойные штрихи а, которые волей случая обозначают число 6, в начале, в середине и в конце всякой числовой информации, воспроизводимой с помощью штрих-а».

См. также[ | ]

Примечания[ | ]

  1. NHRIC (National Health Related Items Code). HealthData. U.S. Department of Health & Human Services.
  2. 1 2 UPC and EAN Bar Code Page. www.adams1.com. Дата обращения: 5 марта 2017.
  3. UPC-E SYMBOLOGY. www.barcodeisland.com. Дата обращения: 5 марта 2017.
  4. U.P.C. Questions about 666 Архивировано 6 января 2016 года.

Ссылки[ | ]