Почему код маркировки не читается сканером: дело чаще всего не в сканере

20.08.26

Интеграция - Сканер штрих-кода

Сканер берёт этикетку через раз, на кассе очередь, а замена сканера не помогает. В большинстве разобранных случаев код Data Matrix испорчен ещё на печати: модуль не кратен точке принтера, масштаб драйвера не 100%, съедена тихая зона. Разбор с замерами на стенде обратного чтения: как посчитать размер модуля под 203 и 300 dpi, где это ломается в 1С, и как за десять минут убедиться, что партия читается, — до того как она уехала в продажу.

Типовой совет из интернета на этот случай — «протрите сканер, проверьте настройки принтера, обновите прошивку». Иногда помогает. Но в большинстве случаев, которые я разбирал, код был испорчен раньше: в момент, когда его отправили на печать.

Ниже — разбор причины с замерами. Цифры получены на собственном стенде печати и обратного чтения: генерируем партию этикеток, печатаем в PDF, читаем декодером обратно и смотрим, сколько кодов выжило.

 

Модуль — это не «размер картинки»

Data Matrix состоит из квадратных ячеек. Одна ячейка называется модулем. Код «Честного ЗНАКа» с GTIN, серийным номером и ключом проверки укладывается в сетку 36×36 модулей.

Дальше начинается то, из-за чего коды перестают читаться.

Термопринтер печатает не миллиметрами, а точками. У самого массового офисного принтера этикеток разрешение 203 dpi, то есть 203 точки на дюйм. Одна точка — 25,4 / 203 = 0,125 мм. Принтер физически не умеет напечатать половину точки: он либо ставит точку, либо нет.

Теперь возьмём типичную ситуацию. Дизайнер сверстал этикетку и задал модуль 0,4 мм — «чтобы код был компактнее». В точках это 0,4 / 0,125 = 3,2 точки. Принтер округляет: часть модулей печатается тремя точками, часть четырьмя. Сетка кода перестаёт быть равномерной, границы ячеек уезжают, и декодер, который ищет строгую решётку, начинает промахиваться.

Внешне этикетка выглядит нормально. Код есть, он чёрный, он ровный. Но сканер берёт его через раз, а на кассе очередь.

 

Как считать правильно

Модуль должен быть целым числом точек принтера. Не «примерно», а ровно.

Принтер Точка Модуль 3 точки Модуль 4 точки Модуль 6 точек
203 dpi 0,125 мм 0,375 мм 0,500 мм 0,750 мм
300 dpi 0,085 мм 0,254 мм 0,339 мм 0,508 мм

Отсюда практическое правило: на 203 dpi берите модуль 0,5 мм — это ровно четыре точки. На 300 dpi ближайшее к тем же 0,5 мм значение — 0,508 мм, шесть точек.

Есть и нижняя граница: модуль тоньше 0,255 мм брать не стоит, код перестаёт читаться устойчиво даже при идеальной печати. И вот тут кроется ловушка округления: на 203 dpi две точки дают 0,25 мм — это уже ниже порога, а три точки сразу 0,375 мм. Промежуточного значения не существует физически. На 300 dpi три точки дают 0,254 мм — тоже впритык под порогом, надёжнее брать четыре.

То есть «сделать код чуть помельче» — не настройка с плавной регулировкой. Вы прыгаете с 0,5 мм сразу на 0,375 мм, а следующий шаг вниз уже за границей читаемости.

При модуле 0,5 мм и сетке 36×36 сам код занимает 18×18 мм. Это надо закладывать в макет с самого начала: на этикетке 58×40 мм он помещается свободно, а вот попытка ужать этикетку до 30×20 мм и «вписать туда код» заканчивается предсказуемо.

 

Замер

Проверка на партии в 200 этикеток, модуль 0,5 мм, 203 dpi:

  • генерация — 2,11 секунды на 200 этикеток (95 этикеток в секунду);
  • обратное чтение декодером — 19,58 секунды;
  • прочитано 200 из 200.

Это и есть та проверка, которой обычно не делают. Печать «на глаз» проверяют одним кодом, он читается, партию отправляют в продажу — а брак вылезает уже на приёмке у сети.

 

