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