Как вычисляется контрольная цифра
Цифры поочерёдно умножаются на 1 и 3 и складываются; дополнение суммы до десятка и есть контрольная цифра.
При ручном вводе кода легко ошибиться в одной цифре, и программа откроет другой товар. Последняя цифра штрих-кода как раз и предназначена для того, чтобы ловить такие ошибки. Это простейшая форма внутреннего контроля: ошибка находится не в конце года, а в момент ввода.
Что делает контрольная цифра
Контрольная цифра вычисляется по формуле из предыдущих цифр и записывается в самый конец кода. Когда сканер или программа читает код, она заново считает формулу по цифрам и сравнивает результат с последней цифрой. Если они не совпадают, код считается неверным: сканер не подаёт сигнала, а программа отклоняет ввод.
Важное ограничение: контрольная цифра проверяет внутреннюю согласованность кода, а не правильность товара. Код, принадлежащий другому товару, но составленный верно, пройдёт любые проверки.
Расчёт в EAN-13
Правило состоит из четырёх шагов. Для примера возьмём 12 цифр перед контрольной: 478123456789.
- Пронумеруйте цифры слева направо от 1 до 12.
- Цифры на нечётных местах (1, 3, 5...) умножьте на 1, на чётных (2, 4, 6...) на 3.
- Сложите результаты.
- Число, дополняющее сумму до ближайшего десятка, и есть контрольная цифра.
Расчёт: 4×1 + 7×3 + 8×1 + 1×3 + 2×1 + 3×3 + 4×1 + 5×3 + 6×1 + 7×3 + 8×1 + 9×3, то есть 4 + 21 + 8 + 3 + 2 + 9 + 4 + 15 + 6 + 21 + 8 + 27 = 128. Ближайший десяток 130, разница 2. Значит, полный код 4781234567892.
Способ быстрее: сумма цифр на нечётных местах равна 32, на чётных тоже 32. Расчёт: 32 + 3×32 = 128. Результат тот же.
Проверка готового кода
Чтобы проверить, возьмите все 13 цифр: последнюю тоже умножьте на 1 и сложите. Сумма должна делиться на 10. В нашем примере 128 + 2 = 130, то есть код верный. Если бы последняя цифра была, скажем, 3, сумма составила бы 131, и код был бы отвергнут.
Это правило работает и для кодов другой длины (GTIN-8, UPC-A, GTIN-14, даже 18-значный SSCC). Общий способ: начиная от контрольной цифры, двигайтесь влево и умножайте следующую цифру на 3, затем на 1, снова на 3 и так далее.
Какие ошибки она ловит
Представьте, что кладовщик вместо 4781234567892 ввёл 4781234557892 (на 9-м месте 5 вместо 6). Вес этого места равен 1, поэтому сумма уменьшается на 1: не 130, а 129. Она не делится на 10, и программа отклоняет код. Теперь пусть 5 и 6 поменялись местами: 4781234657892. Для них вместо 5×3 + 6×1 = 21 получается 6×3 + 5×1 = 23, сумма становится 132, и код снова отклонён.
В целом проверка справляется с ошибками так:
- Одна неверная цифра находится всегда. Вес равен 1 или 3, поэтому сумма обязательно меняется.
- Перестановка двух соседних цифр находится почти всегда. Сумма не меняется только тогда, когда цифры отличаются на 5 (например, 27 вместо 72), и такая ошибка проскакивает.
- Случайные ошибки нескольких цифр находятся примерно в 90 процентах случаев. То есть случайный неверный код в одном случае из десяти способен пройти проверку.
С другой стороны, лишняя или потерянная цифра меняет длину кода, а её легко ловит проверка длины.
Как использовать на складе
Контрольная цифра нужна не только в теории, она помогает и в повседневной работе:
- При загрузке кодов из списка (Excel, 1С) проверяйте контрольную цифру в каждой строке: неверные строки указывают на ошибку ввода.
- Для кодов, которые вводятся вручную, добавьте проверку в программе или пусть второй человек перепроверит.
- Если считанный сканером код не проходит проверку, причина обычно в качестве этикетки или в неверном составлении кода.
В Code 128 тоже есть контрольный символ (считается по модулю 103), но его добавляет программа этикеток, считать вручную не нужно.
Вывод
Контрольная цифра одним простым расчётом рано находит большую часть ошибок в кодах. Команда Shtrix при пересчёте и маркировке составляет внутренние коды по этому правилу и проверяет их, чтобы этикетка совпадала с номером в базе.