Что проверить у себя за пять минут

  1. Узнайте разрешение своего принтера. 203 или 300 dpi — написано в паспорте.
  2. Посчитайте модуль в точках. Модуль в мм разделить на 0,125 (для 203 dpi) или на 0,085 (для 300). Получилось дробное — вот и причина.
  3. Возьмите линейку и измерьте напечатанный код. При сетке 36×36 и модуле 0,5 мм сторона должна быть 18 мм. Меньше — значит макет ужали при печати, и модуль уехал вместе с ним.
  4. Прочитайте напечатанное обратно. Не один код, а десяток из разных мест партии. Если хоть один не читается — в продажу нельзя.

 

Почему это важнее, чем кажется

Нечитаемый код — это не «неудобство на кассе». Это товар, который нельзя продать легально: касса не пробьёт позицию, а вывод из оборота не пройдёт. Партия физически на складе, а по документам её продать невозможно, пока коды не перепечатаны.

И перепечатка — не всегда выход: если коды уже нанесены на упаковку в типографии, перепечатывать придётся упаковку.

Поэтому проверка модуля стоит пяти минут до печати тиража — и спасает от разбора завалов после.


Замеры получены на собственном стенде генерации и обратного чтения этикеток Data Matrix. Проверить расчёт можно на своём принтере: разделите заданный модуль на размер точки и посмотрите, целое ли число получилось.

 

Где это ломается в 1С

Теперь главное для тех, кто печатает этикетки из 1С — типовых конфигураций или своих макетов.

Макет с картинкой вместо штрихкода. В самодельных макетах DM часто вставлен как картинка, которую 1С масштабирует под ячейку табличного документа. Ячейка чуть уже — картинка сжалась на 3–7% — модуль перестал быть целым числом точек. Внешне разница невидима. Проверка: откройте макет и посмотрите, задан ли размер картинки жёстко в миллиметрах или она «вписывается» в ячейку.

Компонента печати и параметр «размер модуля». В типовых решениях 1С использует компоненту генерации штрихкода, у которой размер модуля задаётся явно. Если стоит «авто» — компонента подгоняет код под отведённое место, и вы получаете тот самый дробный модуль. Задавайте размер модуля константой, рассчитанной под dpi вашего принтера: 0,5 мм для 203 dpi.

Масштаб в драйвере принтера. Самая коварная точка. Драйвер Windows с настройкой «по размеру страницы» или масштабом 97% превращает идеальный макет в кашу: он пересчитывает ВСЕ размеры, и модуль 4 точки становится модулем 3,88 точки. Проверяйте: в настройках печати масштаб должен быть строго 100%, режим — «фактический размер».

Печать через PDF. Цепочка «1С → PDF → печать из просмотрщика» добавляет второе масштабирование: просмотрщики по умолчанию ставят «вписать в страницу». Либо печатайте из 1С напрямую в драйвер, либо в просмотрщике выставляйте 100%.

 

Стенд самопроверки за 10 минут

Не верьте глазам — код, который «выглядит нормально», надо читать машиной. Стенд собирается из подручного:

  1. Напечатайте тестовую партию: 20–30 этикеток с реальными кодами (или тестовыми той же длины: GTIN + серийник + 91/92 группы).
  2. Сфотографируйте лист телефоном при дневном свете, без вспышки, строго сверху. Или отсканируйте на МФУ в 600 dpi.
  3. Прогоните снимок через любой офлайн-декодер Data Matrix (libdmtx, zxing). Считается доля прочитанных кодов и — важно — время декодирования каждого.

Здоровая печать: 100% прочитано, время декодирования стабильное. Больной признак: часть кодов читается со второй-третьей попытки декодера — на кассе это и есть «сканер берёт через раз». Если декодер спотыкается уже на идеальном фото, на потёртой этикетке под плёнкой шансов не будет.

Такой же стенд, только автоматический, я собирал для контроля партий перед отправкой на маркировку: генерация → печать в PDF → обратное чтение → отчёт по каждому коду. Из ста этикеток с модулем 0,4 мм на 203 dpi обратно прочитались 83. С модулем 0,5 мм — все сто.

 

