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