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

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

Как задать цвет в 1С: все рабочие способы с примерами

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

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

Основной объект для работы с цветом — тип Цвет (Color). Его можно создать тремя путями: из предопределённых значений коллекций WebЦвета и WindowsЦвета, по составляющим RGB или через конструктор Новый Цвет(Красный, Зеленый, Синий). Дополнительно существуют цвета стиля, которые привязаны к оформлению конфигурации и автоматически меняются при смене стиля.

Ниже разобраны все рабочие варианты с примерами кода, ограничениями каждого подхода и способами проверить результат. Материал применим к управляемым формам актуальных версий платформы 1С:Предприятие 8.3; отдельные оговорки для обычных форм даны в конце.

Способы задания цвета: какой выбрать

Прежде чем писать код, определите, где должен появиться цвет. Если это разовая подсветка элемента формы — достаточно свойства ЦветФона или ЦветТекста. Если нужно раскрасить строки списка по условию (например, просроченные заказы) — правильный инструмент условное оформление. Если цвет должен соответствовать общему оформлению конфигурации — берите цвета стиля.

Сравнение вариантов

Новый Цвет(R,G,B)

Полный контроль над оттенком. Подходит для точного фирменного цвета. Минус: значения «зашиты» в код и не меняются при смене стиля.

WebЦвета

Готовая палитра именованных цветов (Красный, СветлоСерый и др.). Быстро и читаемо, но набор фиксирован.

ЦветаСтиля

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

Условное оформление

Настраивается без кода, работает в динамических списках. Не подходит для произвольной логики вне списков.

Задание цвета в коде: RGB, WebЦвета и WindowsЦвета

Самый универсальный способ — конструктор с тремя числами от 0 до 255: красная, зелёная и синяя составляющие. Например, мягкий жёлтый фон для поля ввода:

Элементы.Комментарий.ЦветФона = Новый Цвет(255, 250, 205);

Если нужен стандартный оттенок, проще воспользоваться коллекцией WebЦвета — она содержит именованные цвета вроде WebЦвета.Красный, WebЦвета.ЗеленыйЛес, WebЦвета.СветлоСерый. Коллекция WindowsЦвета даёт системные цвета, но в управляемом интерфейсе применяется редко.

Элементы.СтатусОплаты.ЦветТекста = WebЦвета.ТемноКрасный;

Элементы.Шапка.ЦветФона = WebЦвета.СветлоЗолотистый;

Обратите внимание: значения RGB пишутся без кавычек и без символа «#» — это не веб-строка вида #FF0000. Если вы скопировали шестнадцатеричный код из графического редактора, его нужно разбить на три пары и перевести каждую в десятичное число.

Цвета стиля: когда оформление должно быть единым

В типовых конфигурациях оформление централизовано: цвета хранятся в стиле, а код ссылается на них по имени через коллекцию ЦветаСтиля. Такой подход гарантирует, что при смене темы оформления все элементы перекрасятся согласованно.

Элементы.Предупреждение.ЦветТекста = ЦветаСтиля.ЦветОсобогоТекста;

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

Если имя элемента стиля указано неверно, платформа выдаст ошибку «Поле объекта не обнаружено». Поэтому перед использованием проверьте имя в конфигураторе, а не копируйте его из примеров для другой конфигурации.

Цвет элементов формы: фон, текст, рамка

У элементов управляемой формы есть три основных цветовых свойства: ЦветФона, ЦветТекста и ЦветРамки. Устанавливать их можно как в конфигураторе (в палитре свойств элемента), так и программно в обработчиках формы.

Типичный сценарий — динамическая подсветка поля при ошибке заполнения. Логика выглядит так: при проверке значения меняем цвет фона, при исправлении — возвращаем исходный. Чтобы вернуть «цвет по умолчанию», присвойте свойству значение Новый Цвет без параметров либо сохраните исходный цвет в переменную при открытии формы.

