Universal Product Code

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

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

Стандартизация

править

Стандартизацией и регистрацией кодов 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 содержит только числа и никаких букв или других символов.

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

править

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

При таком преобразовании структура штрихов (штриховка) остаётся идентичной UPC. Таким образом была обеспечена совместимость американских кодов для чтения в Европе без какой-либо перепечатки этикеток или переупаковки товара.

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

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

править

Код состоит из двух групп цифр по шесть цифр в каждой — левой и правой. Группы цифр окаймляются защитными (ограждающими) штрих-шаблонами (Guard Patterns). Эти шаблоны содержат штрихи единичной ширины и служат для синхронизации сканера штрихкода. Наличие трёх защитных полей обусловлено возможным нанесением штрихкода на закруглённую поверхность.

Левые и правые защитные шаблоны состоят из трёх штрихов единичной ширины — двух тёмных и одного светлого между ними. Средний защитный шаблон состоит из пяти штрихов — трёх светлых и двух тёмных. Остальная часть кода — цифры.

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

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

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

Кодировка цифр

править

В UPC-A цифры левой половины кодируются по системе с чётным паритетом, правой половины — с нечётным. Это позволяет сканеру определять направление считывания. При обратном считывании левая половина становится правой, и сканер автоматически переворачивает последовательность.

Таблица кодирования штрихкода UPC-A
ЦифраЛевый код (чётный паритет)Правый код (нечётный паритет)
000011011110010
100110011100110
200100111101100
301111011000010
401000111011100
501100011001110
601011111010000
701110111000100
801101111001000
900010111110100

Защитные шаблоны:

  • Левый и правый: 101
  • Средний: 01010

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

править

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

  1. Суммируются цифры на нечётных позициях (1-я, 3-я, 5-я, 7-я, 9-я, 11-я, считая слева направо).
  2. Полученная сумма умножается на 3.
  3. Суммируются цифры на чётных позициях (2-я, 4-я, 6-я, 8-я, 10-я).
  4. Результаты двух предыдущих шагов складываются.
  5. Из ближайшего большего или равного числа, кратного 10, вычитается полученная сумма. Если результат равен 10, контрольная цифра равна 0.

Пример для кода 03600029145X (где X — искомая контрольная цифра):

  • Нечётные позиции: 0 + 6 + 0 + 2 + 1 + 5 = 14
  • 14 × 3 = 42
  • Чётные позиции: 3 + 0 + 0 + 9 + 4 = 16
  • 42 + 16 = 58
  • 60 − 58 = 2

Контрольная цифра — 2. Полный код: 036000291452.

При проверке считанного кода контрольная цифра включается в сумму чётных позиций. Если итоговая сумма кратна 10, код считан правильно.

Кодировка товара

править

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

Первоначальная структура кода:

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

Теоретический максимум — 100 миллиардов различных видов товаров. Коды, начинающиеся с 2, зарезервированы для внутреннего использования торговыми предприятиями (весовые товары, карты покупателя и т.п.). Их использование за пределами предприятия запрещено.

Префикс

править

Первая цифра кода:

  • 0, 1, 6, 7, 8 — обычные товары
  • 2 — товары на вес (внутреннее использование магазина)
  • 3 — медикаменты (по коду National Drug Code)
  • 4 — товары для розничных сетей (in-store marketing)
  • 5 или 9 — купоны

Код предприятия

править

Цифры 2–6 (после префикса) — код предприятия, присваиваемый GS1.

Код товара

править

Цифры 7–11 — код товара, присваиваемый предприятием самостоятельно. Рекомендуется последовательное присвоение без смысловой нагрузки.

Миф о трёх шестёрках

править

Для синхронизации считывания Джордж Лорер предусмотрел три защитных поля (Guard Patterns): левое (101), среднее (01010) и правое (101). Визуально защитные поля и кодировка цифры 6 (1010000) имеют сходство. Джордж Лорер считает это случайностью.[4]

См. также

править

Примечания

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

Ссылки

править