Как уменьшить шрифт во всем отчете на СКД?

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

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

Способ 1. Использование собственного макета оформления СКД

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

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

Этот способ позволяет выдержать единый корпоративный стиль отчетов и централизованно управлять оформлением нескольких отчетов в системе.

Способ 2. Условное оформление на корневом уровне настроек СКД

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

  1. Откроем схему компоновки данных и перейдем на вкладку Настройки.
  2. Выделим самый верхний элемент в структуре — корневой элемент Отчет.
  3. Перейдем на закладку Условное оформление и добавим новый элемент оформления.
  4. В параметрах установим параметр Шрифт с требуемым размером (например, размер 8).
  5. Поля Условие и Оформляемые поля оставим пустыми.

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

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

Посмотрим на пример, когда размер шрифта должен изменяться динамически в зависимости от настроек пользователя непосредственно перед формированием отчета в коде 1С.

Для этого добавим элемент условного оформления в компоновщик настроек программно:


ЭлементОформления = КомпоновщикНастроек.Настройки.УсловноеОформление.Элементы.Добавить();
ЭлементОформления.Использование = Истина;
ЭлементОформления.Оформление.УстановитьЗначениеПараметра("Шрифт", Новый Шрифт(,, 8));

Так как поле оформляемых полей и условия мы не заполняем, данное правило охватит весь выводимый табличный документ.

Способ 4. Изменение масштаба результирующего табличного документа

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

Мы можем установить процентный масштаб отображения выведенного отчета:

Результат.Масштаб = 80;

Или включить автоматический подгон ширины отчета под размер страницы:

Результат.АвтоМасштаб = Истина;

Особенности и ограничения платформы при работе со шрифтами в СКД

При выборе метода оформления следует учитывать следующие особенности работы процессора компоновки данных:

  1. Приоритет условного оформления: Условное оформление, заданное на корневом уровне отчета, имеет наименьший приоритет. Если в конкретных группировках или полях задан свой шрифт, он переопределит корневую настройку.
  2. Влияние на шапку и итоги: При пустом списке оформляемых полей шрифт уменьшится не только в строках данных, но и в заголовках колонок, а также в итоговых строках.
  3. Ограничение свойства ТабличныйДокумент.Шрифт: Попытка изменить свойство Шрифт напрямую у объекта ТабличныйДокумент до или после формирования отчета не даст результата, так как процессор компоновки данных явно назначает оформительские свойства ячейкам на основе настроек схемы.
← На главную