При разработке отчетов в Системе Компоновки Данных (СКД) формат кросс-таблицы является одним из самых популярных способов представления многомерных данных. Однако стандартный вывод общих итогов (подвала отчета) часто не удовлетворяет требованиям заказчиков. Например, может потребоваться выделить строку итогов жирным шрифтом, изменить цвет ее фона или задать разный формат точности для выводимых числовых показателей (вывести один ресурс как целое число, а другой — с точностью до десятых).
В этой статье мы подробно разберем, почему стандартные попытки привязать макет к общим итогам кросс-таблицы могут не работать, проанализируем типичные ошибки разработчиков и рассмотрим два эффективных способа решения этой задачи: через создание индивидуальных макетов ресурсов и с помощью механизма условного оформления.
Давайте проанализируем ситуацию, с которой часто сталкиваются разработчики на практике. Допустим, в отчете настроена кросс-таблица, где в строках выводится группировка по неделям и дням, а в колонках — несколько независимых группировок (плановые показатели, фактические показатели, процент выполнения и т.д.). Разработчик пытается создать собственный макет на вкладке «Макеты», выбирает тип макета «Общий итог заголовок», но при формировании отчета оформление подвала никак не меняется.
Выясним причину такого поведения системы. Здесь кроются две основные технические особенности работы СКД:
СКД критически важно, в какой именно части таблицы выводятся общие итоги по вертикали — сверху или снизу. По умолчанию (или при выборе значения «Конец» в других настройках отчета) итоги выводятся снизу таблицы, то есть в подвале. В этом случае макет с типом «Общий итог заголовок» полностью игнорируется системой. Для оформления нижней итоговой строки необходимо использовать тип макета «Общий итог подвал». Если же вы хотите использовать макет заголовка итога, вам потребуется принудительно переставить вывод итогов в начало таблицы (настройки «Расположение общих итогов» -> «Начало»).СКД требует жесткой привязки макета ресурсов к пересечению конкретной строки и конкретной колонки. Если макет оформлен только для одной из группировок, для остальных колонок он применяться не будет. Требуется создавать отдельные макеты для каждого пересечения ресурсов.Рассмотрим по шагам оба доступных варианта решения этой задачи.
Если вам требуется сложное визуальное оформление (например, объединение ячеек в подвале, добавление специфических надписей или сложная рамка), то использование собственных макетов — это правильный путь. Разберем алгоритм его настройки:
Неделя) выберите имя этой группировки, а в поле «Тип макета» обязательно укажите «Общий итог подвал» (это гарантирует применение оформления к нижней строке итогов).ПлановыеПоказатели сопоставьте соответствующее выражение ресурса). Если этого не сделать, ячейки в подвале останутся пустыми.Этот способ мощный, но у него есть существенный недостаток — он лишает отчет гибкости. Если пользователь в режиме «1С:Предприятие» захочет изменить структуру отчета (например, поменяет группировки местами или отключит вывод некоторых ресурсов), жестко сверстанный макет может отобразиться некорректно или «развалить» структуру таблицы.
Если ваша основная задача заключается в том, чтобы просто сделать шрифт в подвале жирным и настроить индивидуальный формат вывода чисел (например, первый ресурс отображать как целое число, а второй — с точностью до одного знака после запятой), то использовать макеты не нужно. Эту задачу гораздо проще, быстрее и правильнее решить с помощью механизма Условного оформления.
Давайте разберем этот процесс по шагам.
Чтобы применить оформление только к подвалу кросс-таблицы, выполните следующие действия:
Благодаря этому ограничению СКД применит жирный шрифт исключительно к самой нижней строке отчета — к общим итогам, не затрагивая промежуточные итоги по неделям и дням.
По условиям задачи нам необходимо сделать так, чтобы первый ресурс выводился как целое число, а второй — с точностью до десятых. Настроим это раздельно:
ЧДЦ=0), чтобы округлить число до целого.ЧДЦ=1).Таким образом, мы без написания кода и без создания сложных статических макетов получили полностью динамический подвал кросс-таблицы, который сохранит свою работоспособность и корректный внешний вид при любых пользовательских перетаскиваниях строк и колонок в режиме предприятия.