Как вывести 4 расчетных листка на один лист А4 в 1С

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

При массовой печати расчетных листков в 1С:Зарплата и Управление Персоналом часто возникает задача оптимизации расхода бумаги. По умолчанию система выводит расчетные листки последовательно друг за другом по вертикали, из-за чего на стандартный лист А4 помещается не более двух документов. Разберем по шагам, как настроить программный вывод отчета или параметры печати так, чтобы расположить расчетные листки сеткой 2х2 (по 4 штуки на одной странице).

Причина проблемы и особенности компоновки табличных документов

Платформа 1С:Предприятие формирует объект ТабличныйДокумент последовательно сверху вниз. В нем отсутствует встроенный механизм автоматического заполнения колонок слева направо при переносе страниц. Если ширина листка позволяет разместить два документа по горизонтали, а высота — два по вертикали, задачу компоновки 4 элементов на странице необходимо решать либо программным формированием ячеек, либо средствами управления печатью.

Способ 1. Программирование вывода через Вывести() и Присоединить()

Рассмотрим алгоритм доработки отчета, при котором расчетные листки формируются парами в две колонки. Главная задача — корректно чередовать горизонтальный вывод левой и правой колонок, а также отслеживать вертикальный разрыв страниц.

  1. Для формирования левой колонки (нечетные листки) используется метод Вывести().
  2. Для формирования правой колонки (четные листки) используется метод Присоединить().
  3. Перед добавлением каждого следующего ряда проверяется, поместится ли блок на текущую страницу с помощью метода ПроверитьВывод().

Рассмотрим пример кода, реализующий такую логику:


// Пример формирования расчетных листков в 2 колонки
НомерНаЛисте = 1;

Пока ВыборкаСотрудников.Следующий() Цикл
    // Заполнение данных текущего расчетного листка
    ОбластьМакет = Макет.ПолучитьОбласть("РасчетныйЛисток");
    ЗаполнитьДанныеЛистка(ОбластьМакет, ВыборкаСотрудников);

    Если НомерНаЛисте = 1 Тогда
        // Первый листок (левый верхний)
        ТабДок.Вывести(ОбластьМакет);
        НомерНаЛисте = 2;
    ИначеЕсли НомерНаЛисте = 2 Тогда
        // Второй листок (правый верхний)
        ТабДок.Присоединить(ОбластьМакет);
        НомерНаЛисте = 3;
    ИначеЕсли НомерНаЛисте = 3 Тогда
        // Третий листок (левый нижний)
        // Проверяем, поместится ли нижний ряд на текущей странице
        МассивПроверки = Новый Массив;
        МассивПроверки.Добавить(ОбластьМакет);
        
        Если Не ТабДок.ПроверитьВывод(МассивПроверки) Тогда
            ТабДок.ВывестиГоризонтальныйРазделительСтраниц();
        КонецЕсли;
        
        ТабДок.Вывести(ОбластьМакет);
        НомерНаЛисте = 4;
    ИначеЕсли НомерНаЛисте = 4 Тогда
        // Четвертый листок (правый нижний)
        ТабДок.Присоединить(ОбластьМакет);
        ТабДок.ВывестиГоризонтальныйРазделительСтраниц();
        НомерНаЛисте = 1;
    КонецЕсли;
КонецЦикл;

Разберем важные технические нюансы этого подхода:

Форматирование колонок: Если ширина колонок в левом и правом макете различается, стандартное присоединение может исказить сетку. Чтобы этого избежать, перед выводом области в код добавляют вызов метода СоздатьФорматСтрок() или используют вложенные табличные документы через объект Рисунок табличного документа.

Контроль высоты: Чтобы 4 листка гарантированно помещались на А4, необходимо уменьшить высоту макета единичного листка. В настройках отчета отключите лишние информационные блоки (например, детальную расшифровку взносов ПФР и ПФС) и при необходимости уменьшите размер шрифта до 7–8 pt.

Способ 2. Использование параметров страницы и масштабирования

Если вы не хотите изменять программный код отчета, можно настроить компактный вывод за счет параметров самой печатной формы в 1С:

  1. Откройте настройки расчетного листка и перейдите в раздел расширенных настроек макета.
  2. Установите свойство печатной формы АвтоМасштаб = Истина.
  3. В настройках печати страницы (Файл → Параметры страницы) задайте минимальные поля (например, по 5 мм со всех сторон).
  4. Укажите формат страницы А4 и ориентацию Книжная или Альбомная в зависимости от пропорций получившегося макета.

Способ 3. Печать через свойства принтера или виртуальный PDF-принтер

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

  1. Сформируйте отчет «Расчетный листок» на всех сотрудников в стандартном виде.
  2. Нажмите кнопку Печать и выберите ваш физический или виртуальный принтер (например, PDFCreator).
  3. Зайдите в Свойства драйвера / Настройка печати.
  4. Найдите параметр компоновки страниц (обычно называется «Страниц на лист» или «Разметка страницы»).
  5. Выберите значение 2 страницы на лист или 4 страницы на лист.
  6. При отправке на печать драйвер автоматически отмасштабирует и расположит стандартные листы отчета 1С в указанную сетку.

Проанализировав все варианты, можно сделать вывод: для постоянного использования в рабочей базе наиболее удобным является создание расширения с переопределением алгоритма вывода (Способ 1), а для разовой печати без привлекания разработчика достаточно настроек драйвера принтера (Способ 3).

← На главную