При работе с торговым оборудованием в конфигурации «1С:Бухгалтерия предприятия 3.0» пользователи часто сталкиваются с ситуацией, когда печать одной этикетки из карточки номенклатуры проходит успешно, но при попытке распечатать ценники из документа «Поступление (акты, накладные)» принтер выдает несколько позиций на одном физическом стикере. Проанализируем, почему это происходит и как настроить систему для корректной работы.
Рассмотрим причину разного поведения программ. В специализированных решениях, таких как 1С:Розница или 1С:Управление торговлей, механизмы печати изначально ориентированы на работу с узкоспециализированным оборудованием. В «Бухгалтерии предприятия» печать часто реализована через стандартный механизм табличных документов, который воспринимает принтер этикеток как обычный офисный принтер формата А4. Если система не «понимает», что перед ней лента с зазорами, она пытается максимально плотно упаковать все этикетки на один виртуальный лист.
Это критически важный этап, который часто пропускают. Если принтер просто установлен в Windows и выбран в диалоге печати, 1С посылает на него графический образ всей страницы. Чтобы программа начала управлять разрывами страниц после каждой этикетки, выполним следующие действия:
Регистрация позволяет системе задействовать компоненту печати штрихкодов, которая корректно передает команду разрыва страницы (команду на прогон ленты до следующего зазора) в драйвер принтера после вывода каждой области этикетки.
Даже при правильно подключенном оборудовании настройки самого табличного документа могут мешать корректному выводу. Разберем, как настроить макет перед печатью:
Проанализируем настройки самого принтера TSC в операционной системе. 1С передает данные в драйвер, и если в драйвере указан неверный размер бумаги, результат будет некорректным.
Иногда проблема кроется в самом коде обработки печати. В БП 3.0 используется универсальный механизм. Если мы создаем собственную обработку или модифицируем типовую, важно убедиться, что в цикле обхода товаров после вывода каждой области макета происходит принудительный разрыв страницы. Проанализируем пример логики вывода:
// Пример формирования табличного документа с разделителями
ТабДок = Новый ТабличныйДокумент;
Макет = ПолучитьМакет("МакетЭтикетки");
ОбластьЭтикетка = Макет.ПолучитьОбласть("Этикетка");
Для Каждого СтрокаТовара Из СписокТоваров Цикл
Для Счетчик = 1 По СтрокаТовара.Количество Цикл
ОбластьЭтикетка.Параметры.Заполнить(СтрокаТовара);
ТабДок.Вывести(ОбластьЭтикетка);
// Принудительно вставляем горизонтальный разделитель страниц
ТабДок.ВывестиГоризонтальныйРазделительСтраниц();
КонецЦикла;
КонецЦикла;
Метод ВывестиГоризонтальныйРазделительСтраниц() гарантирует, что каждая этикетка будет отправлена на принтер как отдельное задание или отдельная страница внутри одного задания, что заставит принтер реагировать на датчик зазора.
Если программные настройки верны, но принтер продолжает печатать «в кучу» или пропускать пустые этикетки, необходимо выполнить калибровку датчика. Для принтеров TSC это делается с помощью утилиты Diagnostic Tool. Выберем функцию Calibrate Sensor. Это обучит принтер точно определять начало и конец этикетки, игнорируя подложку.
Подведем итог: для корректной печати в 1С:Бухгалтерия 3.0 необходимо совместить три фактора: регистрацию в Подключаемом оборудовании, обнуление полей в Параметрах страницы 1С и точное указание размера носителя в Драйвере Windows. Только при соблюдении этих условий печать из документов поступления будет работать так же стабильно, как и в специализированных торговых конфигурациях.