К статье
Практический материал

Разработка и Конфигурация · 12 мин

Как в 1С менять цвет строки

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

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

Главное различие, которое нужно понять сразу: в 1С нельзя «покрасить» конкретную строку навсегда, как ячейку в Excel. Цвет всегда вычисляется по условию — система при отрисовке списка проверяет данные каждой строки и применяет оформление тем, что подходят под заданный отбор. Это и есть механизм условного оформления.

Ниже разобраны все рабочие способы: от простой настройки «Ещё → Настроить список» без программирования до программного условного оформления в управляемых формах и особенностей табличных полей в обычных формах.

Почему строку нельзя просто «покрасить»

Пользователи, перешедшие из Excel, часто ищут кнопку «залить строку цветом». В 1С такой кнопки нет по архитектурным причинам: список документов или справочника — это динамический запрос к базе данных, а не статичная таблица. Строки при прокрутке, отборе и сортировке подгружаются заново, поэтому «ручная» раскраска не пережила бы обновление списка.

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

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

Как изменить цвет строки без программирования

В типовых конфигурациях на управляемых формах (1С:Бухгалтерия, Управление торговлей, ERP) пользователь может настроить подсветку самостоятельно, без доступа к конфигуратору. Для этого нужны права на изменение настроек списка — обычно они есть у всех пользователей.

Порядок действий: откройте нужный список (например, «Реализация товаров и услуг»), нажмите «Ещё» → «Настроить список». В открывшемся окне перейдите на закладку «Условное оформление» и добавьте новый элемент. В нём задайте отбор (например, «Сумма документа Больше 100000») и оформление — цвет фона или цвет текста.

После нажатия «Завершить редактирование» строки, подходящие под условие, сразу подсветятся. Настройка сохраняется для текущего пользователя. Если нужно применить её для всех пользователей, администратор может скопировать настройку через «Ещё» → команды работы с настройками (в типовых — «Установить стандартные настройки» / сохранение настроек для других пользователей через администрирование).

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

Условное оформление в конфигураторе

Разработчик настраивает цвет строк в конфигураторе на уровне формы списка. Откройте форму списка нужного объекта, в дереве элементов выберите корневой элемент «Форма» и в палитре свойств найдите «Условное оформление». Откроется редактор, аналогичный пользовательскому: отбор, оформление, оформляемые поля.

Ключевые параметры элемента условного оформления: «Отбор» (условие применения), «Оформление» (что меняем — ЦветФона, ЦветТекста, Шрифт, ТолькоПросмотр и др.), «Оформляемые поля» (к каким колонкам применять) и «Представление» (понятное имя правила, которое увидит пользователь в настройках). Если оформляемые поля не указаны, правило действует на всю строку.

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

Программное изменение цвета строки

Когда условие сложное или формируется динамически, условное оформление добавляют кодом в модуле формы, обычно в обработчике ПриСозданииНаСервере. Работа идёт с коллекцией УсловноеОформление формы: создаётся элемент, в него добавляются отбор, оформление и оформляемые поля.

Типовой шаблон кода для подсветки строк списка, где контрагент не заполнен:

ЭлементОформления = УсловноеОформление.Элементы.Добавить();

// Условие

ЭлементОтбора = ЭлементОформления.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));

ЭлементОтбора.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Список.Контрагент");

ЭлементОтбора.ВидСравнения = ВидСравненияКомпоновкиДанных.НеЗаполнено;

ЭлементОтбора.Использование = Истина;

// Оформление

ЭлементОформления.Оформление.УстановитьЗначениеПараметра("ЦветФона", WebЦвета.СветлоРозовый);

// Поле, к которому привязано оформление

ПолеОформления = ЭлементОформления.Поля.Элементы.Добавить();

ПолеОформления.Поле = Новый ПолеКомпоновкиДанных("Список");

Обратите внимание на префикс «Список.» в имени поля отбора — он указывает, что условие накладывается на данные динамического списка, а не на реквизит формы. Если поле оформления указать как имя конкретной колонки таблицы формы, подсветится только она; если привязать к таблице целиком — вся строка.

Для цвета можно использовать WebЦвета, ЦветаСтиля (рекомендуется — цвет подстроится под тему интерфейса) или абсолютный цвет через Новый Цвет(R, G, B). Произвольные RGB-цвета используйте осторожно: в тонком и веб-клиенте оттенки могут отображаться иначе.

