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

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

Как изменить цвет текста в 1С

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

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

Важно понимать различие режимов. В управляемых формах (1С:Предприятие 8.3, конфигурации «Управление торговлей», «Бухгалтерия», «Зарплата и управление персоналом») цвет задаётся через свойство «ЦветТекста» элемента формы или через условное оформление. В обычных формах и табличных документах используются другие механизмы — например, свойство «ЦветТекста» области табличного документа.

Прежде чем менять конфигурацию, проверьте, нельзя ли решить задачу настройкой. Изменение конфигурации требует снятия объекта с поддержки (или работы через расширение), что усложняет последующие обновления. Условное оформление в пользовательском режиме этой проблемы не создаёт.

Когда какой способ выбирать

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

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

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

Третий сценарий — цвет в печатных формах и табличных документах. Четвёртый — оформление отчётов на СКД (системе компоновки данных), где цвет задаётся в настройках отчёта.

Маршрут решения

Как выбрать действие

Нужно подсветить строки списка только для себяИспользуйте Ещё → Настроить список → Условное оформление
Нужно, чтобы цвет видели все пользователиНастройте условное оформление формы в конфигураторе или расширении
Нужно менять цвет по логике в момент работыЗадайте ЦветТекста программно в обработчике формы
Нужен цвет в печатной формеМеняйте свойство ЦветТекста области макета табличного документа

Изменение цвета текста через условное оформление списка

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

Откройте нужный список, например «Документы → Реализация товаров и услуг». Нажмите «Ещё» и выберите «Настроить список». В открывшемся окне перейдите на закладку «Условное оформление» и добавьте новый элемент.

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

Порядок действий
  1. 1
    Откройте список и нажмите Ещё → Настроить список
  2. 2
    Перейдите на закладку Условное оформление и добавьте элемент
  3. 3
    Задайте условие отбора строк
  4. 4
    В поле Оформление выберите параметр Цвет текста и укажите цвет
  5. 5
    Укажите оформляемые поля или оставьте пустым для всей строки
  6. 6
    Нажмите ОК и проверьте результат в списке

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

Ограничения пользовательского условного оформления

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

Изменение цвета текста элемента формы в конфигураторе

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

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

Для надписей и декораций действуют те же свойства. У декорации вида «Надпись» цвет текста задаётся свойством «ЦветТекста», а у полей ввода цвет виден в режиме просмотра и редактирования.

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

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

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

Типовой пример в модуле формы:

Если Объект.Сумма < 0 Тогда

Элементы.Сумма.ЦветТекста = Новый Цвет(255, 0, 0);

Иначе

Элементы.Сумма.ЦветТекста = Новый Цвет(0, 0, 0);

КонецЕсли;

Конструктор «Новый Цвет(Красный, Зелёный, Синий)» принимает три числа от 0 до 255. Также доступны предопределённые цвета стиля через объект «ЦветаСтиля», например ЦветаСтиля.ЦветОтрицательногоЧисла. Такой подход предпочтительнее, потому что цвет будет соответствовать общему стилю конфигурации.

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

bsl
Элементы.Сумма.ЦветТекста = ЦветаСтиля.ЦветОтрицательногоЧисла;

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

Условное оформление формы — основной инструмент разработчика для подсветки строк динамических списков и табличных частей. Оно настраивается в редакторе формы: команда «Условное оформление» в панели свойств формы или через контекстное меню формы.

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

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

Цвет текста в табличных документах и печатных формах

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

В макете: выделите ячейку или диапазон, откройте свойства и установите «ЦветТекста». Программно при выводе печатной формы:

Область = ТабличныйДокумент.Область("R5C3");

Область.ЦветТекста = Новый Цвет(192, 0, 0);

Для отчётов на СКД цвет задаётся в настройках отчёта: закладка «Условное оформление» в настройках варианта отчёта. Пользователь может менять его через «Изменить вариант отчёта → Оформление», не привлекая разработчика. Там же доступны параметры «Цвет текста», «Цвет фона», «Шрифт».

Частые ошибки и проверка результата

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

Вторая типичная ситуация — цвет задан в пользовательских настройках списка и «не виден» коллегам. Это не ошибка: пользовательское условное оформление индивидуально. Для общего эффекта нужна настройка в конфигураторе или копирование настроек.

Типичные ошибки
01
Задание цвета коду в цикле по строкам списка вместо условного оформления — форма работает медленно
02
Использование абсолютных RGB-цветов вместо цветов стиля — оформление конфликтует с темой интерфейса
03
Изменение типовой формы без расширения — изменения теряются при обновлении
04
Пустой список оформляемых полей там, где нужна одна колонка — красится вся строка
05
Сравнение в условии поля не того типа — условие никогда не выполняется

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

Контрольные точки

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

Строки списка
Норма

Цвет меняется строго по заданному условию

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

Красятся все строки или ни одной — проверьте условие отбора

После перезапуска программы
Норма

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

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

Настройка пропала — она не сохранена или сброшена

У другого пользователя
Норма

Оформление видно, если задано в конфигураторе

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

Не видно — настройка была пользовательской

После обновления конфигурации
Норма

Изменения в расширении сохранились

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

Изменения пропали — правилась типовая форма

FAQ

Как вернуть цвет текста по умолчанию?

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

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

Да, условное оформление списка через «Настроить список» доступно обычному пользователю и действует только на его сеанс настроек. Изменение форм в конфигураторе требует прав разработчика.

Почему в тонком клиенте цвет есть, а в веб-клиенте нет?

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

Как задать цвет отдельной ячейки табличной части, а не всей строки?

В условном оформлении формы в списке «Оформляемые поля» укажите только нужную колонку. Программно в обычных формах используется событие «ПриПолученииДанных» / «ПриВыводеСтроки» с установкой ЦветТекста конкретной ячейке оформления строки.

Чем отличается ЦветТекста от ЦветФона?

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

Можно ли использовать цвет из стиля в условном оформлении?

Да, при выборе цвета в условном оформлении доступны цвета стиля наряду с абсолютными. Это рекомендуемый вариант: оформление останется согласованным при смене темы интерфейса.

Итог

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

Пользователю для подсветки строк достаточно условного оформления через «Настроить список». Разработчик задаёт цвет через свойство ЦветТекста, условное оформление формы или объект Цвет в коде. Изменения для всех пользователей делайте в расширении, предпочитайте цвета стиля абсолютным RGB и проверяйте результат у реальных пользователей.