При массовой печати самоклеящихся этикеток и ценников на специализированных термопринтерах нередко возникает ситуация, когда первые несколько наклеек выходят идеально, а затем текст и штрихкод начинают постепенно уползать вверх или вниз. С каждой следующей этикеткой смещение увеличивается на доли миллиметра, и к концу большой партии печать попадает прямо на линию отрыва или за пределы стикера. Разберем основные причины такого поведения и выясним, как вернуть корректное позиционирование с помощью аппаратных и программных настроек.
В большинстве случаев прогрессирующее накопление сдвига связано с механикой протяжки рулона. Проанализируем, почему это происходит:
Способ решения:
Необходимо провести сервисное обслуживание протяжного механизма. Для очистки резинового вала и направляющих используйте изопропиловый спирт или специализированные чистящие составы для оргтехники. Не применяйте агрессивные растворители на основе ацетона, чтобы не повредить резину валика. После очистки проверьте равномерность подачи ленты нажатием кнопки FEED на корпусе принтера.
Если принтер Toshiba TEC, Zebra, TSC или Datamax печатает со смещением, проверьте работу оптического датчика. Когда датчик зазора между наклейками не откалиброван или отключен в драйвере, принтер воспринимает ленту как сплошное полотно (Continuous) и не корректирует начальную позицию каждой новой наклейки.
Выполним правильную настройку драйвера и принтера по шагам:
Часто в самописных или старых типовых обработках печать всей партии реализуется в виде единой непрерывной таблицы, где интервалы между блоками подгоняются пустыми строками таблицы 1С. В среде Windows при выводе через графический драйвер GDI условные единицы высоты строк 1С переводятся в физические точки печатающей головки (DPI) с округлением. При разрешении 203 DPI накопленная ошибка округления неизбежно смещает макет.
Чтобы исключить накопление математической погрешности, переведем алгоритм формирования макета на постраничный вывод. Рассмотрим правильную логику на примере кода 1С:
Таб = СоздатьОбъект("Таблица");
Таб.ИсходнаяТаблица("Этикетка");
// Устанавливаем параметры листа строго под размер одного стикера
Таб.ПараметрыСтраницы(1, 100, 1, 0, 0, 0, 0, 0, 0, 1);
Выборка = СоздатьОбъект("Справочник.Номенклатура");
Выборка.ВыбратьЭлементы();
Пока Выборка.ПолучитьЭлемент() = 1 Цикл
Если Выборка.ЭтоГруппа() = 0 Тогда
// Выводим секцию ровно одной этикетки
Таб.ВывестиСекцию("Стикер");
// Принудительно завершаем страницу для позиционирования принтера
Таб.НоваяСтраница();
КонецЕсли;
КонецЦикла;
Таб.Напечатать(0);
Если печать выполняется с сервера терминалов, на котором отключен EasyPrint и установлены оригинальные драйверы, обратите внимание на следующие нюансы:
ПараметрыСтраницы() или в свойствах табличного документа масштаб зафиксирован строго на значении 100%, а флаг подгонки по ширине листа отключен.0, чтобы драйвер принтера управлял позицией только через аппаратные границы отступа.Для полного исключения влияния драйверов Windows и настроек терминала примените прямую отправку команд на языке управления принтером (например, TPCL для Toshiba TEC или ZPL/EPL для Zebra). В этом случае из 1С формируется текстовый файл с командами разметки и координатами полей, который отправляется напрямую в порт принтера. Это гарантирует неизменную миллиметровую точность позиционирования и максимальную скорость вывода любых партий этикеток.