Как раскрасить строки списков и отчётов в 1С 8.3

· 9 мин

Содержание

Чтобы выделить строки в 1С цветом, программист не нужен: в любом списке откройте Ещё → Настроить список → Условное оформление, задайте условие и цвет — строки, попавшие под правило, окрасятся сразу. Это и есть условное оформление, штатный механизм платформы 8.3.

Тот же механизм работает в отчётах, на формах и из встроенного языка — от настройки мышкой в «Предприятии» до программного оформления динамического списка. Везде он собран из трёх одинаковых частей: чем красить, при каком условии и какие поля затронуть.

Из чего состоит условное оформление

Любое правило раскраски — хоть в списке, хоть в отчёте, хоть в коде — держится на трёх составляющих. Понимаете их — настроите где угодно.

  • 🎨 Оформление — чем красить. Цвет фона (ЦветФона), цвет текста (ЦветТекста), шрифт, а также видимость и доступность поля.
  • 🔍 Условие — когда применять. Отбор по значениям полей строки: остаток меньше нуля, сумма больше лимита, дата просрочена, реквизит пустой.
  • 📍 Оформляемые поля — к чему применять. Список колонок, которые окрасятся. Если оставить его пустым — окрасится вся строка целиком.

Запомните последний пункт: он отвечает за частый вопрос «почему красится вся строка, а не одна ячейка». Пустой список полей = вся строка, конкретная колонка в списке = только она.

Правил можно добавить несколько. Они применяются по порядку, сверху вниз, и верхнее при конфликте перекрывает нижнее по одному и тому же полю.

Способов настроить это четыре, и выбор зависит не от сложности, а от того, кому раскраска должна быть видна и где живёт правило.

СпособГде настраиваетсяКому видноКогда выбирать
Настройка списка«Предприятие», список на формеТолько вамРазовая подсветка журнала или справочника под свою задачу
Настройка отчёта«Предприятие», настройки отчёта (СКД)Вам, можно сделать общимРаскраска показателей и строк в отчёте
Условное оформление формыКонфигуратор, редактор формыВсем пользователямБизнес-правило, которое должно работать у всех одинаково
Код на встроенном языкеКонфигуратор, модуль формыВсем пользователямУсловие зависит от расчёта, нескольких реквизитов или данных из регистров

Первые два способа доступны обычному пользователю и ничего не ломают в конфигурации. Последние два — задача разработчика и требуют обновления базы.

Где настраивать выделение строк цветом?

Выделяем строки цветом в режиме «Предприятие»

Самый частый случай — раскрасить список или журнал, не трогая конфигурацию. Подходит для любого динамического списка: справочников, документов, журналов.

  1. Откройте нужный список (например, список «Заказы клиентов» или журнал документов ).
  2. В командной панели нажмите Ещё → Настроить список….
  3. Перейдите на вкладку Условное оформление и нажмите Добавить.
  4. В колонке Оформление выберите, чем красить: щёлкните по полю, задайте Цвет фона или Цвет текста, при желании — жирный шрифт.
  5. В колонке Условие добавьте отбор: поле, вид сравнения, значение. Например, поле «Сумма» → «Больше» → 100000.
  6. В колонке Оформляемые поля укажите колонки, которые нужно подсветить. Оставите пусто — окрасится вся строка.
  7. Нажмите Завершить редактирование.

Поле, по которому строите условие, должно присутствовать в составе списка. Если его нет среди колонок — сначала добавьте его через вкладку «Поля» в той же настройке, иначе условие просто не сработает.

Разберём на живом примере. Нужно подсветить просроченные заказы в журнале. Условие — поле «Дата отгрузки» меньше текущей даты, а статус не «Отгружен». Добавляете два элемента отбора в одном правиле (они работают по «И»), в оформлении ставите розовый фон, оформляемые поля оставляете пустыми — красится вся строка. Теперь просрочка видна с одного взгляда.

