Работа с Системой компоновки данных (СКД) часто подбрасывает задачи, которые кажутся тривиальными, но требуют знания глубоких настроек системы. В этой статье мы подробно разберем, как справиться с отсутствием визуализации подвала, как программно или через настройки изменить оформление групп и как управлять видимостью элементов отчета в зависимости от активности параметров. Давайте вместе пройдем по шагам настройки этих элементов.
Часто возникает необходимость выделить логическую группу полей в отчете, например, изменить шрифт заголовка группы на жирный или увеличить его размер. Если мы заглянем в свойства самой группы в окне «Выбранные поля», то увидим, что прямой настройки шрифта там нет. Рассмотрим, как это сделать через механизм Условного оформления.
Проанализируем последовательность действий:
Шрифт. Установим нужные нам параметры (например, Arial, 12, полужирный).В заголовке.Такой подход позволяет гибко управлять визуализацией, не прибегая к сложному кодированию в модуле объекта.
Ситуация, когда макет создан, область задана, но подвал не выводится на экран — классическая проблема при работе с именованными группировками. Разберем основные причины и способы их решения.
Во-первых, выясним причину на уровне структуры. Если группировка «Подвал» не содержит в себе детальных записей или ресурсов, СКД считает её «пустой» и по умолчанию скрывает. Чтобы это исправить, выполним следующие действия:
Да.Во-вторых, проверим соответствие имен. Если вы создали Макет группировки, убедитесь, что имя группировки в структуре (на вкладке «Настройки») символ в символ совпадает с именем, указанным в макете (на вкладке «Макеты»). Малейшая опечатка или лишний пробел приведут к тому, что 1С не свяжет макет с веткой отчета.
В-третьих, если отчет встроен в конфигурацию, как в случае автора темы, проверьте, не перекрываются ли ваши настройки другими вариантами отчета или кэшированными данными. Иногда требуется полностью перезапустить сеанс или обновить конфигурацию, чтобы изменения в схеме вступили в силу.
Рассмотрим ситуацию: у нас есть параметр (например, ВыводитьПодпись), и мы хотим, чтобы целая область отчета исчезала, если пользователь снял галочку с этого параметра. Простое использование параметра внутри макета не поможет — останется пустая строка или статичный текст. Нам нужно управлять видимостью всей группировки.
Посмотрим на пример настройки отбора на уровне группировки:
ПараметрыДанных.ВыводитьПодпись.Равно, а правое значение — Истина.Если тип параметра — не Булево, а, например, ссылка на справочник, мы можем использовать условие Заполнено. Таким образом, если галочка использования параметра в форме отчета будет снята, условие отбора не выполнится, и СКД просто исключит эту группировку из процесса вывода.
Выясним причину, по которой отчет отказывается формироваться без заполненного параметра. Если параметр просто прописан в тексте запроса в секции ГДЕ, 1С ожидает его обязательного наличия. Чтобы сделать параметр гибким, мы должны использовать синтаксис фигурных скобок.
Рассмотрим пример правильного написания условия в тексте запроса СКД:
ВЫБРАТЬ
Продажи.Номенклатура,
Продажи.СуммаОборот
ИЗ
РегистрНакопления.Продажи.Обороты(&НачалоПериода, &КонецПериода, , ) КАК Продажи
ГДЕ
{Номенклатура.* КАК Номенклатура, Склад.* КАК Склад}
Если же параметр используется не в виртуальных таблицах, а в обычном условии ГДЕ, схема будет выглядеть так:
ГДЕ
{Контрагент = &Контрагент}
При таком подходе, если пользователь не установил флаг использования параметра &Контрагент в настройках, система автоматически удалит всё условие из итогового SQL-запроса. Это позволяет отчету формироваться по всем данным без ошибок.
Также не забудьте зайти на вкладку «Параметры» в СКД и для нужных параметров проверить свойство «Использование». Установка значения Авто обычно является оптимальной, но в некоторых случаях стоит явно указать Недоступен, если вы управляете им программно, или снять флаг Запрет незаполненных значений, чтобы отчет мог стартовать с пустым полем.
Если вам нужно, чтобы в одной ячейке макета текст менялся в зависимости от условий, проанализируем ситуацию с использованием выражений. Вместо типа заполнения Текст, выберите для ячейки тип Параметр или Шаблон.
В выражении параметра макета можно написать конструкцию:
ВЫБОР
КОГДА &ОтветственноеЛицо Заполнено
ТОГДА "Исполнитель: " + Представление(&ОтветственноеЛицо)
ИНАЧЕ ""
КОНЕЦ
Это позволит сделать отчет более профессиональным и чистым, скрывая лишние поясняющие надписи, когда данные отсутствуют.