При формировании и печати отчетов, построенных на базе механизма УниверсальныйОтчет (в конфигурациях на обычных формах), пользователи часто сталкиваются с проблемой: данные выходят слишком мелким шрифтом даже при использовании альбомной ориентации листа. Попытки изменить шрифт напрямую в свойствах элемента ПолеТабличногоДокумента формы в Конфигураторе не дают результата, так как построитель отчета переопределяет оформление ячеек при выводе.
Рассмотрим, почему возникает эта проблема и какими способами — пользовательскими и программными — можно изменить шрифт и масштаб отчета.
Проанализируем основные факторы, из-за которых данные в отчете сжимаются и становятся трудночитаемыми:
Автомасштаб = Истина или в параметрах печати задана опция «По ширине страницы», 1С сжимает весь документ под размер листа. Если отчет содержит много колонок, шрифт автоматически уменьшается пропорционально ширине.Шрифт у элемента формы ПолеТабличногоДокумента не влияет на итоговый отчет. При вызове вывода построитель отчета полностью перезаписывает структуру ячеек на основе собственных макетов и оформления.В универсальных отчетах предусмотрен встроенный механизм оформления, который позволяет настроить шрифт, цвет и размер текста непосредственно в режиме 1С:Предприятие без редактирования программного кода.
Разберем по шагам, как изменить шрифт через пользовательский интерфейс:
Если требуется зафиксировать настройки шрифта или оформления жестко в коде отчета, модифицировать общий модуль универсального отчета не требуется. Построитель отчета использует стандартный метод вывода, которому можно передать собственные настройки условного оформления до вызова формирования.
Рассмотрим пример добавления шрифта через коллекцию УсловноеОформление объекта ПостроительОтчета в модуле отчета или формы:
// В процедуре подготовки или формирования отчета
ЭлементОформления = ПостроительОтчета.УсловноеОформление.Добавить("ОформлениеСтрок");
ЭлементОформления.Использование = Истина;
ЭлементОформления.Значение.Шрифт = Новый Шрифт("Arial", 10, Истина); // Задаем шрифт Arial 10pt (Bold)
ЭлементОформления.ОформляемыеПоля.Добавить("ВсеПоля", "Все поля", Истина);
Также мы можем программно изменить шрифт в макете построителя до момента его вывода на экран:
// Изменение шрифта для конкретных секций макета построителя
МакетПостроителя = ПостроительОтчета.Макет;
МакетПостроителя.Области.Детали.Шрифт = Новый Шрифт("Arial", 9);
МакетПостроителя.Области.Шапка.Шрифт = Новый Шрифт("Arial", 10, Истина);
Если шрифт в отчете задан корректно, но при выводе на печать данные продолжают выходить мелким текстом из-за сжатия платформой, необходимо перенастроить свойства ТабличныйДокумент.
Посмотрим на пример кода, который необходимо выполнять **в самом конце** процедуры формирования отчета (после того, как построитель полностью вывел данные в результирующее поле):
// Обращаемся к полю табличного документа на форме
ТабДок = ЭлементыФормы.ПолеТабличногоДокументаРезультат;
// Отключаем автоматический подгон по ширине страницы
ТабДок.Автомасштаб = Ложь;
// Устанавливаем принудительный масштаб 100%
ТабДок.Масштаб = 100;
// При необходимости задаем ландшафтную ориентацию
ТабДок.ОриентацияСтраницы = ОриентацияСтраницы.Ландшафт;
Для разового исправления параметров печати на стороне пользователя достаточно открыть меню Файл → Параметры страницы в режиме Предприятия, снять флаг «По ширине страницы» и явно установить масштаб 100%.