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