При работе с торговым оборудованием в среде 1С:Предприятие 7.7 часто возникают ситуации, когда современное оборудование конфликтует со старыми методами вывода данных. Одной из самых неприятных проблем является нечитаемость штрихкода, напечатанного на термотрансферном принтере, таком как Atol TT41. Внешне штрихкод может выглядеть вполне приемлемо, но сканеры (особенно бюджетные модели вроде Atol SB1103) отказываются его распознавать либо делают это крайне медленно.
В этой статье мы подробно проанализируем причины этой проблемы, разберем влияние компоненты barcode.ocx на качество печати и выясним, как правильно настроить драйвер и принтер для получения идеального результата.
Рассмотрим, как происходит процесс печати через стандартную компоненту barcode.ocx. Эта компонента генерирует изображение штрихкода (растровый объект) и передает его драйверу принтера Windows. Здесь кроется главная ловушка для принтеров с разрешением 203 DPI (точек на дюйм), к которым относится Atol TT41.
При разрешении 203 DPI размер одной точки составляет примерно 0,125 мм. Когда 1С пытается масштабировать картинку штрихкода под размер маленькой этикетки (например, 30х20 мм), драйвер вынужден выполнять пересчет пикселей. Если ширина черной полосы штрихкода не кратна размеру дюзы принтера (0,125 мм), возникают «полутона» или размытие краев. Проанализируем ситуацию: сканер штрихкода ищет четкую границу между черным и белым. Если граница «серая» или «рваная», алгоритм сканера дает сбой.
Одной из самых распространенных скрытых причин плохой печати является включенный дизеринг (halftoning). Это технология имитации градиентов и полутонов с помощью точек разной плотности. Для печати текста это незаметно, но для штрихкода — губительно.
Разберем по шагам, что нужно изменить в настройках принтера:
Выясним причину влияния физических свойств ленты на считываемость. В термотрансферной печати используется риббон (красящая лента). Существует три основных типа:
Если вы используете риббон типа Resin на бумажной этикетке с низкими настройками температуры, штрихкод будет выглядеть тусклым, с пропусками. Проанализируем настройки температуры (Darkness/Intensity) в утилите Atol Label Printer Utility. Оптимальное значение подбирается экспериментально: штрих должен быть насыщенным, но не «жирным».
Если манипуляции с драйвером и barcode.ocx не помогают добиться стабильного чтения на маленьких этикетках, рассмотрим профессиональный метод решения задачи. Принтер Atol TT41 поддерживает язык команд TSPL.
Вместо того чтобы отправлять в принтер картинку, мы можем отправить текстовую команду. В этом случае принтер сам, на аппаратном уровне, сформирует штрихкод, идеально попадая в сетку своих печатающих элементов. Это исключает любые ошибки масштабирования.
Пример формирования команды в 1С 7.7 может выглядеть следующим образом (через объект Текст или запись в порт):
// Пример формирования управляющей последовательности TSPL
Команда = "SIZE 30 mm, 20 mm" + Симв(13) + Симв(10);
Команда = Команда + "DIRECTION 1" + Симв(13) + Симв(10);
Команда = Команда + "CLS" + Симв(13) + Симв(10);
// Печать штрихкода Code128: X=10, Y=10, высота 50, читаемый текст - да
Команда = Команда + "BARCODE 10,10,""128"",50,1,0,2,2,""1234567890""" + Симв(13) + Симв(10);
Команда = Команда + "PRINT 1,1" + Симв(13) + Симв(10);
Для реализации этого метода в 1С 7.7 часто используют внешние компоненты для прямой записи в COM-порт или драйвер RAW печати. Это гарантирует 100% читаемость даже на самых дешевых сканерах.
Посмотрим на проблему с точки зрения математики. Если вы продолжаете использовать barcode.ocx, старайтесь подбирать ширину штрихкода так, чтобы ширина самого узкого штриха была кратна 0.125 мм.
Например:
Если в настройках компоненты указать произвольную ширину, например 0.3 мм, принтер попытается напечатать 2.4 точки, что физически невозможно. В результате возникнет искажение геометрии кода, которое «убьет» возможность чтения.
Проанализируем ситуацию со сканерами. Автор темы отметил, что Zebra читает код после долгих мучений, а Atol SB1103 — нет. Это связано с тем, что дорогие сканеры (Zebra, Honeywell) обладают мощными процессорами и продвинутыми алгоритмами восстановления «битых» штрихкодов. Бюджетные модели требуют идеального контраста.
Важный совет: Если вы столкнулись с такой проблемой, не спешите менять сканеры. Сначала добейтесь того, чтобы штрихкод на этикетке выглядел монолитным при просмотре через лупу. Если вы видите «точечную» структуру линии — это признак неправильной настройки дизеринга или перегрева головки.
Для исправления ситуации с нечитаемыми штрихкодами на Atol TT41 выполните следующие действия:
barcode.ocx в пользу прямой отправки TSPL-команд. Это навсегда снимет вопрос зависимости качества от драйверов Windows и настроек графики.Соблюдение этих правил позволит вам добиться мгновенного срабатывания любого сканера, включая бюджетные модели, и обеспечит стабильную работу склада или розничной точки.