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