При оформлении первичных документов, таких как акт об оказании услуг или товарная накладная, часто возникает задача экономии бумаги. Требуется разместить два экземпляра документа на одном листе формата А4, разделив их наглядной пунктирной линией отреза (часто с символом ножниц), чтобы сотрудникам было удобно разрезать лист ровно пополам.
Разберем, почему эту задачу невозможно решить только стандартными настройками диалога печати 1С, и подробно рассмотрим технические способы реализации такого вывода.
Проанализируем, как работает штатный механизм размещения нескольких страниц на одном листе. В платформе 1С предусмотрено свойство ЭкземпляровНаСтранице, а также системный диалог «Параметры печати», где можно выбрать печать двух страниц на листе. Однако этот механизм лишь пропорционально масштабирует сформированные страницы табличного документа и передает их в подсистему печати операционной системы.
Платформа 1С не добавляет никаких межстраничных декоративных элементов, колонтитулов или линий разреза при автоматическом размещении копий. В конфигурациях на обычных формах (например, «Бухгалтерия предприятия 2.0») также отсутствует возможность редактирования макетов пользователем в режиме «1С:Предприятие» с сохранением результата для будущих формирований. Таким образом, решить задачу «в один клик» через стандартные настройки 1С без программирования невозможно.
Рассмотрим основной и самый надежный способ, который используют разработчики. Чтобы получить гарантированно одинаковый результат на любых принтерах, логику формирования двух экземпляров с линией отреза закладывают непосредственно в код печатной формы.
Разберем по шагам, как устроен этот алгоритм:
Разделитель), состоящая из одной узкой строки.-- ✂ --------------------------------------.ТабличныйДокумент секции первого экземпляра, затем секцию-разделитель, после чего секции второго экземпляра.Посмотрим на пример программного кода формирования такого табличного документа:
ТабДокумент = Новый ТабличныйДокумент;
ТабДокумент.ИмяПараметровПечати = "ПАРАМЕТРЫ_ПЕЧАТИ_АКТ_ДВА_ЭКЗЕМПЛЯРА";
// Настройка параметров для гарантированного размещения на одном листе А4
ТабДокумент.Автомасштаб = Истина;
ТабДокумент.ПоШиринеСтраницы = 1;
ТабДокумент.ОриентацияСтраницы = ОриентацияСтраницы.Портрет;
Макет = ПолучитьМакет("Макет");
// 1. Выводим первый экземпляр документа
ВывестиЭкземплярАкта(ТабДокумент, Макет, СсылкаНаДокумент);
// 2. Выводим секцию-разделитель с пунктирной линией
ОбластьРазделитель = Макет.ПолучитьОбласть("Разделитель");
ТабДокумент.Вывести(ОбластьРазделитель);
// 3. Выводим второй экземпляр документа
ВывестиЭкземплярАкта(ТабДокумент, Макет, СсылкаНаДокумент);
Преимущество использования внешней печатной формы (ВПФ) заключается в том, что типовая конфигурация остается на полной поддержке без снятия с замка, а пользователи получают готовый инструмент печати через стандартное меню дополнительных отчетов и обработок.
Если внесение изменений в конфигурацию или подключение ВПФ временно недоступны, рассмотрим аппаратные возможности драйверов печати.
Многие производители офисной техники (HP, Kyocera, Canon, Xerox) внедряют в расширенные версии драйверов (PCL6 / PostScript) функции компоновки страниц (N-Up / «Несколько страниц на листе»):
Следует учитывать особенность этого метода: если настройка задана в свойствах принтера по умолчанию, разделительная линия будет выводиться для абсолютно всех документов, отправляемых на печать, включая файлы из сторонних офисных программ.
Для создания аккуратной линии отреза при печати двух экземпляров на одной странице оптимальным решением является разработка внешней печатной формы. Это гарантирует правильное позиционирование пунктира ровно между документами, избавляет от необходимости вручную настраивать драйверы на каждом рабочем месте и сохраняет конфигурацию типовой.