bsl
ЭлементОформления = УсловноеОформление.Элементы.Добавить();
Отбор = ЭлементОформления.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
Отбор.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Список.Просрочен");
Отбор.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно;
Отбор.ПравоеЗначение = Истина;
ЭлементОформления.Оформление.УстановитьЗначениеПараметра("ЦветФона", ЦветаСтиля.ЦветФонаОшибки);
Поле = ЭлементОформления.Поля.Элементы.Добавить();
Поле.Поле = Новый ПолеКомпоновкиДанных("Список");

Подсветка в табличных частях и обычных формах

Для табличной части документа на управляемой форме механизм тот же — условное оформление формы, только в отборе указывается путь к данным табличной части, например «Объект.Товары.Цена». Условие проверяется для каждой строки табличной части отдельно, что позволяет подсвечивать, скажем, строки с нулевой ценой или количеством выше остатка.

В обычных формах (платформа 8.2, устаревшие конфигурации) условного оформления формы нет. Там цвет строки табличного поля задаётся в обработчике события «ПриВыводеСтроки»: через параметр ОформлениеСтроки меняют ЦветФона или ЦветТекста в зависимости от ДанныеСтроки. Этот подход работает только в толстом клиенте и считается устаревшим.

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

Способы изменить цвет строки

Настройка списка пользователем

Быстро и без прав разработчика, но действует только у текущего пользователя и доступна не во всех формах

Условное оформление в конфигураторе

Работает у всех пользователей, но требует изменения конфигурации или расширения

Программно в модуле формы

Гибкие условия и динамика, но нужен код и аккуратность при обновлениях формы

ПриВыводеСтроки (обычные формы)

Только для устаревших приложений на обычных формах, в тонком клиенте не работает

Проверка результата и типичные ошибки

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

Если цвет не применился, чаще всего причины такие: неверный путь к полю в отборе (пропущен префикс «Список.» или «Объект.»), правило перекрыто другим элементом условного оформления с большим приоритетом, оформление задано, но не указаны оформляемые поля и поле по умолчанию не совпало с таблицей. Порядок элементов в списке условного оформления имеет значение — верхние правила приоритетнее.

Отдельная ошибка — конфликт с пользовательскими настройками. Если пользователь ранее сохранил собственные настройки списка, они могут перекрывать оформление, заданное разработчиком. В этом случае помогает сброс настроек списка («Ещё» → «Установить стандартные настройки») или очистка пользовательских настроек администратором.

Типичные ошибки
01
Нет префикса «Список.» в поле отбора — условие не находит поле и правило молча не срабатывает
02
Не указаны оформляемые поля — подсвечивается не та колонка или ничего не подсвечивается
03
Сравнение «Равно» вместо «Не заполнено» для пустых значений — условие не срабатывает
04
Правило перекрыто другим элементом выше по списку — цвет «не применяется»
05
Пользовательские настройки списка перекрывают оформление разработчика — у части пользователей цвета нет
Контрольные точки

Как проверить результат

Строки с нужным признаком
Норма

Подсвечены заданным цветом сразу после открытия списка

Тревожный признак

Цвет не появился или появляется после ручного обновления

Строки без признака
Норма

Оформление не применяется

Тревожный признак

Подсвечены лишние строки — условие слишком широкое

Другие пользователи
Норма

Подсветка видна всем, кому предназначена

Тревожный признак

Видна только настраивавшему — правило сохранено в личных настройках

Тонкий и веб-клиент
Норма

Цвет читаем в обоих клиентах

Тревожный признак

Оттенок неразличим — заменить на цвет из ЦветаСтиля

Ограничения и рекомендации

Условное оформление вычисляется при отрисовке каждой строки, поэтому десятки сложных правил с вложенными условиями могут заметно замедлить прокрутку больших списков. Держите число правил разумным и по возможности используйте простые сравнения по индексированным полям.

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

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

Итог

Что важно запомнить

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

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

Можно ли покрасить одну конкретную строку без условия?

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

Почему правило условного оформления не срабатывает?

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

Как сделать подсветку для всех пользователей сразу?

Настройка «Настроить список» сохраняется персонально. Чтобы правило работало у всех, задайте условное оформление в конфигураторе (в форме списка), программно в модуле формы или через расширение конфигурации. Альтернатива — администратор распространяет сохранённую настройку через механизм копирования настроек пользователей.

Какой цвет лучше использовать: абсолютный или из стиля?

Предпочтительнее ЦветаСтиля — они согласованы с темой интерфейса и корректно выглядят в разных клиентах. Абсолютный цвет (Новый Цвет или WebЦвета) оправдан, когда нужен конкретный оттенок, которого нет в стиле, но его стоит проверить в тонком и веб-клиенте.

Работает ли подсветка при печати и выгрузке списка?

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

Можно ли менять цвет строки в мобильном клиенте 1С?

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