Как настроить печать отчета на СКД по ширине листа А4 и сохранить параметры печати?

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

При разработке и формировании отчетов на базе системы компоновки данных (СКД) часто возникает ситуация, когда сформированный табличный документ при выводе на печать не помещается по горизонтали на один лист формата А4. Из-за этого крайние колонки переносятся на следующие страницы, что делает работу с печатной версией крайне неудобной.

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

Выясним причину сброса параметров печати

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

Способ 1. Пользовательская настройка через параметры страницы

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

  1. Активируем табличный документ, выполнив одиночный щелчок мышью по любой ячейке отчета (это необходимо, чтобы платформа понимала, к какому объекту применяются команды печати).
  2. Открываем главное меню программы (в верхнем левом углу окна) и переходим по пути: Файл — Параметры страницы...
  3. В открывшемся диалоговом окне в блоке масштабирования переключаем переключатель в положение По ширине листа (или устанавливаем масштабирование по количеству страниц по ширине: 1).
  4. При необходимости меняем ориентацию листа на Ландшафт и уменьшаем поля отступа.
  5. Нажимаем кнопку ОК и отправляем отчет на печать.

Способ 2. Установка параметров в схеме компоновки данных (без программирования)

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

  1. Открываем схему компоновки данных нужного отчета.
  2. Переходим на вкладку Настройки, затем в нижней панели выбираем вкладку Другие настройки.
  3. Находим параметр Автомасштаб и устанавливаем для него значение Да (это свойство принудительно подгоняет отчет по ширине печатной страницы).
  4. Находим параметр Ориентация страницы и при необходимости выбираем Ландшафт (альбомная ориентация).
  5. При необходимости отключаем вывод лишних служебных заголовков и параметров, чтобы сэкономить полезную площадь документа.

Способ 3. Программная фиксация настроек в модуле объекта отчета

Проанализируем программный способ управления печатью. В модуле объекта отчета можно переопределить стандартное событие компоновки. При этом не требуется вручную переписывать запросы или использовать построитель — стандартный вывод заполнит табличный документ с учетом переданных настроек.

Посмотрим на пример переопределения процедуры ПриКомпоновкеРезультата:


Процедура ПриКомпоновкеРезультата(ДокументРезультат, ДанныеРасшифровки, СтандартнаяОбработка)
	
	// Задаем уникальный идентификатор для сохранения пользовательских настроек печати
	ДокументРезультат.ИмяПараметровПечати = "ПараметрыПечати_МойОтчет";
	
	// Включаем автоматическую подгонку по ширине листа
	ДокументРезультат.АвтоМасштаб = Истина;
	
	// Задаем альбомную ориентацию и минимальные поля (в миллиметрах)
	ДокументРезультат.ОриентацияСтраницы = ОриентацияСтраницы.Ландшафт;
	ДокументРезультат.ПолеСлева = 10;
	ДокументРезультат.ПолеСправа = 10;
	
КонецПроцедуры

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

Способ 4. Настройка свойств элемента формы

Если для отчета разработана отдельная управляемая форма, разберем настройку элемента управления, отображающего результат:

  1. В редакторе формы выбираем элемент Результат (имеющий тип ПолеТабличногоДокумента).
  2. В палитре свойств элемента находим флаг Автомасштаб и устанавливаем его в значение Истина.
  3. В модуле формы в процедуре ПриСозданииНаСервере или при формировании отчета задаем имя настроек для поля табличного документа:

&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
	Элементы.Результат.ИмяПараметровПечати = "ПараметрыПечати_ФормаМоегоОтчета";
КонецПроцедуры

Дополнительные рекомендации по оптимизации ширины колонок

Если в отчете содержится большое количество колонок, простое включение автомасштабирования может сделать текст слишком мелким и нечитаемым. В таких ситуациях полезно применить дополнительные настройки оформления полей в СКД:

  1. На вкладке Наборы данных или в настройках выбранных полей открываем параметры оформления нужного поля.
  2. Задаем параметры Минимальная ширина и Максимальная ширина, чтобы зафиксировать ширину колонок в печатной форме.
  3. Устанавливаем свойство Размещение в значение Переносить — в этом случае длинные наименования будут переноситься на новую строку внутри ячейки, не растягивая таблицу по горизонтали.
← На главную