При переходе на новые операционные системы (Windows 10 или 11) или замене оборудования пользователи 1С:Розница и других конфигураций часто сталкиваются с проблемой: старый надежный принтер этикеток Zebra 2824 начинает печатать штрихкоды с артефактами. Линии кода становятся «рваными», волнистыми или состоят из точек, из-за чего сканеры штрихкодов (как лазерные, так и имиджевые, например, Datalogic QD 2430) перестают их считывать, что сводит на нет все усилия по автоматизации, включая такие доработки, как поиск номенклатуры по отсканированному штрихкоду для УТ 11.5 — для этого есть обработка поиска номенклатуры по штрихкоду для УТ 11.
Разберем детально причины этого явления и рассмотрим пошаговые методы устранения неисправности, опираясь на опыт сообщества и технические особенности драйверов.
Прежде чем менять настройки, давайте поймем физику процесса. Принтеры этикеток (термо и термотрансферные) являются монохромными устройствами. Они могут поставить черную точку (нагреть элемент головки) или не ставить её (оставить белой). Они не умеют печатать серый цвет.
Когда мы печатаем из 1С в обычном (графическом) режиме, программа формирует картинку (метафайл) и передает её драйверу принтера. Если в настройках драйвера или операционной системы включена обработка полутонов или сглаживание, драйвер пытается имитировать серый цвет на краях линий штрихкода с помощью дизеринга (dithering) — нанесения сетки из мелких точек.
В результате четкая граница штриха превращается в «шум», который человеческий глаз может не заметить, но для точной оптики сканера это выглядит как испорченный код. Особенно часто это проявляется в Windows 10 и 11, которые устанавливают универсальные драйверы с настройками «для фото» по умолчанию.
Это самый действенный метод, если вы хотите оставить печать в графическом режиме (как картинку). Нам нужно принудительно запретить драйверу использовать полутона.
Рассмотрим последовательность действий:
После этого попробуйте распечатать этикетку из 1С. Линии должны стать четкими, без «волн» по краям.
Иногда проблема кроется в том, что сама платформа 1С отправляет на печать цветное изображение, которое драйвер затем портит. В диалоге «Параметры страницы» в 1С есть галочка «Черно-белая печать». Её установка часто решает проблему мгновенно.
Однако, как замечено в обсуждении, эта настройка может сбрасываться при перезапуске программы. Чтобы зафиксировать настройки навсегда, выполним следующие действия:
В самой 1С:Розница (и других конфигурациях на управляемых формах) настройки печати для конкретного пользователя и принтера сохраняются в ХранилищеСистемныхНастроек. Если галочка слетает, попробуйте сохранить вариант отчета или макета этикетки после изменения настроек страницы.
В Windows 10 и 11 система часто автоматически подтягивает драйверы через Центр обновлений. Эти драйверы (часто это урезанные версии ZDesigner или IPP-драйверы) плохо работают с графикой низкого разрешения (203 dpi), характерного для Zebra 2824.
Проанализируем альтернативу:
Если настройка родного драйвера не помогает, рекомендуем удалить текущий драйвер, отключить автоматическую установку драйверов Windows для этого устройства и установить пакет драйверов от Seagull. В большинстве случаев они сразу выставляют корректные настройки контрастности и дизеринга для штрихкодов.
Еще одна причина искажения — несовпадение размера макета в 1С и физического размера этикетки. Если в 1С макет имеет ширину 58мм, а в драйвере настроено 56мм, или если включена опция «По размеру страницы» (Fit to page), драйвер начнет масштабировать картинку.
При масштабировании растрового изображения штрихкода происходит пересчет пикселей. Например, линия шириной в 2 пикселя должна стать 1.8 пикселя. Поскольку принтер не может напечатать 0.8 точки, он либо убирает линию, либо добавляет лишнюю, либо (при включенном сглаживании) ставит серую точку. Это делает штрихкод нечитаемым.
Что нужно проверить:
Эта проблема актуальна не только для самоклеящихся этикеток, но и при попытке добавить коды в другие документы. В таких случаях часто применяют «Расходную накладную» с выводом штрихкодов для товаров или другие подобные внешние формы — для этого есть внешняя печатная форма накладной со штрихкодами.
Хотя в базовой версии 1С это сложнее, самым надежным способом является отказ от печати картинок в пользу команд принтера (языки ZPL или EPL). В этом случае 1С отправляет не рисунок штрихкода, а команду: «Напечатай код EAN13 с цифрами 1234567890128 в координатах X,Y». Принтер сам генерирует идеальный штрихкод своими силами.
В типовых конфигурациях (Розница 2.3/3.0, УТ 11) есть встроенная поддержка печати этикеток через БПО (Библиотеку подключаемого оборудования).
Если вы хотите настроить это без покупки дорогих драйверов (как Гексагон), можно использовать драйвер «Generic / Text Only»:
Этот способ полностью исключает влияние Windows, драйверов и настроек сглаживания на качество печати.
Если вы столкнулись с проблемой «рваных» штрихкодов на Zebra 2824: