Как раскрасить строки списков и отчётов в 1С 8.3
Содержание
Чтобы выделить строки в 1С цветом, программист не нужен: в любом списке откройте Ещё → Настроить список → Условное оформление, задайте условие и цвет — строки, попавшие под правило, окрасятся сразу. Это и есть условное оформление, штатный механизм платформы 8.3.
Тот же механизм работает в отчётах, на формах и из встроенного языка — от настройки мышкой в «Предприятии» до программного оформления динамического списка. Везде он собран из трёх одинаковых частей: чем красить, при каком условии и какие поля затронуть.
Из чего состоит условное оформление
Любое правило раскраски — хоть в списке, хоть в отчёте, хоть в коде — держится на трёх составляющих. Понимаете их — настроите где угодно.
- 🎨 Оформление — чем красить. Цвет фона (
ЦветФона), цвет текста (ЦветТекста), шрифт, а также видимость и доступность поля. - 🔍 Условие — когда применять. Отбор по значениям полей строки: остаток меньше нуля, сумма больше лимита, дата просрочена, реквизит пустой.
- 📍 Оформляемые поля — к чему применять. Список колонок, которые окрасятся. Если оставить его пустым — окрасится вся строка целиком.
Запомните последний пункт: он отвечает за частый вопрос «почему красится вся строка, а не одна ячейка». Пустой список полей = вся строка, конкретная колонка в списке = только она.
Правил можно добавить несколько. Они применяются по порядку, сверху вниз, и верхнее при конфликте перекрывает нижнее по одному и тому же полю.
Способов настроить это четыре, и выбор зависит не от сложности, а от того, кому раскраска должна быть видна и где живёт правило.
| Способ | Где настраивается | Кому видно | Когда выбирать |
|---|---|---|---|
| Настройка списка | «Предприятие», список на форме | Только вам | Разовая подсветка журнала или справочника под свою задачу |
| Настройка отчёта | «Предприятие», настройки отчёта (СКД) | Вам, можно сделать общим | Раскраска показателей и строк в отчёте |
| Условное оформление формы | Конфигуратор, редактор формы | Всем пользователям | Бизнес-правило, которое должно работать у всех одинаково |
| Код на встроенном языке | Конфигуратор, модуль формы | Всем пользователям | Условие зависит от расчёта, нескольких реквизитов или данных из регистров |
Первые два способа доступны обычному пользователю и ничего не ломают в конфигурации. Последние два — задача разработчика и требуют обновления базы.
Ещё → Настроить список → Условное оформление. Сохранится лично у вас.Выделяем строки цветом в режиме «Предприятие»
Самый частый случай — раскрасить список или журнал, не трогая конфигурацию. Подходит для любого динамического списка: справочников, документов, журналов.
- Откройте нужный список (например, список «Заказы клиентов» или журнал документов ).
- В командной панели нажмите
Ещё → Настроить список…. - Перейдите на вкладку Условное оформление и нажмите
Добавить. - В колонке Оформление выберите, чем красить: щёлкните по полю, задайте
Цвет фонаилиЦвет текста, при желании — жирный шрифт. - В колонке Условие добавьте отбор: поле, вид сравнения, значение. Например, поле «Сумма» → «Больше» →
100000. - В колонке Оформляемые поля укажите колонки, которые нужно подсветить. Оставите пусто — окрасится вся строка.
- Нажмите
Завершить редактирование.
Поле, по которому строите условие, должно присутствовать в составе списка. Если его нет среди колонок — сначала добавьте его через вкладку «Поля» в той же настройке, иначе условие просто не сработает.
Разберём на живом примере. Нужно подсветить просроченные заказы в журнале. Условие — поле «Дата отгрузки» меньше текущей даты, а статус не «Отгружен». Добавляете два элемента отбора в одном правиле (они работают по «И»), в оформлении ставите розовый фон, оформляемые поля оставляете пустыми — красится вся строка. Теперь просрочка видна с одного взгляда.
Что выбрать, фон или цвет текста, зависит от задачи:
- 🟥 Цвет фона заметнее, подходит для редких критичных строк (просрочка, отрицательный остаток). Но на выделенной курсором строке фон перекрывается системной подсветкой.
- 🔤 Цвет текста и жирный шрифт читаются всегда, в том числе под курсором. Хороши, когда подсвеченных строк много.
Раскраску полезно сочетать с сортировкой и отбором на соседних вкладках той же настройки. Отсортируете журнал по дате отгрузки, а просрочку подсветите цветом — критичные строки соберутся вверху и будут выделены. Это заметно быстрее, чем каждый раз искать их глазами.
Настройка сохраняется персонально для вашего пользователя. Сбросить её можно через Ещё → Установить стандартные настройки.
Подсветка строк в отчётах и СКД
В отчётах на системе компоновки данных (СКД) механизм тот же, только вызывается из настроек отчёта.
- Сформируйте отчёт и откройте его настройки: кнопка
НастройкилибоЕщё → Изменить вариант отчёта…. - Если видите только простой набор полей — переключитесь на расширенный вид настроек (пункт в меню
Ещёформы настроек). - Откройте вкладку Условное оформление и добавьте элемент.
- Заполните те же три части:
Оформление(цвет),Условие(отбор),Оформляемые поля(колонки отчёта). - Нажмите
Завершить редактированиеи переформируйте отчёт.
Для отчёта есть нюанс группировок. Если оформляемое поле стоит в строках, подсветка ляжет на детальные записи; если в условии участвует показатель группировки — на итоговую строку. Проверяйте, на каком уровне стоит поле, которое красите.
Правило оформления сохраняется внутри варианта отчёта. Чтобы раскраска была доступна коллегам, сохраните вариант отчёта как общий (Ещё → Сохранить вариант отчёта), а не только для себя.
Цвет можно привязать не к фиксированному значению, а к параметру отчёта — тогда порог раскраски пользователь задаёт на форме, не лезя в настройки оформления. Например, параметр «Критичный остаток»: сравниваете поле остатка с параметром, и пользователь сам решает, с какого значения строки становятся красными.
В оформлении отчёта доступны не только цвет и шрифт. Через поле Отображение можно вообще скрыть значение, а через картинку — поставить в ячейку индикатор-значок. Для складских и платёжных отчётов цветной кружок рядом с числом иногда нагляднее, чем заливка.
Настройка условного оформления формы в Конфигураторе
Когда раскраска нужна всем пользователям сразу и «из коробки», её закладывают в конфигурацию. Делается это в редакторе управляемой формы.
- Откройте нужную форму в Конфигураторе.
- В командной панели редактора формы (над деревом элементов) вызовите список Условное оформление.
- Добавьте элемент и заполните знакомые три части:
Оформление,Условие,Оформляемые поля. - В «Оформляемые поля» выбирайте элементы формы — колонки таблицы или поля, которые окрасятся.
- Сохраните форму и обновите конфигурацию базы данных.
Это оформление применится ко всем, кто открывает форму, и его не сможет случайно сбросить пользователь. Удобно для бизнес-правил вроде «просроченные заказы — красным», которые должны работать одинаково у всех.
Условие в Конфигураторе собирается из тех же элементов отбора, что и в режиме «Предприятие»: поле, вид сравнения, значение. Отличие в том, что доступны реквизиты формы и её данных целиком — можно опираться на служебные поля, которых пользователь в настройке списка не видит. Оформляемые поля здесь — это именно элементы формы (колонки таблицы), а не поля запроса.
Табличные части документов раскрашиваются так же: механизм общий для любых таблиц на форме, а не только для динамических списков. Например, в табличной части «Товары» можно подсветить строки, где количество превышает доступный остаток, — правило настраивается один раз в форме документа и работает у всех.
Правка типовой конфигурации снимает её с поддержки. Чтобы не ломать обновления, условное оформление штатной формы лучше добавлять через расширение конфигурации, а не прямой правкой.
Программное выделение строк цветом в коде
Если условие сложнее простого отбора — зависит от нескольких реквизитов, пересчёта или данных из регистра — правило оформления собирают кодом. Обычно в обработчике ПриСозданииНаСервере.
Для динамического списка оформление живёт в его компоновщике настроек. Пример красит красным строки, где сумма документа больше 100 000:
&НаСервере
Процедура УстановитьУсловноеОформлениеСписка()
УО = Список.КомпоновщикНастроек.Настройки.УсловноеОформление;
Элемент = УО.Элементы.Добавить();
// Условие: сумма больше 100 000
Отбор = Элемент.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
Отбор.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("СуммаДокумента");
Отбор.ВидСравнения = ВидСравненияКомпоновкиДанных.Больше;
Отбор.ПравоеЗначение = 100000;
// Оформление: красный цвет текста
Элемент.Оформление.УстановитьЗначениеПараметра("ЦветТекста", WebЦвета.Красный);
// Оформляемое поле: колонка «СуммаДокумента» (не задавать — вся строка)
ОформляемоеПоле = Элемент.Поля.Элементы.Добавить();
ОформляемоеПоле.Поле = Новый ПолеКомпоновкиДанных("СуммаДокумента");
КонецПроцедуры
Разберём по частям:
Список.КомпоновщикНастроек.Настройки.УсловноеОформление— коллекция правил динамического списка с именемСписок.Тип("ЭлементОтбораКомпоновкиДанных")— добавляем именно элемент отбора, а не группу.ВидСравненияКомпоновкиДанных— доступныБольше,Меньше,Равно,НеРавно,Заполненои другие.WebЦвета.Красный— быстрый способ задать цвет; можно иНовый Цвет(255, 128, 128)для своего оттенка.
Поле из условия (СуммаДокумента) должно входить в состав полей списка — иначе отбор не к чему применить. Для оформления формы в целом вместо Список.КомпоновщикНастроек… используют свойство формы УсловноеОформление, а поля адресуют по пути данных формы.
Параметров оформления больше одного. В УстановитьЗначениеПараметра можно передать:
ЦветТекстаиЦветФона— цвета, значениями типаЦветили изWebЦвета;Шрифт— например, жирный черезНовый Шрифт(, , Истина);Видимость— скрыть значение в ячейке по условию;ТекстоваяСтрока— подменить выводимый текст.
Код удобен, когда правило нельзя выразить простым отбором: подсветить строки, где фактический остаток ниже страхового запаса из регистра сведений, или где расчётная рентабельность отрицательна. Такие условия в интерфейсе не соберёшь — только кодом. Вызывать процедуру оформления достаточно один раз при открытии формы: дальше платформа применяет правило к каждой строке автоматически, по мере прокрутки списка.
Почему оформление не срабатывает: разбор ошибок
Чаще всего раскраска «не работает » не из-за платформы, а из-за одной из четырёх мелочей.
Ещё одна типичная причина — настройка сделана в «Предприятии» и сброшена командой Установить стандартные настройки. Персональные настройки списка легко затереть, поэтому важные бизнес-правила выносят в Конфигуратор.
Отдельно про отчёты: если подсветка «пропадает» после переформирования, проверьте, что правило сохранено в варианте отчёта, а не только в текущем сеансе настроек.
И ещё одно частое недопонимание. Условное оформление раскрашивает строки на экране — в списке, на форме, в отчёте. К печатной форме оно отношения не имеет: цвет ячеек табличного документа задаётся в макете, а не здесь. Если нужно, чтобы раскраска попала на печать или в выгрузку, это уже другая задача и другой механизм.