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