Что выбрать, фон или цвет текста, зависит от задачи:

  • 🟥 Цвет фона заметнее, подходит для редких критичных строк (просрочка, отрицательный остаток). Но на выделенной курсором строке фон перекрывается системной подсветкой.
  • 🔤 Цвет текста и жирный шрифт читаются всегда, в том числе под курсором. Хороши, когда подсвеченных строк много.

Раскраску полезно сочетать с сортировкой и отбором на соседних вкладках той же настройки. Отсортируете журнал по дате отгрузки, а просрочку подсветите цветом — критичные строки соберутся вверху и будут выделены. Это заметно быстрее, чем каждый раз искать их глазами.

Настройка сохраняется персонально для вашего пользователя. Сбросить её можно через Ещё → Установить стандартные настройки.

Подсветка строк в отчётах и СКД

В отчётах на системе компоновки данных (СКД) механизм тот же, только вызывается из настроек отчёта.

  1. Сформируйте отчёт и откройте его настройки: кнопка Настройки либо Ещё → Изменить вариант отчёта….
  2. Если видите только простой набор полей — переключитесь на расширенный вид настроек (пункт в меню Ещё формы настроек).
  3. Откройте вкладку Условное оформление и добавьте элемент.
  4. Заполните те же три части: Оформление (цвет), Условие (отбор), Оформляемые поля (колонки отчёта).
  5. Нажмите Завершить редактирование и переформируйте отчёт.

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

Правило оформления сохраняется внутри варианта отчёта. Чтобы раскраска была доступна коллегам, сохраните вариант отчёта как общий (Ещё → Сохранить вариант отчёта), а не только для себя.

Цвет можно привязать не к фиксированному значению, а к параметру отчёта — тогда порог раскраски пользователь задаёт на форме, не лезя в настройки оформления. Например, параметр «Критичный остаток»: сравниваете поле остатка с параметром, и пользователь сам решает, с какого значения строки становятся красными.

В оформлении отчёта доступны не только цвет и шрифт. Через поле Отображение можно вообще скрыть значение, а через картинку — поставить в ячейку индикатор-значок. Для складских и платёжных отчётов цветной кружок рядом с числом иногда нагляднее, чем заливка.

Настройка условного оформления формы в Конфигураторе

Когда раскраска нужна всем пользователям сразу и «из коробки», её закладывают в конфигурацию. Делается это в редакторе управляемой формы.

  1. Откройте нужную форму в Конфигураторе.
  2. В командной панели редактора формы (над деревом элементов) вызовите список Условное оформление.
  3. Добавьте элемент и заполните знакомые три части: Оформление, Условие, Оформляемые поля.
  4. В «Оформляемые поля» выбирайте элементы формы — колонки таблицы или поля, которые окрасятся.
  5. Сохраните форму и обновите конфигурацию базы данных.

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

Условие в Конфигураторе собирается из тех же элементов отбора, что и в режиме «Предприятие»: поле, вид сравнения, значение. Отличие в том, что доступны реквизиты формы и её данных целиком — можно опираться на служебные поля, которых пользователь в настройке списка не видит. Оформляемые поля здесь — это именно элементы формы (колонки таблицы), а не поля запроса.

Табличные части документов раскрашиваются так же: механизм общий для любых таблиц на форме, а не только для динамических списков. Например, в табличной части «Товары» можно подсветить строки, где количество превышает доступный остаток, — правило настраивается один раз в форме документа и работает у всех.

Правка типовой конфигурации снимает её с поддержки. Чтобы не ломать обновления, условное оформление штатной формы лучше добавлять через расширение конфигурации, а не прямой правкой.

Программное выделение строк цветом в коде

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

Для динамического списка оформление живёт в его компоновщике настроек. Пример красит красным строки, где сумма документа больше 100 000:

