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

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

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

Изменение шрифта групп в выбранных полях

Часто возникает необходимость выделить логическую группу полей в отчете, например, изменить шрифт заголовка группы на жирный или увеличить его размер. Если мы заглянем в свойства самой группы в окне «Выбранные поля», то увидим, что прямой настройки шрифта там нет. Рассмотрим, как это сделать через механизм Условного оформления.

Проанализируем последовательность действий:

  1. Перейдем на вкладку «Настройки» в схеме компоновки данных, а затем выберем закладку «Условное оформление».
  2. Добавим новый элемент оформления. В колонке «Оформление» нажмем на кнопку выбора и в появившемся окне найдем параметр Шрифт. Установим нужные нам параметры (например, Arial, 12, полужирный).
  3. Теперь самое важное — колонка «Оформляемые поля». Нажмем на кнопку выбора и найдем в списке доступных полей именно нашу Группу (она будет отображаться в списке так же, как вы её назвали при создании).
  4. Чтобы оформление применилось именно к заголовку группы, в колонке «Область использования» (если она доступна) или через дополнительные условия убедимся, что флаг стоит на значении В заголовке.

Такой подход позволяет гибко управлять визуализацией, не прибегая к сложному кодированию в модуле объекта.

Почему не отображается подвал отчета: работа с макетами группировок

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

Во-первых, выясним причину на уровне структуры. Если группировка «Подвал» не содержит в себе детальных записей или ресурсов, СКД считает её «пустой» и по умолчанию скрывает. Чтобы это исправить, выполним следующие действия:

  1. Выделим группировку «Подвал» в дереве настроек.
  2. Перейдем на вкладку «Дополнительные настройки» (внизу).
  3. Найдем параметр «Выводить пустые группировки» и установим его в значение Да.

Во-вторых, проверим соответствие имен. Если вы создали Макет группировки, убедитесь, что имя группировки в структуре (на вкладке «Настройки») символ в символ совпадает с именем, указанным в макете (на вкладке «Макеты»). Малейшая опечатка или лишний пробел приведут к тому, что 1С не свяжет макет с веткой отчета.

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

Скрытие подписи и группировки при неактивном параметре

Рассмотрим ситуацию: у нас есть параметр (например, ВыводитьПодпись), и мы хотим, чтобы целая область отчета исчезала, если пользователь снял галочку с этого параметра. Простое использование параметра внутри макета не поможет — останется пустая строка или статичный текст. Нам нужно управлять видимостью всей группировки.

Посмотрим на пример настройки отбора на уровне группировки:

  1. В структуре отчета встанем на группировку, отвечающую за вывод подписи или подвала.
  2. Перейдем на её личную вкладку «Отбор».
  3. Добавим новое условие. В качестве левого значения выберем наш параметр: ПараметрыДанных.ВыводитьПодпись.
  4. Вид сравнения установим Равно, а правое значение — Истина.

Если тип параметра — не Булево, а, например, ссылка на справочник, мы можем использовать условие Заполнено. Таким образом, если галочка использования параметра в форме отчета будет снята, условие отбора не выполнится, и СКД просто исключит эту группировку из процесса вывода.

Как сделать параметр необязательным в запросе

Выясним причину, по которой отчет отказывается формироваться без заполненного параметра. Если параметр просто прописан в тексте запроса в секции ГДЕ, 1С ожидает его обязательного наличия. Чтобы сделать параметр гибким, мы должны использовать синтаксис фигурных скобок.

Рассмотрим пример правильного написания условия в тексте запроса СКД:


ВЫБРАТЬ
    Продажи.Номенклатура,
    Продажи.СуммаОборот
ИЗ
    РегистрНакопления.Продажи.Обороты(&НачалоПериода, &КонецПериода, , ) КАК Продажи
ГДЕ
    {Номенклатура.* КАК Номенклатура, Склад.* КАК Склад}

Если же параметр используется не в виртуальных таблицах, а в обычном условии ГДЕ, схема будет выглядеть так:


ГДЕ
    {Контрагент = &Контрагент}

При таком подходе, если пользователь не установил флаг использования параметра &Контрагент в настройках, система автоматически удалит всё условие из итогового SQL-запроса. Это позволяет отчету формироваться по всем данным без ошибок.

Также не забудьте зайти на вкладку «Параметры» в СКД и для нужных параметров проверить свойство «Использование». Установка значения Авто обычно является оптимальной, но в некоторых случаях стоит явно указать Недоступен, если вы управляете им программно, или снять флаг Запрет незаполненных значений, чтобы отчет мог стартовать с пустым полем.

Вывод текстовых надписей через выражения

Если вам нужно, чтобы в одной ячейке макета текст менялся в зависимости от условий, проанализируем ситуацию с использованием выражений. Вместо типа заполнения Текст, выберите для ячейки тип Параметр или Шаблон.

В выражении параметра макета можно написать конструкцию:


ВЫБОР 
    КОГДА &ОтветственноеЛицо Заполнено 
    ТОГДА "Исполнитель: " + Представление(&ОтветственноеЛицо) 
    ИНАЧЕ "" 
КОНЕЦ

Это позволит сделать отчет более профессиональным и чистым, скрывая лишние поясняющие надписи, когда данные отсутствуют.

← На главную