Что такое контрольная цифра?
Контрольная цифра — последняя цифра номера штрихкода. Она не случайна: она вычисляется из всех остальных цифр по фиксированному алгоритму. Когда сканер считывает штрихкод, он пересчитывает, какой должна быть контрольная цифра на основе считанных им цифр, а затем сравнивает это значение с фактически считанной цифрой. Если они совпадают — считывание принято. Если нет — сканер отклоняет его как возможную ошибку чтения.
Это простой, но эффективный механизм обнаружения ошибок. Большинство ошибок считывания дают одну неверную цифру, а неверная цифра почти всегда даёт неверный расчёт контрольной цифры, который сканер улавливает.
Какие форматы штрихкодов используют контрольные цифры?
Семейство штрихкодов GS1 — EAN-13, UPC-A, EAN-8, ISBN-13 и GTIN-14 — все используют один и тот же алгоритм контрольной цифры. Это сделано намеренно: единый сканер может проверять штрихкоды любого формата GS1.
Code 128 и Code 39 также имеют механизмы контрольной цифры, хотя в Code 39 они необязательны и используют другие алгоритмы.
Алгоритм контрольной цифры GS1
Алгоритм GS1 по модулю 10 работает следующим образом:
- Возьмите все цифры, кроме контрольной (последней).
- Назначьте каждой цифре попеременные веса 1 и 3, начиная с крайней правой (позиция 1 справа получает вес 3, позиция 2 — вес 1, позиция 3 — вес 3 и так далее).
- Умножьте каждую цифру на её вес и сложите все результаты.
- Разделите сумму на 10. Контрольная цифра равна 10 минус остаток. Если остаток равен 0, контрольная цифра равна 0.
Пример с базой EAN-13: 400638133393
| Позиция справа | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | |---|---|---|---|---|---|---|---|---|---|---|---|---| | Цифра | 4 | 0 | 0 | 6 | 3 | 8 | 1 | 3 | 3 | 3 | 9 | 3 | | Вес | 1 | 3 | 1 | 3 | 1 | 3 | 1 | 3 | 1 | 3 | 1 | 3 | | Произведение | 4 | 0 | 0 | 18 | 3 | 24 | 1 | 9 | 3 | 9 | 9 | 9 |
Сумма: 4+0+0+18+3+24+1+9+3+9+9+9 = 89
Остаток: 89 mod 10 = 9
Контрольная цифра: 10 − 9 = 1
Полный EAN-13: 4006381333931
Проверка контрольной цифры без программ
Если у вас есть 13-значный EAN-13 и вы хотите убедиться в его корректности:
- Отделите последнюю цифру (контрольную).
- Примените алгоритм к первым 12 цифрам.
- Сравните вычисленную контрольную цифру с последней цифрой. Если они совпадают — номер верен.
Использование инструмента проверки контрольной цифры
Проверщик контрольной цифры на этом сайте делает это автоматически. Введите номер штрихкода, выберите формат (EAN-13, UPC-A, EAN-8, ISBN-13 или GTIN-14), и инструмент покажет:
- Если введён полный номер (13 цифр для EAN-13): проверит контрольную цифру и сообщит, верна ли она.
- Если введён основной номер без контрольной цифры (12 цифр для EAN-13): вычислит и отобразит правильную контрольную цифру.
Инструмент также показывает пошаговый расчёт, чтобы вы могли проверить работу.
Типичные ситуации, где это важно
Ошибки при переписывании. У вас есть номер товара, написанный на бумаге, но вы не уверены, скопирован ли он правильно. Введите его в проверщик, чтобы убедиться в соответствии контрольной цифры остальным.
Проверка базы данных. У вас есть таблица с артикулами, импортированными от поставщика. Проверка контрольной цифры выявит любые с опечаткой.
Создание штрихкода из артикула. У вас есть 12-значный базовый номер, и вам нужен полный 13-значный EAN-13. Проверщик вычислит контрольную цифру. Это также полезно при использовании генератора случайных номеров штрихкодов для тестирования — структурно верная контрольная цифра всё равно нужна, чтобы штрихкод сканировался без ошибок.
Проверка перед печатью. Если вы создаёте собственные штрихкоды с префиксом компании GS1, убедитесь в правильности контрольной цифры перед тиражом. Штрихкод с неверной контрольной цифрой будет отклонён каждым сканером, который её проверяет. После подтверждения корректности номера вы можете создать и просмотреть готовый штрихкод с помощью генератора EAN-13 или генератора UPC-A.
Когда верная контрольная цифра не означает регистрацию
Верная контрольная цифра означает, что номер структурно корректен. Она не означает, что номер зарегистрирован в GS1, присвоен реальному товару или признан базой данных какого-либо ретейлера. Это совершенно отдельные системы.
Поддельный штрихкод — созданный с произвольным или случайным номером вместо зарегистрированного префикса GS1 — пройдёт проверку контрольной цифры и будет сканироваться корректно. Он просто вернёт «неизвестный товар» в любой базе данных ретейлера при поиске по штрихкоду.