Как в отчете на СКД заменить пустое значение измерения на произвольный заголовок?

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

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

Решение через конструкцию «ВЫБОР КОГДА» в запросе

Это самый популярный и надежный способ, позволяющий подменить значение на уровне получения данных. Суть метода заключается в проверке измерения на ЗНАЧЕНИЕ(Справочник.Проекты.ПустаяСсылка) и принудительной подстановке строки «Аванс» в случае отсутствия данных.

Давайте разберем, как это реализовать:

  1. Откройте набор данных в СКД.
  2. Перейдите в текст запроса и замените обычное обращение к полю на конструкцию ВЫБОР.

Рассмотрим пример кода, который нужно внедрить в ваш запрос:


ВЫБРАТЬ
    Таблица.Сумма КАК Сумма,
    ВЫБОР
        КОГДА Таблица.Проект = ЗНАЧЕНИЕ(Справочник.Проекты.ПустаяСсылка) 
            ТОГДА "Аванс"
        ИНАЧЕ Таблица.Проект
    КОНЕЦ КАК Проект
ИЗ
    РегистрНакопления.ВашРегистр КАК Таблица

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

Использование вычисляемых полей в настройках СКД

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

  1. В конструкторе СКД перейдите на вкладку Вычисляемые поля.
  2. Создайте новое поле с именем ПроектОтображение.
  3. В поле Выражение укажите формулу: ВЫБОР КОГДА Проект ЕСТЬ NULL ИЛИ Проект = ЗНАЧЕНИЕ(Справочник.Проекты.ПустаяСсылка) ТОГДА "Аванс" ИНАЧЕ Проект КОНЕЦ.
  4. Используйте это новое поле в группировках отчета вместо стандартного поля «Проект».

Оформление пустых значений через подсистему оформления СКД

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

Посмотрим на шаги настройки:

  1. Перейдите на вкладку Условное оформление в настройках СКД.
  2. Добавьте новое условие: Проект ЕСТЬ NULL (или Проект = ЗНАЧЕНИЕ(Справочник.Проекты.ПустаяСсылка)).
  3. В разделе Оформление найдите параметр Текст и укажите там значение «Аванс».
  4. Выберите поле, к которому нужно применить это оформление.

Этот способ является наиболее «чистым» с точки зрения архитектуры, так как мы не меняем типы данных в запросе, а лишь задаем способ отображения для пользователя.

Какой метод выбрать?

Мы проанализировали три основных подхода. Выбор зависит от ваших целей:

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

← На главную