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

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

Как изменить цвета в 1С: настройка темы оформления и цветов элементов

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

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

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

Что именно вы хотите перекрасить: карта задач

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

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

Как выбрать способ

Нужно изменить внешний вид всей программы для пользователяИспользуйте настройки темы оформления в режиме Предприятие
Нужно подсветить строки списка по условию (просрочен, оплачен, отменён)Настройте условное оформление динамического списка
Нужно перекрасить конкретный элемент формыЗадайте свойства ЦветТекста и ЦветФона в конфигураторе или в коде
Нужно раскрасить ячейки отчётаИспользуйте условное оформление в настройках отчёта на СКД

Изменение темы оформления интерфейса

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

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

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

Условное оформление списков: подсветка строк по условию

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

Порядок настройки в конфигураторе: откройте форму списка, выделите реквизит «Список», откройте его свойства и найдите «Условное оформление». Добавьте элемент, задайте условие отбора (например, «Проведен Равно Нет»), на закладке оформления укажите параметр «Цвет фона» или «Цвет текста» и выберите нужное значение. В поле «Оформляемые поля» перечислите колонки, к которым применяется оформление; если оставить список пустым, окрашивается вся строка.

Настройка условного оформления списка
  1. 1
    Откройте форму списка в конфигураторе и выделите реквизит динамического списка
  2. 2
    Откройте свойство «Условное оформление» и добавьте новый элемент
  3. 3
    На закладке «Отбор» задайте условие, при котором срабатывает подсветка
  4. 4
    На закладке «Оформление» выберите параметр «Цвет фона» или «Цвет текста» и задайте значение
  5. 5
    Укажите оформляемые поля или оставьте список пустым для всей строки
  6. 6
    Обновите конфигурацию базы данных и проверьте результат в режиме Предприятие

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

Цвета элементов формы в конфигураторе

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

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

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

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

// Абсолютный цвет: красный текст предупреждения

Элементы.ПредупреждениеОДолге.ЦветТекста = Новый Цвет(220, 20, 60);

// Веб-цвет из предопределённого набора

Элементы.СуммаДолга.ЦветФона = WebЦвета.СветлоЖелтый;

// Цвет стиля — рекомендуемый вариант

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

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

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

Цвета в отчётах и печатных формах

В отчётах на системе компоновки данных раскраска ячеек делается через условное оформление в настройках отчёта: закладка «Условное оформление», добавление элемента с отбором и параметром «Цвет фона» или «Цвет текста». Многие типовые отчёты позволяют пользователю добавить такие правила самостоятельно через «Ещё» — «Изменить вариант отчёта».

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

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

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

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

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

Итог

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

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

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

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

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

Почему заданный цвет не отображается в режиме Предприятие?

Чаще всего условное оформление, настроенное в конфигураторе, переопределяется программно в обработчике ПриСозданииНаСервере — код очищает или пересоздаёт коллекцию оформления. Проверьте модуль формы. Вторая причина — не обновлена конфигурация базы данных после изменения.

Как сделать, чтобы цвета не ломались в тёмной теме?

Используйте цвета стиля (ЦветаСтиля.ИмяЦвета) вместо абсолютных значений RGB. Цвета стиля подставляются платформой из активной темы и остаются читаемыми при её смене. Абсолютные цвета оставляйте только для смысловой индикации, проверив их вид в обеих темах.

Как раскрасить строки в обычной (не управляемой) форме?

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

Пропадут ли настройки цвета при обновлении конфигурации?

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