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