Остальные убийцы кода, по частоте

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

Тихая зона. Вокруг DM обязано быть пустое поле шириной минимум в один модуль, лучше два-три. Дизайнеры любят придвинуть рамку или текст вплотную — декодер теряет границу кода.

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

Инверсия и заливка. Белый код на чёрном фоне читают не все сканеры (нужна поддержка инверсии), а «фирменный» серый вместо чёрного снижает контраст ниже порога.

 

Чек-лист перед запуском партии

  1. Модуль = целое число точек принтера (203 dpi → 0,5 мм).
  2. Размер кода в макете задан жёстко, не «авто» и не «вписать».
  3. Масштаб везде 100%: драйвер, просмотрщик PDF, параметры печати 1С.
  4. Тихая зона от одного модуля, ничего не придвинуто.
  5. Контраст: чёрное на белом, без дизайнерских серых.
  6. Обратное чтение тестовой партии: 100% с первой попытки.
  7. Риббон/лента — свежие, датчик зазора откалиброван.

Каждый пункт — минута проверки. Партия перепечатанных этикеток — день простоя и деньги. Выбор очевиден, но по опыту разборов до пункта 6 не доходит почти никто: все смотрят на этикетку глазами, а глаза тут не инструмент.

 

Частые вопросы из разборов

«У соседа тот же принтер — у него читается». Смотрите не на принтер, а на макет и драйвер. Два одинаковых Xprinter с разными настройками масштаба дают противоположный результат. Сравнивать надо выгрузку макета и снимок настроек печати, а не марки железа.

«Поставили 300 dpi — стало хуже». Классика: макет остался со значением модуля под 203 dpi (0,5 мм = 4 точки), а на 300 dpi те же 0,5 мм — уже 5,9 точки. Снова дробь, снова каша. При смене принтера пересчитывайте модуль под новую точку: на 300 dpi берите 0,508 мм.

«Код читается телефоном, но не сканером кассы». Телефонные декодеры агрессивнее: многокадровая съёмка, коррекция перспективы. Кассовый сканер читает один кадр за миллисекунды. Телефон — не контроль качества, а самообман; контроль — только стенд с одиночным кадром.

«Типография напечатала — у них всё профессионально». Типографии отлично держат цвет и приводку, но про целочисленный модуль под конкретный dpi термопринтера думают не всегда: у офсета своя физика. Присылайте типографии требование в явном виде: модуль 0,5 мм, чёрный 100K, тихая зона 3 модуля.

«Можно ли чинить уже напечатанную партию?» Нет. Код с дробным модулем не «дочитывается настройками» — перепечатка. Поэтому и весь смысл в проверке ДО тиража: стенд стоит десять минут, тираж — деньги.

 

Итог

«Не читается код» — почти никогда не про сканер. В порядке вероятности: дробный модуль, масштабирование по дороге к принтеру, изношенный риббон, съеденная тихая зона. Все четыре причины закладываются в момент подготовки макета и настроек печати — и все четыре проверяются за десять минут стендом обратного чтения, без единой поездки к кассе.

Если после чек-листа код всё равно не читается — вот тогда уже интересно, и это тема отдельного разбора: крипточасть, GS-разделители и то, как учётные системы портят содержимое кода ещё до печати.

Вступайте в нашу телеграмм-группу Инфостарт

маркировка Честный ЗНАК Data Matrix этикетки печать

Вы можете заказать платную адаптацию этой статьи под ваши задачи на «Бирже заказов».

  • 0% комиссии — оплата напрямую исполнителю;
  • Исполнители любого масштаба — от отдельных специалистов до команд под проект;
  • Прямой обмен контактами между заказчиком и исполнителем;
  • Безопасная сделка — при необходимости;
  • Рейтинги, кейсы и прозрачная система откликов.

См. также

Мобильная разработка Сканер штрих-кода Терминал сбора данных 1С:Предприятие 8 1С:Розница 2 1С:Управление нашей фирмой 1.6 1С:ERP Управление предприятием 2 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х Управленческий учет Платные (руб)

