Для чего нужна контрольная цифра
Штрих-код и его расшифровка
Штриховой код представляет собой вид информации, наносимой на упаковку товара, и дающей представление об основных свойствах того или иного товара. Наносится штрих-код либо в виде последовательно располагаемых черных и белых полос, являющихся продолжением идеи азбуки Морзе, либо в виде геометрических рисунков, расположенных в определенной последовательности.
Вопрос: Можно ли внести в форму товарной накладной N ТОРГ-12 такой дополнительный реквизит, как штрихкод?
Посмотреть ответ
Расшифровка и структура
Тринадцатизначный код EAN разделяется на отдельные структурные зоны:
Расчёт контрольной цифры в штрих-коде
Воспользуйтесь приведённым ниже алгоритмом:
Полученная цифра и есть контрольная. Если не совпала — товар может быть произведён незаконно.
Штрих-коды стран производителей
Код производителя | Страна | Национальная организация EAN/UCC |
---|---|---|
00-13 | США и Канада | UCC (U.S.A. & Canada) |
30-37 | Франция | GENCOD-EAN France |
380 | Болгария | BCCI (Bulgaria) |
383 | Словения | EAN Slovenia |
385 | Хорватия | EAN Croatia |
387 | Босния и Герцеговина | EAN-BIH (Bosnia-Herzegovina) |
400-440 | Германия | CCG (Germany) |
45-49 | Япония | Distribution Code Center — DCC (Japan) |
460-469 | Россия | UNISCAN / EAN RUSSIA (Russian Federation) |
471 | Тайвань | EAN Taiwan |
474 | Эстония | EAN Eesti (Estonia) |
475 | Латвия | EAN Latvia |
476 | Азербайджан | EAN Azerbaijan |
477 | Литва | EAN Lithuania |
478 | Узбекистан | EAN Uzbekistan |
479 | Шри-Ланка | EAN Sri Lanka |
480 | Филиппины | PANC (Philippines) |
481 | Беларусь | EAN Belarus |
482 | Украина | EAN Ukraine |
484 | Молдова | EAN Moldova |
485 | Армения | EAN Armenia |
486 | Грузия | EAN Georgia |
487 | Казахстан | EAN Kazakhstan |
489 | Гонконг | HKANA (Hong Kong) |
50 | Великобритания | E Centre UK |
520 | Греция | HELLCAN — EAN HELLAS (Greece) |
528 | Ливан | EAN Lebanon |
529 | Кипр | EAN Cyprus |
531 | Македония | EAN-MAC (FYR Macedonia) |
535 | Мальта | EAN Malta |
539 | Ирландия | EAN Ireland |
54 | Бельгия, Люксембург | ICODIF/EAN Belgium.Luxembourg |
560 | Португалия | CODIPOR (Portugal) |
569 | Исландия | EAN Iceland |
57 | Дания | EAN Danmark |
590 | Польша | EAN Poland |
594 | Румыния | EAN Romania |
599 | Венгрия | EAN Hungary |
600-601 | Южная Африка | EAN South Africa |
609 | Маврикий | EAN Mauritius |
611 | Марокко | EAN Maroc (Marocco) |
613 | Алжир | EAN Algeria |
616 | Кения | EAN Kenya |
619 | Тунис | TUNICODE (Tunisia) |
621 | Сирия | EAN Syria |
622 | Египет | EAN Egypt |
624 | Ливия | EAN Libya |
625 | Иордания | EAN Jordan |
626 | Иран | EAN Iran |
627 | Кувейт | EAN Kuwait |
628 | Саудовская Аравия | EAN Saudi Arabia |
629 | Объединенные Арабские Эмираты | EAN Emirates |
64 | Финляндия | EAN Finland |
690-693 | Китай | Article Numbering Centre of China — ANCC (China) |
70 | Норвегия | EAN Norge (Norway) |
729 | Израиль | Israeli Bar Code Association — EAN Israel |
73 | Швеция | EAN Sweden |
740 | Гватемала | EAN Guatemala |
741 | Сальвадор | EAN El Salvador |
742 | Гондурас | EAN Honduras |
743 | Никарагуа | EAN Nikaragua |
744 | Коста-Рика | EAN Costa Rica |
745 | Панама | EAN Panama |
746 | Доминиканская Республика | EAN Republica Dominicana |
750 | Мексика | AMECE (Mexico) |
759 | Венесуэла | EAN Venezuela |
76 | Швейцария | EAN (Schweiz, Suisse, Svizzera) |
770 | Колумбия | IAC (Colombia) |
773 | Уругвай | EAN Uruguay |
775 | Перу | EAN Peru |
777 | Боливия | EAN Bolivia |
779 | Аргентина | CODIGO — EAN Argentina |
780 | Чили | EAN Chile |
784 | Парагвай | EAN Paraguay |
786 | Эквадор | ECOP (Ecuador) |
789 | Бразилия | EAN Brazil |
80-83 | Италия | INDICOD (Italy) |
84 | Испания | AECOC (Spain) |
850 | Куба | Camera de Comercio de la Republica de Cuba (Cuba) |
858 | Словакия | EAN Slovakia |
859 | Чехия | EAN Czech |
860 | Югославия | EAN YU (Yugoslavia) |
867 | Северная Корея | EAN DPR Korea (North Korea) |
869 | Турция | Union of Chambers of Commerce of Turkey (Turkey) |
87 | Нидерланды | EAN Nederland (Netherlands) |
880 | Южная Корея | EAN Korea (South Korea) |
885 | Таиланд | EAN Thailand |
888 | Сингапур | SANC (Singapore) |
890 | Индия | EAN India |
893 | Вьетнам | EAN Vietnam |
899 | Индонезия | EAN Indonesia |
90-91 | Австрия | EAN Austria |
93 | Австралия | EAN Australia |
94 | Новая Зеландия | EAN New Zealand |
955 | Малайзия | Malaysian Article Numbering Council (MANC) |
958 | Макао | EAN Macau |
Назначение штрих-кода
Введение в действие штрихового кода имело место в 1974 году, хоть патент на его изобретение был выдан в 1962 году.
Изначально назначением штрих-кода было нанесение маркировочных признаков на товары потребления с целью упрощения процедуры передачи товаров на реализацию и их последующей продажи конечным потребителям.
В настоящее время штриховой код имеет и иные функции, а именно:
Местом нанесения штрихового кода является упаковка товара, а способом его нанесения – приклеивание ярлыков с нанесенными на них печатными штрих-кодами.
Виды штрих-кодов
Существует два вида штриховых кодов, дифференцируемых по типу наносимых на товар графических изображений: линейный и двумерный. Различие состоит в способе кодирования информации и в способе ее считывания.
Линейный код читается по горизонтали, то есть в одном направлении. К линейным штрих-кодам относятся следующие подвиды, различающиеся, в том числе, и по количеству включаемых в код символов. Например, код EAN имеет два варианта – восьмизначный и тринадцатизначный. Логично предположить, что 13-значный код включает в себя больший объем информации о товаре.
Однако по сравнению с двумерными кодами все линейные штриховые коды обладают относительно малой информативной емкостью.
Двумерные штриховые коды изначально создавались для включения в них большего объема информации. Для обеспечения желаемой цели была разработана система, позволяющая включать в штрих-код два направления для считывания – горизонтальное и вертикальное.
Дополнительно двумерные штриховые коды дифференцируются на:
Современные двумерные штриховые коды могут вмещать в себя, в зависимости от количества слоев, от 7 до 1900 байт информации о товаре.
Применение в штрих-кодов в РФ
В Российской Федерации наиболее распространенным видом штриховых кодов являются линейный 13-значный и линейный 8-значный.
Предполагается, что в ближайшее время в РФ будет введен в действие расширенный штриховой код, в который будет вноситься информация о дополнительных характеристиках товара. Например:
Считывание
Функциональная польза от штрих-кодов может быть только в случае применения сканеров, считывающих со штрих-кода информацию. То есть отсутствие сканера сделает из штрих-кода всего лишь более или менее красивую картинку.
В настоящее время существуют два вида сканеров – стационарные, то есть кассовые, и портативные, чаще всего выглядящие как небольшая трубка с читающим устройством на одном из ее концов.
Применение того или иного вида сканера обусловлено их разрешительной способностью при считывании информации, объемом товаров, товарооборотом и количеством покупателей.
Сканер, считывая информацию, находится в постоянном контакте с базой данных конкретного субъекта предпринимательской деятельности. То есть, считывая штриховой код, сканер передает в компьютерную сеть не только факт покупки или отгрузки, но одновременно запускает алгоритмы перерасчета остатков продукции на складе и выдает информацию о необходимости пополнения запасов.
Что касается EAN-8:
По сути это младший собрат EAN-13, был введён для малоразмерных упаковок, для таких, где нет достаточно места для нанесения символики EAN-13.
Контрольная цифра
Контрольное число, контрольная цифра — разновидность контрольной суммы, добавляется (обычно в конец) длинных номеров с целью первичной проверки их правильности. Применяется с целью уменьшения вероятности ошибки при обработке таких номеров: машинном считывании с упаковки товара, записи в документы, голосовой передаче от человека к человеку и т. п.
Наличие и правильность контрольного числа не гарантирует достоверность рассматриваемого номера (в том числе не спасает от действий злоумышленников), но на практике достаточно хорошо оберегает от случайных ошибок.
Контрольное число чаще всего это либо последняя цифра суммы всех чисел номера, либо результат другой математической операции над цифрами. В компьютерных программах понятие «контрольного числа» обобщено до CRC, бита чётности и Кодов Рида-Соломона; а в некоторых архиваторах объём контрольных данных таков, что позволяет не только обнаружить ошибку, но и исправить её (обнаружение и исправление ошибок).
Контрольные числа, применяемые в документах, обычно позволяют восстановить 1 потерянную цифру при условиях, что известно, на какой позиции в номере она должна находиться и что остальные цифры в номере правильные. Если неизвестно, на какой позиции есть ошибка, нужно перебрать все возможные варианты (например, для 13-значного номера их будет 13), а из них выбрать наиболее правдоподобные (исходя из анализа содержательной информации в номере). Простое исправление контрольной цифры может привести только к большей ошибке, не связанной с математикой…
Содержание
Примеры использования контрольных чисел в документах
В примерах обычно вычисляется некоторая функция (контрольная сумма) от цифр номера. Если она равна 0, то номер признаётся правильным. (В некоторых случаях удобнее вычислять контрольное число и сверять его с имеющимся. Формально контрольной суммой можно считать разность между имеющимся и вычисленным контрольными числами). Цифры номера нумеруются справа налево: …n3n2n1, так же, как и соответствующие им коэффициенты …k3k2k1. Обычно содержательная информация (код страны, товара, банка и т. п. ) находится в левой части номера, а контрольное число (цифра) является завершающей (самой правой) и имеет номер 1 (n1), однако с математической точки зрения все цифры кода, как правило, равноправны, и любая из них может считаться контрольной для остальных. Значение содержательной части номера можно посмотреть в описании соответствующего кода.
Номера на товарах: Бар-код (Штрих-код) разных типов
Контрольные суммы вычисляются по сходному алгоритму. Кроме того, тот же алгоритм, (таблица обрезается или продолжается влево по очевидному правилу) используется во многих других случаях, например для номеров товаров в магазинах.
k13 | k12 | k11 | k10 | k9 | k8 | k7 | k6 | k5 | k4 | k3 | k2 | k1 | |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
EAN-13 | 1 | 3 | 1 | 3 | 1 | 3 | 1 | 3 | 1 | 3 | 1 | 3 | 1 |
UPC-12 | |||||||||||||
EAN-8 |
Контрольная сумма есть остаток от деления на 10 суммы из цифр номера, умноженных на соответствующие коэффициенты из таблицы. Если контрольная сумма есть 0, то номер признаётся правильным.
Если нужно подсчитать требуемое контрольное число для произвольного номера, нужно вначале поставить «0» на крайнюю правую позицию, посчитать контрольную сумму, а затем, если она не равна нулю, заменить этот «0» на «10 — контрольная сумма».
4600051000057 (сигареты «Прима») — код EAN-13.
4×1+ 6×3+ 0x1+ 0x3+ 0x1+ 5×3+ 1×1+ 0x3+ 0x1+ 0x3+ 0x1+ 5×3+ 7×1=
4+ 18+ 0+ 0+ 0+ 15+ 1+ 0+ 0+ 0+ 0+ 15+ 7= 60.
Контрольная сумма = 0 — номер правильный.
46009333 (папиросы «Беломорканал») — код EAN-8.
4×3+ 6×1+ 0x3+ 0x1+ 9×3+ 3×1+ 3×3+ 3×1=
12+ 6+ 0+ 0+ 27+ 3+ 9+ 3= 60.
Контрольная сумма = 0 — номер правильный.
041689300494 (бензин для зажигалки «
0x3+ 4×1+ 1×3+ 6×1+ 8×3+ 9×1+ 3×3+ 0x1+ 0x3+ 4×1+ 9×3+ 4×1=
0+ 4+ 3+ 6+ 24+ 9+ 9+ 0+ 0+ 4+ 27+ 4= 90.
Контрольная сумма = 0 — номер правильный.
Восстановление контрольного числа. Дан номер 460154602129?, EAN-13 с потерянной контрольной цифрой «?».
4×1+ 6×3+ 0x1+ 1×3+ 5×1+ 4×3+ 6×1+ 0x3+ 2×1+ 1×3+ 2×1+ 9×3+ 0x1=
4+ 18+ 0+ 3+ 5+ 12+ 6+ 0+ 2+ 3+ 2+ 27+ 0= 82.
Контрольная сумма = 2 — номер неправильный, но если вместо «?» подставить «10 — 2» = «8», то номер станет правильным. Таким образом, контрольное число (цифра) есть «8».
Номер «Социальной Карты» (Москва, Россия)
16 цифр. Поскольку Социальные карты москвича выпускаются на основе банковских карт Visa Electron Банка Москвы, номер содержит контрольное число, вычисляемое по обычным правилам для 16-значных банковских карт (см. ниже). 19-значный полный номер Социальной карты москвича (на обороте) также содержит контрольный разряд, вычисляемый с использованием алгоритма Луна.
Номера банковских карт
Номера кредитных карт American Express всегда начинаются на цифру 3, VISA начинается на 4, MasterCard на 5 и Maestro на 6.
Алгоритм тот-же, что и для «Международного идентификационного кода ценной бумаги» (см. ниже)
Международный идентификационный код ценной бумаги (ISIN)
Контрольные суммы вычисляются по сходному алгоритму. Правило продолжения таблицы влево (для длинных номеров) и усечения её для коротких номеров очевидно.
В случае наличия в номере (коде) ISIN английских букв, каждая из них заменяется на 2 цифры, представляющие собой порядковый номер буквы в латинском алфавите, увеличенный на 9 (то есть A
35). Так, буквы RU заменяются на 2730.
k16 | k15 | k14 | k13 | k12 | k11 | k10 | k9 | k8 | k7 | k6 | k5 | k4 | k3 | k2 | k1 | |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
банковские карты, 16 цифр | 2 | 1 | 2 | 1 | 2 | 1 | 2 | 1 | 2 | 1 | 2 | 1 | 2 | 1 | 2 | 1 |
ценные бумаги | ||||||||||||||||
банковские карты, 13 цифр |
Контрольная сумма. Цифры кода умножаются на коэффициенты из таблицы, если результат умножения превосходит 9, то вычитаем из него 9, получившиеся числа складываем. Берём остаток от деления суммы на 10.
Если контрольная сумма есть 0, то номер признаётся правильным.
Восстановление «контрольного числа» аналогично способу для штрих-кода.
4000-0000-0000-6 — 13-значная банковская карта Visa.
Произведения: 4×1, 0x2, 0x1, 0x2, 0x1, 0x2, 0x1, 0x2, 0x1, 0x2, 0x1, 0x2, 6×1;
После вычитания 9: 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6;
Их сумма: 10;
Контрольная сумма = 0 — номер правильный.
5610-0000-0000-0001 — 16-значная банковская карта Australian Bankcard.
Произведения: 5×2, 6×1, 1×2, 0x1, 0x2, 0x1, 0x2, 0x1, 0x2, 0x1, 0x2, 0x1, 0x2, 0x1, 0x2, 1×1;
После вычитания 9: 1, 6, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1;
Их сумма: 10;
Контрольная сумма = 0 — номер правильный.
RU0007661625 — ISIN акции Газпрома номиналом 5 руб.
Буквы RU заменяем на 2730 и получаем 14-значный номер 27300007661625, который и будем проверять.
Произведения: 2×2, 7×1, 3×2, 0x1, 0x2, 0x1, 0x2, 7×1, 6×2, 6×1, 1×2, 6×1, 2×2, 5×1;
После вычитания 9: 4, 7, 6, 0, 0, 0, 0, 7, 3, 6, 2, 6, 4, 5;
Их сумма: 50;
Контрольная сумма = 0 — номер правильный.
DE0001136927 — пример ISIN с сайта Банка Эстонии.
Буквы DE заменяем на 1314 и получаем 14-значный номер 13140001136927.
Произведения: 1×2, 3×1, 1×2, 4×1, 0x2, 0x1, 0x2, 1×1, 1×2, 3×1, 6×2, 9×1, 2×2, 7×1;
После вычитания 9: 2, 3, 2, 4, 0, 0, 0, 1, 2, 3, 3, 9(!), 4, 7;
Их сумма: 40;
Контрольная сумма = 0 — номер правильный.
Номер «Карточки пенсионного страхования» (Россия)
Номер карточки пенсионного страхования (он же СНИЛС) проверяется на валидность контрольным числом. СНИЛС имеет вид: «XXX-XXX-XXX YY», где XXX—XXX-XXX — собственно номер, а YY — контрольное число. Алгоритм формирования контрольного числа СНИЛС таков:
1) Проверка контрольного числа Страхового номера проводится только для номеров больше номера 001—001-998
2) Контрольное число СНИЛС рассчитывается следующим образом:
2.1) Каждая цифра СНИЛС умножается на номер своей позиции (позиции отсчитываются с конца)
2.2) Полученные произведения суммируются
2.3) Если сумма меньше 100, то контрольное число равно самой сумме
2.4) Если сумма равна 100 или 101, то контрольное число равно 00
2.5) Если сумма больше 101, то сумма делится нацело на 101 и контрольное число определяется остатком от деления аналогично пунктам 2.3 и 2.4
P.S. Могу добавить, что алгоритмически удобнее сумму не делить нацело на 101, а из суммы циклически вычитать 101 до тех пор, пока остаток от вычитания не будет меньше 102. Хотя по сути это и есть «деление нацело».
Номера ИНН
Бывают 10-значные (1 контрольная цифра в конце) и 12-значные (2 контрольные цифры в конце).