← На главную
Нередко при модернизации парка торгового оборудования на складе или в торговом зале возникает неприятная ситуация: старый бюджетный сканер безошибочно считывает любые этикетки, а новый профессиональный лазерный или 2D-сканер наотрез отказывается декодировать штрихкоды, напечатанные из 1С. При этом заводские коды с упаковок товаров тот же новый аппарат считывает мгновенно. Рассмотрим причины такого поведения оборудования и разберем по шагам, как настроить систему для стабильного распознавания кодов.
В чем заключается корень проблемы: несоответствие DPI и оптические различия сканеров
Проанализируем физику процесса формирования этикетки в типовых конфигурациях 1С и последующего считывания сканирующим модулем.
- Растрирование компоненты 1С: Штатная внешняя компонента
1С:Печать штрихкодов формирует графический объект штрихкода в виде растрового изображения с экранным разрешением 96 DPI. В то же время разрешение термоголовки большинства принтеров начального уровня (например, Zebra LP 2824) составляет 203 DPI (приблизительно 8 точек на миллиметр). При отправке документа на печать через графическую подсистему Windows драйвер пытается сопоставить растровую сетку 96 DPI с физическими дюзами 203 DPI. В результате ширина отдельных полос (модулей) и межстрочных интервалов математически округляется до ближайшей целой точки. Штрихкод визуально кажется четким, однако пропорции модулей стандарта EAN-13 оказываются безвозвратно нарушены: 2-3 линии становятся толще или уже стандартных величин.
- Разница в алгоритмах декодирования (CCD против Laser): Простые светодиодные (CCD) или оптические фотосканеры часто используют мягкие допуски верификации контрольных сумм и соотношения ширины линий. Высокоточные лазерные сканеры измеряют микросекундные перепады отраженного луча между черными и белыми зонами. Если пропорции смежных элементов отклоняются от строгой спецификации стандарта, декодер расценивает такой код как поврежденный и блокирует считывание во избежание ошибки в коде товара.
- Температурное расплывание термобумаги: При завышенной температуре нагрева головки принтера черные линии физически расширяются за счет соседних белых промежутков, дополнительно сжимая так называемые зоны тишины и белые модули штрихкода.
Способ 1. Корректировка макета этикетки и параметров масштабирования в 1С
Если печать уже настроена через табличный документ и стандартный механизм 1С, решим проблему правильным подбором масштаба и свойств рисунка штрихкода в макете. Разберем по шагам последовательность действий:
- Откроем шаблон этикетки в режиме редактирования макета. Выделим объект с изображением штрихкода и перейдем в его свойства.
- В свойстве Размер картинки протестируем переключение режима со значения
АвтоРазмер на значение Растянуть. При принудительном растягивании драйвер принтера выполняет интерполяцию иначе, что в ряде случаев нивелирует слипание критических полос кода.
- Используем методику пропорционального масштабирования: создадим шаблон этикетки намеренно большего физического размера, чем целевая наклейка (например, с увеличенными пропорциями по ширине и высоте), а в параметрах страницы печати 1С установим уменьшенный масштаб. Такой прием позволяет вместить в растровую картинку штрихкода больше информации до ее растеризации драйвером принтера.
- Проверим наличие полей вокруг штрихкода (Quiet Zones). Слева и справа от крайних штрихов EAN-13 обязательно должно оставаться свободное белое пространство шириной не менее 3-5 миллиметров. Если граница штрихкода упирается в край этикетки или соседнюю рамку ячейки, лазерный сканер не сможет зафиксировать начало последовательности данных.
Способ 2. Оптимизация настроек драйвера термопринтера
Настроим драйвер печати в операционной системе, чтобы исключить паразитное сглаживание и перегрев бумаги:
- Перейдем в Панель управления > Устройства и принтеры, откроем свойства принтера Zebra и перейдем во вкладку Настройка печати (Printing Preferences).
- Найдем параметр Полутона (Dithering) и переведем его в положение
Нет (None). Любые полутоновые алгоритмы пытаются сгладить ступеньки растра серыми точками, превращая четкие границы штрихов в размытые края.
- Снизим параметр Интенсивность / Нагрев (Darkness / Density). Чрезмерный нагрев термоголовки приводит к эффекту расплывания точек. Уменьшение нагрева восстановит проектную ширину белых промежутков между штрихами.
- Уменьшим параметр Скорость печати (Print Speed) до минимального рабочего значения (например, 50 мм/сек). На низкой скорости протяжка этикет-ленты происходит равномернее, что устраняет паразитные микроколебания ширины линий.
Способ 3. Переход на прямую печать через команды EPL или векторные шрифты
Рассмотрим кардинальные методы решения, которые полностью исключают растровые искажения 96 DPI при выводе на печать:
- Использование векторных шрифтов штрихкода: Вместо графического рисунка штрихкода в ячейку табличного документа помещается текстовое поле со специализированным TrueType-шрифтом (например, EanGnivc). В программном коде 1С выполняется расчет контрольного символа, строка преобразуется в специальный набор символов и выводится в ячейку. Векторный шрифт передается на печать без потерь и растрируется самим принтером с точностью термоголовки в 203 DPI.
- Прямая отправка команд EPL2 в порт принтера: Принтеры Zebra поддерживают собственный командный язык EPL. Сформировав текстовую последовательность команд и отправив ее напрямую в порт устройства, минуя графический драйвер Windows, мы передаем генерацию штрихкода встроенному микроконтроллеру принтера. Встроенный генератор принтера рисует штрихи строго кратными физическому шагу печатающей головки, благодаря чему код гарантированно читается сканерами любого класса точности.
Способ 4. Программирование чувствительности и допусков сканера
Если на складе или в торговом зале уже наклеено большое количество этикеток, которые невозможно перепечатать, настроим декодер самого сканера:
- Откроем сервисную документацию к сканеру (User Reference Guide / Programming Manual).
- Найдем раздел, отвечающий за настройку символики EAN-13, и найдем управляющие штрихкоды регулировки допусков декодирования: Margin Check / Quiet Zone (проверка зон тишины) и Redundancy / Verification Level (уровень подтверждения и избыточности считывания).
- Последовательно отсканируем управляющие коды, понижающие строгость проверки геометрических пропорций штрихов и боковых полей. Это позволит оптическому модулю успешнее распознавать напечатанные с погрешностью коды.
- При работе со сканером обратим внимание на угол падения луча. Лазерные лучи чувствительны к прямому зеркальному отражению от глянцевого термослоя этикетки. Для уверенного считывания луч необходимо направлять не строго перпендикулярно плоскости наклейки, а под углом 15–30 градусов.
Настройка постоянного подключения Bluetooth-сканера в 1С
Разберем сопутствующую проблему, когда беспроводной сканер, подключенный через Bluetooth в режиме эмуляции COM-порта (SPP), отключается при выходе из формы документа или рабочего места кассира:
- В типовых конфигурациях 1С захват COM-порта выполняется обработчиком торгового оборудования только внутри активного окна (например, формы РМК). При закрытии формы порт освобождается, операционная система считает соединение неактивным и переводит виртуальный радиоканал в режим энергосберегающего сна.
- Для поддержания непрерывного соединения рекомендуется использовать промежуточные утилиты эмуляции постоянного виртуального COM-порта (VCP-драйверы), которые удерживают Bluetooth-канал открытым на уровне службы Windows независимо от того, обращается ли в текущий момент программа 1С к назначенному порту.
- В качестве альтернативы при наличии возможности доработки конфигурации подключение торгового оборудования выносится из локальных модулей форм документов в обработчик запуска сеанса пользователя, обеспечивая постоянное удержание COM-порта на протяжении всей рабочей сессии.