Сбор заказов, инвентаризация, проверка ценников, просмотр полной информации об остатках и ценах со смартфона Онлайн - все это содержит в себе решение 1С "Штрихкод-информер" (штрих-код чекер). Отправка данных со смартфона выполняется либо напрямую в открытую форму документа, отсканировав QR-код, либо в общую корзину учетной системы, не подходя к компьютеру. Кассир или оператор сможет просмотреть список присланных данных и загрузить в любую форму, поддерживающую работу с ТСД. Для работы с мобильным приложением требуется опубликовать HTTP-сервис из поставляемого расширения.

3050 руб.

03.12.2018    71951    247    106    

189

Сканер штрих-кода Пользователь 1С:Предприятие 8 1С:Розница 2 1С:Управление нашей фирмой 1.6 1С:ERP Управление предприятием 2 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х 1С:Управление нашей фирмой 3.0 1С:Розница 3.0 Управленческий учет Платные (руб)

У вас возникал вопрос - Как быстро и правильно выполнить приемку товара в торговой точке? Как минимизировать ошибки при сборке заказа клиента? Текущая разработка способна помочь в решении данных проблем. Её назначение - проверка с помощью сканера штрих кода поступления и реализации товаров, заказов клиентов, заказов поставщикам, расходных и приходных ордеров, перемещений и возвратов.

5185 руб.

29.07.2020    46014    243    194    

185

Учет ОС и НМА Сканер штрих-кода Терминал сбора данных Логистика, склад и ТМЦ 1С:Предприятие 8 1С:Бухгалтерия 3.0 Россия Бухгалтерский учет Платные (руб)

Приложение Инвентаризация ОС и ТМЦ предназначено для инвентаризации основных средств и товарно-материальных ценностей, закреплённых за конкретным материально ответственным лицом или складом. В конфигурации 1С:Бухгалтерии 3.0 отсутствуют возможности генерации и работы со штрих-кодами для основных средств. Приложение позволяет генерировать и обрабатывать штрих-коды как для основных средств, так и для товарно-материальных ценностей (материалы, товары). В новом релизе появилась возможность работы с фотографиями объектов учета.

07.07.2023    6547    4    alfanika    0    

7

Этикетки, ценники Пользователь 1С:Предприятие 8 1C:Бухгалтерия Розничная и сетевая торговля (FMCG) Рестораны, кафе и фаст-фуд Беларусь Украина Россия Управленческий учет Платные (руб)

Простая в использовании обработка для формирования и печати ценников и этикеток со штрих-кодом, с дополнительной ценой, для 1С8.х Большое разнообразие шаблонов печатных форм. Управляемая форма (Такси) + Обычный режим.

5084 руб.

11.11.2020    54914    77    53    

85

Этикетки, ценники Программист Пользователь 1С:Предприятие 8 1С:ERP Управление предприятием 2 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х 1С:Управление нашей фирмой 3.0 Россия Управленческий учет Платные (руб)

Вы работаете с маркируемым товаром? Вам нужно вывести штрихкод GTIN на этикетку? Вы используете типовое решение УТ, УНФ, КА или ERP? В типовых конфигурациях нет возможности добавить штрихкод GTIN на этикетку. Сейчас это очень важно для торговых сетей. Добавьте штрихкод GTIN рядом со штрих кодом DataMatrix (код маркировки) на Ваши этикетки с нашим расширением. Решение в виде расширения, а это означает, что конфигурация останется на поддержке. Подключив данное решение, Вы сможете выводить GTIN в виде штрих кода EAN13 (без лидирующего нуля)/EAN128 (с лидирующим нулем).

5490 руб.

09.06.2021    21334    35    19    

37

Сканер штрих-кода Пользователь 1С:Предприятие 8 1С:ERP Управление предприятием 2 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х Управленческий учет Платные (руб)

Стандартные конфигурации ERP, КА, УТ 11 позволяют работать с штрихкодированием серий. Есть только одно суровое ограничение – на упаковке должна быть этикетка для номенклатуры и отдельно для серии. Во многих случаях это критически неудобно.

24400 руб.

19.04.2021    30533    68    59    

79
Для отправки сообщения требуется регистрация/авторизация