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