Чудеса со штрихкодами
28.01.2017 231 0 0 ammo1

Чудеса со штрихкодами

---
0
В закладки
Сегодня я совершенно случайно обнаружил, что подавляющее большинство описаний подсчёта контрольной суммы самого обычного штрихкода EAN-13, которые можно найти в интернете, ошибочны.



В базе lamptest.ru есть штрихкоды ламп, которые я ввожу в экселевскую таблицу вручную. Конечно же при ручном вводе возможны ошибки, поэтому я попросил Матвея Иванова, сделавшего подсчёта итоговой оценки ламп в Excel, создать функцию, которая будет проверять правильность штрихкодов по их контрольной сумме.

Как известно, первые 12 цифр штрихкода кодируют информацию о товаре, а тринадцатая цифра - контрольная сумма.

Если набрать в поисковике "контрольная сумма штрихкода" в паре десятков первых ссылок будет одинаковый алгоритм:

1. Сложить цифры, стоящие на четных местах и полученную сумму умножить на три;
2. Сложить цифры, стоящие на нечетных местах (кроме самой контрольной цифры);
3. Сложить полученные числа;
4. Отбросить десятки;
5. Из числа 10 вычесть полученное число.

Оказалось, что этот алгоритм подходит не для всех штрихкодов. Если взять штрихкод 4607044243460, который я привёл на заглавной картинке, получается какая-то ерунда:

1. 6+7+4+2+3+6=28 x3 = 84
2. 4+0+0+4+4+4 = 16
3. 84+16 = 100
4. Как отбрасывать десятки у числа 100? Ну ладно, отбросим десять десятков, будет 0.
5. 10-0=10. Получилось 10, а должна быть одна цифра.

Удивительно, но этот неправильный алгоритм повторяется на тысячах сайтов, включая вполне официальные, вроде сайта о техническом регламенте продукции http://www.tehreg.ru/scode_kontr.htm.

Более корректный алгоритм было найти не так-то просто, но я его всё же нашёл: http://life-prog.ru/2_77338_raschet-kontrolnogo-chisla-koda-EAN--.html.

Первые три строки правильного алгоритма совпадают с неправильным:

1. Сложить цифры, стоящие на четных местах и полученную сумму умножить на три;
2. Сложить цифры, стоящие на нечетных местах (кроме самой контрольной цифры);
3. Сложить полученные числа;
4. Контрольным числом будет то, которое необходимо добавить к получившейся сумме, чтобы получить число, делящееся без остатка на 10.

В случае штрихкода, который я разбирал выше, сумма равна 100, значит контрольное число 0 (100 делится на 10 без остатка).

Заодно обнаружилось, что у IKEA штрихкоды 13-значные, но они не соответствуют EAN-13 и как у них считать контрольную сумму неизвестно. Вот, например штрихкод 3030597621633. Если бы это был EAN-13, на конце должна была бы быть семёрка, а там тройка.



Нигде в интернете алгоритм подсчёта икеевской контрольной суммы найти не удалось. Может быть вы знаете, как её считать?

А ещё я с удивлением для себя узнал, что большинство сканеров штрихкодов, использующихся в магазинах, просто эмулируют клавиатуру и при считывании кода передают последовательность нажатия цифровых клавиш, так что для сканера не нужны драйверы и специальные программы - просто тыкаешь в экселевскую ячейку, нажимаешь кнопку на сканере и получаешь в ячейке штрихкод. Заказал на Алиэкспрессе сканер за $12. Надеюсь, он окажется именно таким.

© 2017, Алексей Надёжин

Основная тема моего блога - техника в жизни человека. Я пишу обзоры, делюсь опытом, рассказываю о всяких интересных штуках. А ещё я делаю репортажи из интересных мест и рассказываю об интересных событиях.
Добавьте меня в друзья здесь. Запомните короткие адреса моего блога: Блог1.рф и Blog1rf.ru.