Порядок действий
  1. 1
    Откройте модуль формы и найдите обработчик, где меняется состояние (например, ПриИзменении поля).
  2. 2
    Присвойте свойству ЦветФона нужное значение: Новый Цвет(255, 230, 230) для мягкого красного.
  3. 3
    Добавьте обратную ветку: при корректном значении верните исходный цвет.
  4. 4
    Запустите режим предприятия и проверьте оба состояния — ошибочное и нормальное.
  5. 5
    Убедитесь, что цвет не мешает читать текст: тёмный текст на тёмном фоне — частая промашка.

Учтите ограничение: не все элементы поддерживают все цветовые свойства. Например, у поля-надписи нет рамки, а у некоторых кнопок цвет фона игнорируется в зависимости от вида. Если присвоение «не срабатывает» без ошибки — вероятно, элемент просто не отображает это свойство.

Условное оформление списков без программирования

Самая частая практическая задача — раскрасить строки списка документов или справочника по условию: неоплаченные счета красным, выполненные зелёным. Для этого не нужен код: достаточно настроить условное оформление динамического списка.

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

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

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

Цвет в табличном документе и диаграммах

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

ОбластьИтог = ТабДок.Область("R" + НомерСтроки + "C1");

ОбластьИтог.ЦветФона = WebЦвета.СветлоСерый;

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

Типичные ошибки
01
Использование строки "#FF0000" вместо объекта Цвет — платформа выдаст ошибку несоответствия типов.
02
Присвоение цвета в толстом клиенте обычных форм коду из примеров для управляемых форм — свойства и поведение различаются.
03
Яркие насыщенные фоны (чистый красный, синий) под текстом — читать такие надписи тяжело, используйте приглушённые оттенки.
04
Задание цвета только фоном без цвета текста — на тёмном фоне стандартный чёрный текст может стать нечитаемым.
05
Программная установка оформления списка в обработчике ПриАктивизацииСтроки — приводит к мерцанию и лишней нагрузке.

Проверка результата и ограничения

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

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

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

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

Отображение цвета
Норма

Элемент окрашен в заданный оттенок в режиме предприятия

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

Цвет не меняется — проверьте, поддерживает ли элемент это свойство

Обратная смена состояния
Норма

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

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

Цвет «залипает» — нет ветки сброса

Читаемость
Норма

Текст контрастен на новом фоне

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

Текст сливается с фоном

Условное оформление списка
Норма

Красятся только строки, подпадающие под отбор

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

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

Частые вопросы о цвете в 1С

Как задать цвет по шестнадцатеричному коду вида #3399FF?

Платформа не принимает hex-строки напрямую. Разбейте код на три пары символов, переведите каждую из шестнадцатеричной в десятичную систему и передайте в конструктор: Новый Цвет(51, 153, 255). Для перевода удобно использовать любой онлайн-конвертер цветов или калькулятор в режиме программиста.

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

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

Почему присвоение ЦветФона не даёт видимого эффекта?

Наиболее вероятные причины: элемент не поддерживает это свойство в текущем виде, оформление переопределяется условным оформлением списка, либо код выполняется на клиенте, а элемент изменён на сервере без обновления. Проверьте также, что вы обращаетесь к элементу формы (Элементы.Имя), а не к данным реквизита.

Чем цвета стиля лучше «жёстких» RGB-значений?

Цвет стиля автоматически меняется при смене темы оформления конфигурации и гарантирует единообразие с типовыми элементами. Жёсткий RGB останется прежним при любом стиле и может выбиваться из общего оформления. Для доработок типовых конфигураций предпочтительнее ЦветаСтиля.

Как раскрасить ячейки табличной части по-разному?

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

Работают ли эти примеры в обычных формах?

Частично. Тип Цвет и конструктор Новый Цвет доступны везде, но состав свойств элементов обычных форм отличается, а условное оформление там реализовано иначе. Для обычных форм сверяйте имена свойств с синтакс-помощником под вашу версию платформы.

Итог

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

Цвет в коде создаётся через Новый Цвет(R,G,B), WebЦвета или ЦветаСтиля. Для подсветки строк списков используйте условное оформление — программно или через «Настроить список». Всегда проверяйте сброс цвета при смене состояния и читаемость текста на новом фоне.