Как выделить итоги жирным шрифтом в СКД: детальное руководство по настройке условного оформления и макетов

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

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

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

Метод 1. Настройка области применения в Условном оформлении

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

Рассмотрим пошагово, как настроить выделение через стандартный интерфейс:

  1. Перейдем на закладку Настройки в схеме компоновки данных.
  2. Выберем уровень (весь отчет или конкретную таблицу/группировку), для которого хотим задать оформление.
  3. На вкладке Условное оформление добавим новый элемент.
  4. В поле Оформление установим параметр Шрифт — Жирный.
  5. В списке Оформляемые поля выберем те ресурсы, которые должны стать жирными в итогах.
  6. Важный этап: перейдем на вкладку Область применения. По умолчанию там стоят все галочки. Чтобы выделить только итоги, попробуем оставить включенными только пункты В общих итогах и В итогах групп.

Проанализируем нюанс: если мы настраиваем оформление на уровне всего отчета, а в структуре используется объект Таблица, то настройки «Общего отчета» могут перекрываться внутренними настройками таблицы. Поэтому попробуем применить те же настройки условного оформления непосредственно внутри элемента Таблица.

Метод 2. Использование системных полей для фильтрации итогов

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

Разберем ситуацию: нам нужно выделить только самый верхний уровень итогов. В поле Условие добавим проверку системного поля СистемныеПоля.Уровень. Для общих итогов этот уровень обычно минимален (0 или 1 в зависимости от структуры). Однако стоит помнить, что доступность системных полей в условиях зависит от того, где именно (в какой группировке) выполняется расчет. Этот метод требует аккуратности при работе с иерархическими справочниками.

Метод 3. Применение стандартных макетов оформления

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

В настройках отчета перейдем на вкладку Другие настройки. Найдем параметр Макет оформления. Выберем один из стандартных вариантов, например, Море, Арктика или Зеленый. Большинство типовых макетов 1С уже содержат в себе правила, согласно которым Общие итоги выделяются жирным шрифтом и отделяются линиями. Это самый быстрый способ привести отчет к профессиональному виду без ручной настройки каждой ячейки.

Метод 4. Работа с вкладкой Макеты (Профессиональный подход)

Когда возможности условного оформления исчерпаны, а результат все еще не достигнут (например, в сложных перекрестных таблицах), мы используем механизм собственных макетов. Это гарантированный способ «заставить» ячейку выглядеть так, как нам нужно. В качестве практического руководства можно использовать рабочий пример внедрения собственных макетов в СКД.

Разберем алгоритм создания макета для общего итога:

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

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

Метод 5. Использование пользовательских полей (Обходной путь)

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

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

Метод 6. Программная установка оформления

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


// В модуле объекта отчета в процедуре ПриКомпоновкеРезультата
ЭлементОформления = КомпоновщикНастроек.Настройки.УсловноеОформление.Элементы.Добавить();
ЭлементОформления.Оформление.УстановитьЗначениеПараметра("Шрифт", Новый Шрифт(,,Истина)); // Истина - жирный

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

// Настраиваем область применения только для итогов
ЭлементОформления.ИспользованиеОтбораПоляГруппировки = РежимИспользованияОтбораПоляГруппировки.Использовать;
ЭлементОформления.ОбластьПрименения.ВОбщихИтогах = Истина;
ЭлементОформления.ОбластьПрименения.ВИтогахГрупп = Истина;
ЭлементОформления.ОбластьПрименения.ВГруппировке = Ложь;
ЭлементОформления.ОбластьПрименения.ВДетальныхЗаписях = Ложь;

Использование программного метода гарантирует, что оформление будет добавлено в коллекцию УсловноеОформление именно с теми параметрами, которые нужны, и не будет случайно изменено пользователем в режиме 1С:Предприятие без понимания последствий.

Резюме

Подведем итог нашего анализа. Если вам нужно выделить итоги жирным в СКД:

Применяя эти подходы, мы добьемся того, что отчет станет наглядным, а итоговые данные — легко читаемыми для конечного пользователя.

← На главную