При разработке универсальных отчетов на Системе компоновки данных (СКД) часто возникает задача изменить оформление результирующего документа — например, уменьшить шрифт во всех ячейках. Если структура отчета не определена заранее и количество группировок изменяется динамически, перебирать ячейки вручную неэффективно. Рассмотрим основные и наиболее удобные способы решения этой задачи в платформе 1С:Предприятие.
Разберем по шагам стандартный подход платформы 1С, который позволяет полностью контролировать визуальный стиль отчета, включая размеры и типы шрифтов для различных областей.
Этот способ позволяет выдержать единый корпоративный стиль отчетов и централизованно управлять оформлением нескольких отчетов в системе.
Проанализируем ситуацию, когда необходимо быстро уменьшить шрифт без создания отдельных объектов метаданных. В этом случае отлично подойдет условное оформление СКД.
Шрифт с требуемым размером (например, размер 8).Важно: Если список оформляемых полей оставлен пустым, заданный шрифт автоматически применится абсолютно ко всем ячейкам отчета, независимо от количества и уровня динамических группировок.
Посмотрим на пример, когда размер шрифта должен изменяться динамически в зависимости от настроек пользователя непосредственно перед формированием отчета в коде 1С.
Для этого добавим элемент условного оформления в компоновщик настроек программно:
ЭлементОформления = КомпоновщикНастроек.Настройки.УсловноеОформление.Элементы.Добавить();
ЭлементОформления.Использование = Истина;
ЭлементОформления.Оформление.УстановитьЗначениеПараметра("Шрифт", Новый Шрифт(,, 8));
Так как поле оформляемых полей и условия мы не заполняем, данное правило охватит весь выводимый табличный документ.
Выясним еще один альтернативный визуальный метод. Если цель состоит в том, чтобы уместить отчет на одном экране или при печати на листе бумаги, не обязательно менять свойства самого шрифта в ячейках. Достаточно использовать свойства объекта ТабличныйДокумент.
Мы можем установить процентный масштаб отображения выведенного отчета:
Результат.Масштаб = 80;
Или включить автоматический подгон ширины отчета под размер страницы:
Результат.АвтоМасштаб = Истина;
При выборе метода оформления следует учитывать следующие особенности работы процессора компоновки данных:
ТабличныйДокумент.Шрифт: Попытка изменить свойство Шрифт напрямую у объекта ТабличныйДокумент до или после формирования отчета не даст результата, так как процессор компоновки данных явно назначает оформительские свойства ячейкам на основе настроек схемы.