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

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

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

Постановка задачи

Представим ситуацию: у вас есть отчет, в котором необходимо раскрасить колонку Количество1 в зависимости от значения Количество2. При этом Количество2 является вспомогательным и не должно отображаться в структуре отчета. Стандартная попытка удалить Количество2 из раздела Выбранные поля часто приводит к тому, что условие оформления перестает работать, так как система «теряет» данные, необходимые для сравнения.

Метод 1: Использование свойства «Обязательное поле»

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

  1. Откройте схему компоновки данных и перейдите на закладку Наборы данных.
  2. Выберите нужный Набор данных - запрос.
  3. В списке полей набора найдите Количество2.
  4. Установите флажок в колонке Обязательное.
  5. После этого перейдите на закладку Настройки в раздел Выбранные поля. Убедитесь, что Количество2 там отсутствует (вы его не выводите).
  6. Перейдите в Условное оформление и добавьте новое правило. В поле Условие вы теперь сможете свободно выбрать Количество2 и сравнить его с Количество1.

Данный метод заставляет СКД включать Количество2 в итоговый запрос к базе данных, несмотря на то, что оно не будет выведено в табличном документе. Благодаря этому механизм оформления получает доступ к необходимым значениям для выполнения логики.

Метод 2: Создание вычисляемого поля

Альтернативным и более «чистым» с точки зрения архитектуры отчета является использование Вычисляемого поля. Этот метод позволяет создать логическую метку, на основе которой будет работать оформление.

  1. Перейдите на закладку Вычисляемые поля.
  2. Добавьте новое поле, например, с именем НужноПодсветить.
  3. В поле Выражение пропишите логику сравнения:
    
    Выбор
        Когда Количество1 <> Количество2 Тогда Истина
        Иначе Ложь
    Конец
    
  4. Теперь в Условном оформлении вам достаточно указать условие: НужноПодсветить Равно Истина.

Этот подход предпочтительнее, так как он инкапсулирует логику сравнения внутри СКД. Вы не привязываетесь к конкретным полям в оформлении, а оперируете понятным флагом, который при необходимости легко изменить или дополнить новыми условиями.

Почему не стоит использовать «визуальные» хаки?

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

Заключение

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

← На главную