Как раскрасить строки в 1С: условное оформление и СКД
Содержание
Выделить строку цветом
в 1С 8.3 можно без единой строки кода — через механизм условного оформления. В любом списке жмёте Ещё → Настроить список → Условное оформление, в отчёте на СКД — открываете Настройки → Условное оформление. Задаёте условие (например, остаток меньше нуля), выбираете цвет фона или текста и указываете, какие колонки красить. Всё, строки, попавшие под условие, подсветятся.
Условное оформление работает одинаково и в динамических списках на форме, и в отчётах на системе компоновки данных (СКД) — в основе лежит один и тот же движок. Разница только в том, где открывается окно настройки. Если же оформление нужно включать по сложному условию или менять на лету, цвет строки задают программно в коде конфигурации.
Ниже — все три сценария: раскраска списков руками пользователя, правила в отчётах через конструктор СКД и выделение цветом кодом. Плюс отдельно разобраны ошибки, из-за которых цвет «не применяется».
Два механизма раскраски и когда какой брать
В 1С 8.3 цвет строки почти никогда не «прибивают» намертво. Вместо этого задают правило: при каком условии и какие поля подсветить. Движок сам проверяет каждую строку и применяет оформление. Это и есть условное оформление.
Форматов два, и они не конкурируют, а дополняют друг друга:
- 🎨 Условное оформление списков и форм — красит строки в журналах документов, справочниках, динамических списках. Настраивается прямо в режиме «1С:Предприятие», сохраняется в настройках пользователя.
- 📊 Условное оформление СКД — работает в отчётах. Настраивается либо пользователем в отчёте, либо разработчиком в схеме компоновки данных.
Третий путь — код — нужен, когда правило динамическое: цвет зависит от расчёта, от прав текущего пользователя или от данных, которых в отборе нет.
Ещё → Настроить список. Код не нужен, настройка сохранится лично у вас.Область.ЦветФона при выводе макета, без механизма условного оформления.Условное оформление списков без программиста
Самый частый запрос — подсветить строки в журнале или справочнике. Решается за минуту и без конфигуратора.
- Откройте нужный список (журнал документов , справочник, список регистра).
- Нажмите
Ещё(меню в правом верхнем углу формы) →Настроить список. - Перейдите на вкладку
Условное оформление. - Нажмите
Добавить— появится новый элемент оформления с тремя блоками.
Эти три блока — суть всего механизма:
- Оформление — что меняем:
Цвет фона,Цвет текста,Шрифт(жирный, курсив), а такжеВидимостьиДоступность. - Условие — когда применяем: отбор по полю списка, например
Сумма документа Меньше 0илиПроведён Равно Нет. - Оформляемые поля — какие колонки красим. Если список оставить пустым, оформление ляжет на всю строку.
Чтобы подсветить строку целиком, блок «Оформляемые поля» не заполняйте — пустой список означает «все колонки».
Пример: в списке «Реализация товаров» выделить непроведённые документы серым фоном. Условие — Проведён Равно Ложь, оформление — цвет фона светло-серый, поля не указываем. Непроведённые строки сразу видны в общем потоке.
Настройка привязана к конкретному списку и к вашему пользователю. Коллеги её не увидят, пока не настроят у себя или пока правило не вынесут в конфигурацию.
Правила оформления в отчётах через конструктор СКД
В отчётах раскраской заведует та же система компоновки данных. Настроить её можно на двух уровнях — пользовательском и уровне разработчика.
Пользователь меняет оформление в готовом отчёте:
- Сформируйте отчёт, нажмите
Настройки(илиЕщё → Изменить вариант отчёта). - Включите расширенный режим настроек, если доступен переключатель вида.
- Откройте вкладку
Условное оформлениеи добавьте элемент — те же три блока: оформление, условие, оформляемые поля.
Разработчик закладывает правило прямо в схему:
- В конфигураторе откройте основную схему компоновки данных отчёта.
- Внизу перейдите на вкладку
Настройки. - Выберите вкладку
Условное оформлениеи добавьте элемент.
В СКД у «Оформляемых полей» есть нюанс, которого нет в списках: можно указать не только колонку, но и область применения — заголовок, ресурс, группировку. Поэтому в отчёте реально покрасить, например, только итоговую строку по группе или только одну колонку-ресурс.
Таблица — какой уровень что даёт:
| Уровень | Где настраивается | Кто видит результат |
|---|---|---|
| Пользовательский | В отчёте, Настройки → Условное оформление | Только автор настройки (можно сохранить вариант) |
| Схема СКД | В конфигураторе, вкладка Настройки схемы | Все пользователи отчёта |
Если правило нужно всем и навсегда — задавайте его в схеме СКД в конфигураторе. Пользовательская настройка живёт в варианте отчёта и легко теряется при сбросе.
Раскраска строк цветом в коде 1С
Когда условие не укладывается в простой отбор (цвет зависит от расчёта, роли пользователя или вычисляемого поля), оформление добавляют программно. Механизм один и тот же — элементы условного оформления, только создаются они из кода.
Для динамического списка на управляемой форме в процедуре ПриСозданииНаСервере:
Элемент = Список.УсловноеОформление.Элементы.Добавить();
// Условие: остаток меньше нуля
Отбор = Элемент.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
Отбор.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Остаток");
Отбор.ВидСравнения = ВидСравненияКомпоновкиДанных.Меньше;
Отбор.ПравоеЗначение = 0;
// Оформление: красный текст
Элемент.Оформление.УстановитьЗначениеПараметра("ЦветТекста", WebЦвета.Красный);
// Поле, к которому применяем
ОформляемоеПоле = Элемент.Поля.Элементы.Добавить();
ОформляемоеПоле.Поле = Новый ПолеКомпоновкиДанных("Остаток");
Здесь Список — имя реквизита формы типа «Динамический список». Поле в отборе и в оформлении указывается строго так, как оно называется в списке.
Для отчёта на СКД правило добавляют в настройки компоновщика:
УслОформление = КомпоновщикНастроек.Настройки.УсловноеОформление;
Элемент = УслОформление.Элементы.Добавить();
Отбор = Элемент.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
Отбор.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("СуммаОборот");
Отбор.ВидСравнения = ВидСравненияКомпоновкиДанных.Больше;
Отбор.ПравоеЗначение = 100000;
Элемент.Оформление.УстановитьЗначениеПараметра("ЦветФона", WebЦвета.СветлоЖелтый);
ОформляемоеПоле = Элемент.Поля.Элементы.Добавить();
ОформляемоеПоле.Поле = Новый ПолеКомпоновкиДанных("СуммаОборот");
Доступные параметры оформления — те же, что в окне настройки: ЦветФона, ЦветТекста, Шрифт, Видимость, Доступность. Цвет задают либо из палитры WebЦвета (например, WebЦвета.Красный), либо вручную — Новый Цвет(255, 230, 230) по значениям RGB.
Для жирного шрифта удобно собрать объект шрифта:
Элемент.Оформление.УстановитьЗначениеПараметра("Шрифт", Новый Шрифт(, , Истина));
Третий параметр Истина включает жирность. Так подсвечивают, скажем, просроченные строки — красный текст плюс жирный шрифт заметны даже боковым зрением.
Программный способ незаменим, когда правило зависит от текущего пользователя или его роли. В коде легко проверить РольДоступна(...) или должность сотрудника и подсветить строки по-разному для разных ролей — через отбор в окне настройки такое не задать. При этом помните: оформление, добавленное в ПриСозданииНаСервере, пересобирается при каждом открытии формы, поэтому перед добавлением имеет смысл очистить коллекцию (Список.УсловноеОформление.Элементы.Очистить()), если форма переоткрывается в одном сеансе и правила могли накопиться.
Если красите табличный документ при выводе макета (а не список или отчёт на СКД), механизм другой: Область.ЦветФона = WebЦвета.Красный прямо перед ТабДок.Вывести(Область). Это разовая заливка ячеек, без условий.
Выделение в табличных частях и формах
Отдельная история — таблицы на форме, не связанные с динамическим списком (например, табличная часть документа или таблица значений на форме). Здесь оформление тоже задаётся через Форма.УсловноеОформление, но поле указывают по имени колонки формы.
Порядок действий:
- На управляемой форме откройте свойство
Условное оформление(команда в контекстном меню формы или через палитру свойств самой формы). - Добавьте элемент, задайте оформление и условие.
- В «Оформляемых полях» выберите не реквизит, а колонку таблицы формы — тот элемент, который отображает данные.
Частый сценарий — подкрасить строки табличной части по флажку. Например, в заказе покупателя строки с признаком «под заказ» выделить голубым фоном. Условие ссылается на поле табличной части, оформляемое поле — колонка этой же таблицы на форме.
Ключевой момент: в таблицах формы имя поля в условии и имя оформляемой колонки — это разные сущности. Условие проверяет данные (реквизит табличной части), а красит визуальную колонку (элемент формы). Перепутать их — частая причина, почему «ничего не красится» (разберём ниже).
Для обычных (неуправляемых) форм в старых решениях цвет строки задавали в обработчике ПриВыводеСтроки через параметры оформления — но в типовых конфигурациях на управляемых формах этот путь уже не используется, везде работает условное оформление.
Частые ошибки при настройке оформления
Условное оформление либо работает, либо «молча» не применяется — ошибок на экран оно почти не выдаёт. Поэтому разбор по симптомам.
ПриСозданииНаСервере один раз. Если процедура не вызывает добавление (например, стоит под условием, которое не выполнилось) — оформления не будет. Проверьте, что код реально отрабатывает.Ложь/Истина, а не с пустой строкой. Для ссылок — с пустой ссылкой нужного типа, иначе отбор не сработает.Ещё одна типовая ловушка — конфликт правил. Если два элемента оформления красят одно поле по пересекающимся условиям, применится то, что идёт в списке ниже. Порядок элементов в условном оформлении имеет значение: более частное правило держите после общего.
Приёмы, которые экономят время
Несколько практик, которые делают раскраску предсказуемой и переносимой.
- 🧩 Группируйте условия. В одном элементе оформления отбор может содержать несколько строк, объединённых по «И». Не плодите три элемента там, где хватит одного с составным условием.
- 🎯 Красьте поле, а не всю строку, когда важна одна цифра. Подсветка всей строки «кричит», подсветка одной колонки-ресурса фокусирует внимание на сумме.
- 🔁 Переносите оформление вместе с вариантом отчёта. Пользовательские настройки СКД сохраняются в варианте — его можно сохранить и раздать коллегам через
Ещё → Прочее → Изменить вариант отчёта → Сохранить. - 🌈 Не злоупотребляйте цветом. Три-четыре цвета на список — потолок. Когда подсвечено всё, не выделено ничего.
- ⚙️ Выбирайте значение из палитры, а не «на глаз».
WebЦветадают именованные оттенки, которые одинаково выглядят у всех. СамодельныйНовый Цвет()держите для фирменных оттенков.
Для списков с большим числом строк помните про производительность: сложное условие оформления проверяется для каждой видимой строки. Отбор по индексированному полю отрабатывает быстро, вычисление по формуле на тысячах строк — заметно медленнее.
Прежде чем менять условное оформление в типовой конфигурации через расширение или снятие с поддержки — сверьтесь с регламентом обновлений. Правка в основной конфигурации усложнит будущие обновления; чаще оформление добавляют расширением.
Частые вопросы
Можно ли выделить строку цветом в 1С без программиста?
Ещё → Настроить список → Условное оформление, в отчёте — Настройки → Условное оформление. Код для этого не нужен.Почему условное оформление не применяется?
Как покрасить только одну колонку, а не всю строку?
Чем условное оформление списка отличается от оформления в СКД?
Как задать цвет строки программно?
УсловноеОформление формы, списка или настроек СКД, задайте отбор и вызовите Оформление.УстановитьЗначениеПараметра("ЦветФона", WebЦвета.Красный).