Почему в 1С:Бухгалтерия 3.0 этикетки печатаются по несколько штук на одной ленте и как это исправить?

Программист 1С v8.3 (Управляемые формы) 1C:Бухгалтерия Торговля и дистрибуция
← На главную

При работе с торговым оборудованием в конфигурации «1С:Бухгалтерия предприятия 3.0» пользователи часто сталкиваются с ситуацией, когда печать одной этикетки из карточки номенклатуры проходит успешно, но при попытке распечатать ценники из документа «Поступление (акты, накладные)» принтер выдает несколько позиций на одном физическом стикере. Проанализируем, почему это происходит и как настроить систему для корректной работы.

Различие механизмов печати в «Рознице» и «Бухгалтерии»

Рассмотрим причину разного поведения программ. В специализированных решениях, таких как 1С:Розница или 1С:Управление торговлей, механизмы печати изначально ориентированы на работу с узкоспециализированным оборудованием. В «Бухгалтерии предприятия» печать часто реализована через стандартный механизм табличных документов, который воспринимает принтер этикеток как обычный офисный принтер формата А4. Если система не «понимает», что перед ней лента с зазорами, она пытается максимально плотно упаковать все этикетки на один виртуальный лист.

Шаг 1: Регистрация принтера в подключаемом оборудовании

Это критически важный этап, который часто пропускают. Если принтер просто установлен в Windows и выбран в диалоге печати, 1С посылает на него графический образ всей страницы. Чтобы программа начала управлять разрывами страниц после каждой этикетки, выполним следующие действия:

  1. Перейдем в раздел Администрирование — Подключаемое оборудование.
  2. Выберем тип оборудования Принтеры этикеток.
  3. Создадим новый экземпляр устройства, выбрав соответствующий драйвер (для TSC часто используется стандартный «1С:Принтер этикеток» или драйвер от производителя).
  4. Выполним тест устройства.

Регистрация позволяет системе задействовать компоненту печати штрихкодов, которая корректно передает команду разрыва страницы (команду на прогон ленты до следующего зазора) в драйвер принтера после вывода каждой области этикетки.

Шаг 2: Настройка параметров страницы в 1С

Даже при правильно подключенном оборудовании настройки самого табличного документа могут мешать корректному выводу. Разберем, как настроить макет перед печатью:

  1. Откроем форму печати этикеток и вызовем окно Предварительный просмотр.
  2. Зайдем в меню Файл — Параметры страницы.
  3. Важно: Установим все Поля (левое, правое, верхнее, нижнее) в значение 0. Даже минимальное поле в 1-2 мм может привести к тому, что этикетка перестанет помещаться в границы физического носителя, и 1С начнет переносить ее на следующий «лист» или группировать иначе.
  4. Установим значения Колонтитулов (верхнего и нижнего) в 0. Если оставить стандартные значения, принтер будет воспринимать их как часть макета, что собьет калибровку датчика зазора.
  5. В поле Масштаб выберем «По ширине страницы» или «100%». Не рекомендуется использовать «Автомасштаб», так как он может непредсказуемо искажать штрихкод.

Шаг 3: Настройка драйвера принтера в Windows

Проанализируем настройки самого принтера TSC в операционной системе. 1С передает данные в драйвер, и если в драйвере указан неверный размер бумаги, результат будет некорректным.

  1. Зайдем в «Панель управления» — «Устройства и принтеры».
  2. Выберем свойства принтера TSC и перейдем в Настройки печати (Printing Preferences).
  3. На вкладке Страница (Page Setup) создадим новую форму, размер которой в точности соответствует вашей этикетке (например, 58 мм на 40 мм).
  4. Перейдем на вкладку Материал (Stock). Убедимся, что в поле «Тип носителя» установлено Этикетки с зазорами (Labels with Gaps). Если стоит «Непрерывная лента», принтер не будет останавливаться на разрывах.
  5. Установим высоту зазора (обычно это 2-3 мм).

Шаг 4: Технический нюанс формирования табличного документа

Иногда проблема кроется в самом коде обработки печати. В БП 3.0 используется универсальный механизм. Если мы создаем собственную обработку или модифицируем типовую, важно убедиться, что в цикле обхода товаров после вывода каждой области макета происходит принудительный разрыв страницы. Проанализируем пример логики вывода:


// Пример формирования табличного документа с разделителями
ТабДок = Новый ТабличныйДокумент;
Макет = ПолучитьМакет("МакетЭтикетки");
ОбластьЭтикетка = Макет.ПолучитьОбласть("Этикетка");

Для Каждого СтрокаТовара Из СписокТоваров Цикл
    Для Счетчик = 1 По СтрокаТовара.Количество Цикл
        ОбластьЭтикетка.Параметры.Заполнить(СтрокаТовара);
        ТабДок.Вывести(ОбластьЭтикетка);
        // Принудительно вставляем горизонтальный разделитель страниц
        ТабДок.ВывестиГоризонтальныйРазделительСтраниц();
    КонецЦикла;
КонецЦикла;

Метод ВывестиГоризонтальныйРазделительСтраниц() гарантирует, что каждая этикетка будет отправлена на принтер как отдельное задание или отдельная страница внутри одного задания, что заставит принтер реагировать на датчик зазора.

Шаг 5: Калибровка датчиков принтера

Если программные настройки верны, но принтер продолжает печатать «в кучу» или пропускать пустые этикетки, необходимо выполнить калибровку датчика. Для принтеров TSC это делается с помощью утилиты Diagnostic Tool. Выберем функцию Calibrate Sensor. Это обучит принтер точно определять начало и конец этикетки, игнорируя подложку.

Подведем итог: для корректной печати в 1С:Бухгалтерия 3.0 необходимо совместить три фактора: регистрацию в Подключаемом оборудовании, обнуление полей в Параметрах страницы 1С и точное указание размера носителя в Драйвере Windows. Только при соблюдении этих условий печать из документов поступления будет работать так же стабильно, как и в специализированных торговых конфигурациях.

← На главную