Второй мой проект - lamptest.ru. Я тестирую светодиодные лампы и помогаю разобраться, какие из них хорошие, а какие не очень.уникальные шаблоны и модули для dle
Комментарии (0)
Добавить комментарий
Прокомментировать
Безос или Ганди? Мы сошли с ума и определяем ваш психологический портрет по номеру телефона
Есть такая древняя наука — нумерология, она изучает скрытые значения чисел. Классический пример — расчет числа судьбы. Нужно сложить все цифры в дате рождения, а потом —
А теперь сложнее, чем вчера
Вчера я пытался разобраться в логическом решении задачки, которую как то решал весь интернет. Разобрался. Спасибо всем комментаторам. Однако есть подобная задачка и
Апрельские комплименты на melonpanda
Чтобы не приняли за первоапрельскую шутку, перенесем нашу маленькую новость на сегодня ;) Начиная с завтрашней отправки мы кладем к каждому заказу прозрачную виниловую
Закон Бенфорда
Каков шанс, что случайное число начнётся с цифры «1″? Или с цифры «3″? Или с «7″? Если вы немного знакомы с теорией вероятности, то можете предположить, что
Сколько платят за коммуналку в разных странах
Огромные споры вызывают диалоги о дорого-дешево ли коммуналка в России и других странах в сопоставлении с зарплатами. Например, пишут, что в среднем по Украине на
Lamptest: новогоднее чудо, обновление, большие планы
Проект по тестированию светодиодных ламп Lamptest.ru работает уже два с половиной года. За это время было протестировано более 1700 моделей ламп, а количество
Цифры в кино
Цифры в кино
Цифры в кино
24.11.17 ---
Угадайте для чего в кино использую эти цифры? 29, 341, 45, 119, 1311, 9
6 нужных всем знаний о банковских картах
Банковскими карточками мы пользуемся ежедневно: снимаем деньги в банкомате, оплачиваем счета и покупки, расплачиваемся в заведениях и т.д. Финансовых операций, которых
Математическе Лайфхаки о которых не говорят в школе
Математика для кого то интересная и увлекательная, а для кого то сущее непонятное наказание. Но даже в этой достаточно сложной материи есть интересные приемчики и
Что можно узнать из номера банковской карты
У держателей пластиковых карт всегда множество вопросов по её безопасности. И один из главных - номер, состоящий из 16 цифр (в большинстве случаев). Зачем он нужен?
Сложить от 1 до 100
В XIX веке один учитель задал своим ученикам вычислить сумму всех целых чисел от единицы до ста. Компьютеров и калькуляторов тогда еще не было, и ученики принялись
Два числа
Два числа
Два числа
11.05.17 ---
В условиях строжайшей секретности были выбраны два целых числа — m и n. Оба они не равны 1, а их сумма меньше 100. Произведение этих чисел дали математику Андрею, их
Стала известна сумма, которую просрала Италия из-за санкций ЕС против России
Стала известно сумма, которую просрала Италия из-за санкций ЕС против России Неудивительно, что на Ялтинский международный экономический форум ломанулись аж 50
Lamptest повернулся лицом к народу :)
Недавно меня справедливо упрекнули в том, что мой проект по тестированию светодиодных ламп http://lamptest.ru ориентирован исключительно на гиков, а обычные люди не
Лучшие светодиодные лампы за полцены
Позавчера я неожиданно оказался в магазине ИКЕА Белая дача (был поблизости и решил заехать, купить новые лампочки для тестов). Обнаружилось, что в Икее до 25 января идёт
CRI: у меня для вас плохие новости
Все, кто разбирался с качеством света светодиодных ламп и все, кто читал мои статьи о светодиодных лампах, знают о таком параметре, как индекс цветопередачи (CRI, он же
Чеченцы, чего такие скромные?
История от хорошего знакомого, работавшего над проектом одной крупной соцсети и администрации Чеченской республики. Работали, работали и тут с чеченской стороны пришел
Рио-2016: битва за эффективность.
Интересный материал про эффективность Олимпиады. Не так все плохо, да? Оригинал взят у sturman в Рио-2016: битва за эффективность. Олимпиада закончилась. Как известно,
500 евро ВСЁ
500 евро ВСЁ
500 евро ВСЁ
05.05.16 ---
То, чего ждали произошло: Европейский центробанк таки отменил 500-евровую банкноту. В первую очередь, это сделано из-за противодействия преступности и отмыванию денег.