QRkoder

Контрольная цифра EAN — структура кода и сфера применения

Контрольная цифра — последняя цифра штрихкода EAN, вычисляемая по остальным цифрам кода алгоритмом контрольной суммы по модулю 10. Защищает код от ошибок ручного ввода и сбоев сканирования.

Что такое контрольная цифра EAN

Контрольная цифра — последняя, тринадцатая цифра штрихкода EAN-13 (для EAN-8 — восьмая). Она не присваивается производителем произвольно, а математически вычисляется по первым 12 цифрам кода: GS1 использует для этого алгоритм контрольной суммы по модулю 10. Задача контрольной цифры — не нести информацию о товаре, а защищать сам код от ошибок при считывании и ручном вводе.

Подробный пошаговый разбор алгоритма с несколькими числовыми примерами и таблицей приведён в статье «Расшифровка штрих-кода»; здесь — только суть формулы и один рабочий пример.

Формула расчёта

Чтобы получить контрольную цифру, первые 12 цифр кода нумеруют слева направо. Цифры на нечётных позициях (1, 3, 5, 7, 9, 11) складывают с весом 1, на чётных (2, 4, 6, 8, 10, 12) — с весом 3. Обе суммы складывают в одно число, и контрольная цифра — это то, что нужно прибавить к результату до ближайшего числа, кратного 10 (если сумма уже кратна 10, контрольная цифра равна 0).

Пример на первых 12 цифрах кода 460068200262:

  • Сумма цифр на нечётных позициях (1,3,5,7,9,11): 4+0+6+2+0+6 = 18
  • Сумма цифр на чётных позициях (2,4,6,8,10,12), умноженная на 3: (6+0+8+0+2+2)×3 = 18×3 = 54
  • Итог: 18 + 54 = 72
  • Контрольная цифра: (10 − 72 mod 10) mod 10 = (10 − 2) = 8

Полный код — 4600682002628. Тот же принцип, но уже по всем 13 цифрам, используется для обратной проверки: сканер и учётная система пересчитывают сумму заново при каждом считывании и сверяют её с контрольной цифрой, напечатанной в коде.

Зачем контрольная цифра нужна сканеру

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

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

Что делать, если код не проходит проверку

Совпадение контрольной цифры подтверждает только арифметическую корректность кода — не то, что такой GTIN реально зарегистрирован в базе GS1 и принадлежит конкретному товару. Если контрольная цифра не сходится, причины обычно две: опечатка при ручном наборе — переставлены или искажены цифры — либо повреждённый штрихкод на упаковке, который сканер распознал с ошибкой. В обоих случаях код исправляют не заменой одной цифры вручную, а перегенерацией штрихкода целиком: иначе контрольная сумма снова разойдётся с напечатанными полосами.

Частые вопросы

Как рассчитывается контрольная цифра EAN-13?

Первые 12 цифр нумеруют слева направо. Цифры на нечётных позициях складывают с весом 1, на чётных — с весом 3, суммы складывают. Контрольная цифра — число, которое нужно прибавить к результату до ближайшего значения, кратного 10.

Можно ли вручную поменять одну цифру в готовом штрихкоде?

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

Что означает несовпадение контрольной цифры при сканировании?

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

Одинаковый ли алгоритм у EAN-13 и EAN-8?

Принцип расчёта тот же самый — контрольная сумма по модулю 10 с чередующимися весами 1 и 3, только для более короткого EAN-8 расчёт ведётся по первым 7 цифрам вместо 12. Оба формата используют единый стандарт GS1 и одинаково проверяются любым сканером.

Гарантирует ли верная контрольная цифра, что товар есть в базе GS1?

Нет. Верная контрольная цифра доказывает только арифметическую целостность кода. Она не подтверждает, что такой GTIN зарегистрирован в базе GS1 и привязан к реальному товару — это отдельная проверка по базе данных.

Почему в некоторых кодах последняя цифра — 0?

Если сумма, полученная по формуле, уже кратна 10, контрольная цифра по определению равна 0, а не 10 — одна цифра не может занимать два разряда. Именно для этого в расчёте применяется двойной остаток от деления по модулю 10, а не простая разница до десятка.

Самойлов Андрей Иванович — Эксперт по QR-кодам и SaaS-маркетингу

Автор материала

Андрей Самойлов

Эксперт по QR-кодам и SaaS-маркетингу. 10 лет в SaaS, маркетинге и ИТ.

Об авторе и все материалы

Создавайте QR-коды бесплатно

Динамические QR-коды с аналитикой, дизайном и без ограничений по сканированиям.

Начать бесплатно