&НаСервере
Процедура УстановитьУсловноеОформлениеСписка()

	УО = Список.КомпоновщикНастроек.Настройки.УсловноеОформление;
	Элемент = УО.Элементы.Добавить();

	// Условие: сумма больше 100 000
	Отбор = Элемент.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
	Отбор.ЛевоеЗначение  = Новый ПолеКомпоновкиДанных("СуммаДокумента");
	Отбор.ВидСравнения   = ВидСравненияКомпоновкиДанных.Больше;
	Отбор.ПравоеЗначение = 100000;

	// Оформление: красный цвет текста
	Элемент.Оформление.УстановитьЗначениеПараметра("ЦветТекста", WebЦвета.Красный);

	// Оформляемое поле: колонка «СуммаДокумента» (не задавать — вся строка)
	ОформляемоеПоле = Элемент.Поля.Элементы.Добавить();
	ОформляемоеПоле.Поле = Новый ПолеКомпоновкиДанных("СуммаДокумента");

КонецПроцедуры

Разберём по частям:

  • Список.КомпоновщикНастроек.Настройки.УсловноеОформление — коллекция правил динамического списка с именем Список.
  • Тип("ЭлементОтбораКомпоновкиДанных") — добавляем именно элемент отбора, а не группу.
  • ВидСравненияКомпоновкиДанных — доступны Больше, Меньше, Равно, НеРавно, Заполнено и другие.
  • WebЦвета.Красный — быстрый способ задать цвет; можно и Новый Цвет(255, 128, 128) для своего оттенка.

Поле из условия (СуммаДокумента) должно входить в состав полей списка — иначе отбор не к чему применить. Для оформления формы в целом вместо Список.КомпоновщикНастроек… используют свойство формы УсловноеОформление, а поля адресуют по пути данных формы.

Параметров оформления больше одного. В УстановитьЗначениеПараметра можно передать:

  • ЦветТекста и ЦветФона — цвета, значениями типа Цвет или из WebЦвета;
  • Шрифт — например, жирный через Новый Шрифт(, , Истина);
  • Видимость — скрыть значение в ячейке по условию;
  • ТекстоваяСтрока — подменить выводимый текст.

Код удобен, когда правило нельзя выразить простым отбором: подсветить строки, где фактический остаток ниже страхового запаса из регистра сведений, или где расчётная рентабельность отрицательна. Такие условия в интерфейсе не соберёшь — только кодом. Вызывать процедуру оформления достаточно один раз при открытии формы: дальше платформа применяет правило к каждой строке автоматически, по мере прокрутки списка.

Почему оформление не срабатывает: разбор ошибок

Чаще всего раскраска «не работает » не из-за платформы, а из-за одной из четырёх мелочей.

Диагностика: выберите симптом

Ещё одна типичная причина — настройка сделана в «Предприятии» и сброшена командой Установить стандартные настройки. Персональные настройки списка легко затереть, поэтому важные бизнес-правила выносят в Конфигуратор.

Отдельно про отчёты: если подсветка «пропадает» после переформирования, проверьте, что правило сохранено в варианте отчёта, а не только в текущем сеансе настроек.

И ещё одно частое недопонимание. Условное оформление раскрашивает строки на экране — в списке, на форме, в отчёте. К печатной форме оно отношения не имеет: цвет ячеек табличного документа задаётся в макете, а не здесь. Если нужно, чтобы раскраска попала на печать или в выгрузку, это уже другая задача и другой механизм.

Частые вопросы

Можно ли выделить цветом одну ячейку, а не всю строку?
Да. Укажите нужную колонку в «Оформляемые поля». Пустой список означает окраску всей строки, одно поле — только эту ячейку.
Сохранится ли моя раскраска для других пользователей?
Настройка списка или отчёта в «Предприятии» персональная. Чтобы цвет видели все, задайте оформление в Конфигураторе либо сохраните вариант отчёта как общий.
Почему после перезапуска подсветка исчезла?
Скорее всего настройки списка сброшены на стандартные или вариант отчёта не сохранён. Правило, заданное в Конфигураторе, так не теряется.
Как раскрасить строку сразу несколькими цветами по разным условиям?
Добавьте несколько элементов оформления, по одному на условие. Они применяются по порядку; при пересечении побеждает тот, что стоит выше.
Работает ли условное оформление в табличной части документа?
Да. Механизм общий для любых таблиц формы, поэтому строки табличной части красятся так же, как строки динамического списка.