Отчеты и Аналитика · 11 мин
Как работает условное оформление в 1С
Как работает условное оформление в 1С: где настраивается, как задать условия отбора, оформить строки списков и отчётов, типичные ошибки и проверка результата.
Условное оформление в 1С — это механизм, который автоматически меняет внешний вид данных: цвет текста или фона, шрифт, видимость и доступность полей — в зависимости от заданных условий. Оно работает в динамических списках, табличных частях документов, формах и отчётах на СКД, не требуя написания программного кода в большинстве типовых сценариев.
Механизм построен на простой логике: вы описываете условие отбора (например, «Сумма больше 100 000»), задаёте оформление (например, красный цвет фона) и указываете, к каким полям оно применяется. Платформа сама проверяет каждую строку при выводе и подсвечивает подходящие. Пользователь видит результат сразу, без обновления формы или перепроведения документов.
Условное оформление не меняет сами данные в базе — только их отображение. Это безопасный инструмент: даже ошибочная настройка не испортит документы или проводки, а просто приведёт к неверной подсветке, которую легко исправить. Именно поэтому его удобно использовать для визуального контроля: просроченные счета, отрицательные остатки, незаполненные реквизиты.
Где применяется условное оформление
Механизм доступен в нескольких областях платформы, и в каждой он настраивается по-своему. В динамических списках (журналы документов, списки справочников) условное оформление подсвечивает строки по значениям реквизитов — например, непроведённые документы серым, а помеченные на удаление зачёркнутым шрифтом.
В формах объектов условное оформление управляет элементами: скрывает поля, делает их недоступными или меняет цвет в зависимости от значений других реквизитов. Классический пример — поле «Договор» становится обязательным и подсвечивается, только если выбран контрагент с расчётами по договорам.
В отчётах на системе компоновки данных (СКД) условное оформление — отдельная закладка настроек, доступная и пользователю без прав разработчика. Там можно раскрасить строки продаж по менеджерам, выделить минусовую прибыль красным или скрыть служебные колонки. В табличных документах (печатных формах) применяется аналогичный механизм через область оформления.
Как устроено условное оформление: условие, оформление, поля
Каждый элемент условного оформления состоит из трёх частей. Первая — отбор: логическое условие, которое проверяется для каждой строки или элемента. Доступны сравнения «равно», «не равно», «больше», «меньше», «в списке», «содержит», «заполнено» и другие, их можно объединять группами «И» и «ИЛИ».
Вторая часть — оформление: набор параметров внешнего вида. Основные из них: цвет текста, цвет фона, шрифт (размер, жирность, наклон), текст-подстановка, отметка незаполненного, видимость и доступность. Не все параметры работают во всех контекстах: например, «доступность» имеет смысл в формах, а «текст» — в списках и отчётах.
Третья часть — оформляемые поля: перечень колонок или элементов, к которым применяется оформление. Если список полей пуст, оформление действует на всю строку целиком. Если указать конкретные поля, подсвечены будут только они — это удобно, когда нужно выделить одну колонку, а не весь ряд.
Проверяется для каждой строки: сравнение, список, заполненность
Цвет фона и текста, шрифт, видимость, доступность, текст-подстановка
Пусто — вся строка; указаны поля — только перечисленные колонки
Настройка условного оформления в конфигураторе
Разработчик задаёт условное оформление в свойствах формы или динамического списка. Для динамического списка путь такой: открыть форму списка в конфигураторе, выделить элемент таблицы, связанный со списком, и в палитре свойств найти «Условное оформление» — либо открыть настройку самого динамического списка через свойство «Настройка списка».
В открывшемся окне добавьте новый элемент: на закладке «Отбор» задайте условие, на закладке «Оформление» выберите параметры (например, «Цвет фона» — светло-красный), на закладке «Оформляемые поля» укажите нужные колонки или оставьте пустым для всей строки. Порядок элементов в списке имеет значение: при конфликте оформлений приоритет у верхних строк.
Для формы объекта условное оформление находится в свойствах самой формы (ссылка «Условное оформление» в окне редактора формы). Там условия строятся по реквизитам формы, а оформляемыми полями выступают элементы формы — так реализуют динамическую видимость и доступность полей без кода.
- 1Откройте форму списка и выделите таблицу динамического списка
- 2В палитре свойств откройте «Условное оформление» и добавьте элемент
- 3На закладке «Отбор» задайте условие, например «Проведен = Нет»
- 4На закладке «Оформление» выберите цвет фона или шрифт
- 5На закладке «Оформляемые поля» укажите колонки или оставьте пустым для всей строки
- 6Сохраните конфигурацию и проверьте результат в режиме предприятия
Условное оформление в отчётах на СКД
В отчётах на системе компоновки данных условное оформление доступно прямо в пользовательском режиме — это один из немногих инструментов визуальной настройки, не требующий прав разработчика. Откройте отчёт, перейдите в «Настройки» (кнопка «Ещё» → «Изменить вариант» или «Настройки»), найдите закладку «Условное оформление».
Добавьте элемент и заполните три области: отбор (например, «Прибыль Меньше 0»), оформление (красный цвет текста) и оформляемые поля (колонка «Прибыль»). После нажатия «Сформировать» отчёт перестроится с подсветкой. Настройку можно сохранить как вариант отчёта, чтобы она применялась автоматически при следующих открытиях.
Полезный приём — параметр «Текст» в оформлении: он подменяет выводимое значение. Например, вместо пустого значения можно выводить слово «не указано», а вместо флага «Истина» — понятное «Да». Это делает отчёт читабельнее без изменения запроса.
Программное условное оформление через код
Когда настройки в конфигураторе недостаточно — например, условие зависит от данных, которые вычисляются при открытии формы, — условное оформление добавляется программно в модуле формы, обычно в обработчике «ПриСозданииНаСервере». Работа ведётся с коллекцией «УсловноеОформление» формы или динамического списка.
Типовой фрагмент кода выглядит так: создаётся элемент условного оформления, в него добавляется элемент отбора с видом сравнения и значением, затем устанавливается параметр оформления и добавляется оформляемое поле. Ниже пример подсветки строк списка, где сумма превышает порог:
ЭлементОформления = УсловноеОформление.Элементы.Добавить();
ЭлементОформления.Использование = Истина;
ЭлементОтбора = ЭлементОформления.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ЭлементОтбора.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Сумма");
ЭлементОтбора.ВидСравнения = ВидСравненияКомпоновкиДанных.Больше;
ЭлементОтбора.ПравоеЗначение = 100000;
ЭлементОтбора.Использование = Истина;
ЭлементОформления.Оформление.УстановитьЗначениеПараметра("ЦветФона", WebЦвета.СветлоРозовый);
ПолеОформления = ЭлементОформления.Поля.Элементы.Добавить();
ПолеОформления.Поле = Новый ПолеКомпоновкиДанных("Сумма");
ПолеОформления.Использование = Истина;
Программный способ даёт гибкость, но требует аккуратности: код выполняется при каждом создании формы, поэтому тяжёлые вычисления в условиях лучше не размещать. Если оформление статично — предпочтительнее настройка в конфигураторе, она прозрачнее для сопровождения.
ЭлементОформления.Оформление.УстановитьЗначениеПараметра("ЦветТекста", WebЦвета.Красный);Типичные ошибки и ограничения
Самая частая проблема — оформление не срабатывает, потому что поле из условия отбора отсутствует в данных списка или отчёта. В динамическом списке поле должно присутствовать в запросе, в отчёте СКД — быть доступным в настройках. Вторая причина — неверный вид сравнения: например, сравнение строки с числом или проверка «Равно» там, где нужно «В списке».
Ещё одна ловушка — конфликт нескольких элементов оформления. Если два правила задают разный цвет фона для одной ячейки, применится то, что выше в списке, либо результат будет неочевидным. Проверяйте порядок элементов и при необходимости отключайте лишние через флаг «Использование».
Из ограничений стоит помнить: условное оформление не вычисляет произвольные выражения — только сравнения полей с константами или другими полями. Сложную логику (например, «просрочено более чем на 5 дней относительно текущей даты») приходится выносить в вычисляемую колонку запроса или пользовательское поле СКД, а оформление накладывать уже на неё.
Как проверить результат
После настройки откройте список или отчёт в режиме «1С:Предприятие» и найдите строки, которые точно соответствуют условию, и строки, которые точно не соответствуют. Первые должны быть подсвечены, вторые — нет. Если подходящих данных нет, создайте тестовый документ с нужными значениями на копии базы.
Проверьте граничные значения: если условие «Сумма больше 100 000», посмотрите строку ровно со 100 000 — она не должна подсвечиваться. Для условий на даты проверьте поведение с пустой датой: пустое значение часто попадает под сравнение «меньше» и подсвечивается неожиданно, поэтому добавляйте в отбор проверку на заполненность.
Если оформление настроено в пользовательском режиме отчёта, убедитесь, что вариант сохранён и подсветка сохраняется после повторного открытия. Для настроек в конфигураторе проверьте работу под пользователем с ограниченными правами — иногда поля, недоступные по правам, ведут себя иначе.
Как проверить результат
Подсвечена заданным оформлением
Оформление не применилось — проверьте отбор и наличие поля в данных
Оформлена стандартно
Подсвечена лишняя строка — условие слишком широкое, добавьте проверку заполненности
Поведение соответствует виду сравнения (больше/не меньше)
Граница работает наоборот — перепутан вид сравнения
Подсветка сохранилась
Настройки потерялись — вариант отчёта не сохранён
Частые вопросы
Меняет ли условное оформление данные в базе?
Нет. Механизм влияет только на отображение в интерфейсе: цвета, шрифты, видимость полей. Значения реквизитов, проводки и движения документов остаются неизменными, поэтому эксперименты с настройкой безопасны.
Почему условное оформление не срабатывает в отчёте СКД?
Чаще всего поле из условия отбора не включено в настройки отчёта или недоступно на текущем уровне группировки. Добавьте поле в выбранные поля или ресурсы, проверьте вид сравнения и типы значений, затем переформируйте отчёт.
Можно ли настроить условное оформление без прав разработчика?
Да, но только в отчётах на СКД: закладка «Условное оформление» доступна в пользовательских настройках варианта отчёта. Для динамических списков и форм настройка выполняется в конфигураторе или кодом, то есть требует участия разработчика.
Как подсветить всю строку, а не одну колонку?
Оставьте список оформляемых полей пустым — тогда оформление применится ко всей строке таблицы. Если указаны конкретные поля, подсветятся только они.
Что делать, если условие сложнее простого сравнения?
Штатный отбор поддерживает только сравнения полей со значениями или другими полями. Сложную логику выносите в вычисляемую колонку запроса динамического списка или пользовательское поле СКД, а условное оформление накладывайте уже на результат этого поля простым сравнением.
Что важно запомнить
Условное оформление 1С строится по схеме «отбор → оформление → поля» и работает в списках, формах и отчётах СКД без изменения данных. В отчётах его может настроить сам пользователь, в списках и формах — разработчик. Главные причины неработающей подсветки: отсутствие поля в данных, неверный вид сравнения и конфликт правил.