Фон в 1С: цвет интерфейса, форм и табличных документов

· 9 мин

Содержание

Фон в 1С меняется на трёх разных уровнях, и путь зависит от того, что именно нужно перекрасить. Общий вид интерфейса задаётся стилем конфигурации в Конфигураторе. Цвет отдельного поля или целой формы — свойством ЦветФона или кодом. Фон строк списка удобнее красить условным оформлением вообще без программирования, а фон печати настраивается в макете табличного документа.

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

С чего начать: три уровня фона

Прежде чем лезть в код, определитесь, на каком уровне находится ваш фон. От этого зависит и инструмент, и то, нужен ли вообще Конфигуратор.

Что красимГде настраиваетсяИнструмент
Весь интерфейс программыКонфигураторСтиль конфигурации, элементы стиля
Отдельное поле, группу, формуРедактор формыСвойство ЦветФона или код
Строки и ячейки списка по условиюФорма или отчётУсловное оформление (без кода)
Печатную формуМакетЦвет фона ячеек табличного документа
ДиаграммуМакет или СКДПалитра и цвет фона диаграммы

Главный принцип: по возможности используйте не абсолютный цвет RGB, а предопределённые цвета стиля из глобального свойства СтильЦвета. Тогда при смене стиля конфигурации фон подстроится автоматически, и форма не станет «белой вороной» на фоне остального интерфейса.

Если не хотите читать всё подряд, сориентируйтесь по короткому дереву ниже.

Что именно нужно перекрасить?

Фон интерфейса через стиль конфигурации

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

Порядок действий:

  1. Откройте конфигурацию в Конфигураторе и снимите её с поддержки на редактирование (если она типовая — аккуратно, через расширение конфигурации , чтобы не слетало обновление).
  2. В дереве объектов найдите ветку Общие → Стили и Общие → Элементы стиля.
  3. Создайте элемент стиля типа «Цвет» — например, свой фон поля или фон формы — и задайте ему нужный оттенок.
  4. Создайте объект «Стиль», соберите в нём элементы стиля (цвета, шрифты, рамки).
  5. Назначьте стиль основным: свойство корня конфигурации «Основной стиль».

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

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

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

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

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

Самый частый запрос — перекрасить конкретное поле: подсветить обязательный реквизит, выделить комментарий, пометить служебное поле. Здесь два способа.

Статически, в редакторе формы. Выделите элемент (поле, группу, декорацию), в палитре свойств найдите ЦветФона и выберите цвет. Удобно для полей, которые всегда одного цвета.

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

&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)

    // Абсолютный цвет через конструктор RGB
    Элементы.Комментарий.ЦветФона = Новый Цвет(255, 255, 200);

    // Именованный веб-цвет
    Элементы.СуммаИтого.ЦветФона = WebЦвета.СветлоЖелтый;

КонецПроцедуры

Свойство ЦветФона есть и у поля ввода, и у группы, и у таблицы формы. Если задать цвет группе — перекрасится вся её область вместе с вложенными полями.

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

&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)

    Если Объект.Срок < ТекущаяДатаСеанса() И НЕ Объект.Выполнено Тогда
        Элементы.ГруппаШапка.ЦветФона = Новый Цвет(255, 230, 230);
    КонецЕсли;

КонецПроцедуры

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

Для значений используйте три источника: Новый Цвет(К, З, С) — точный RGB; WebЦвета.ИмяЦвета — именованные веб-цвета; СтильЦвета — цвета, которые следуют теме. Для фирменного вида предпочтителен СтильЦвета: он сохранит единообразие интерфейса.

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

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

Печать в 1С — это табличный документ, собранный из областей макета. Фон здесь задаётся на уровне ячеек, а не всей страницы.

В редакторе макета. Откройте макет (Макеты объекта или общий макет), выделите ячейку или диапазон, в свойствах найдите «Цвет фона» и выберите оттенок. Так красят шапку таблицы, итоговые строки, заливку под подпись.

Программно, при формировании печати. Когда печатная форма собирается кодом, цвет задаётся области:

Макет = ПолучитьМакет("ПечатнаяФорма");
ОбластьШапка = Макет.ПолучитьОбласть("Шапка");
ОбластьШапка.ЦветФона = WebЦвета.Серебряный;

ТабДок.Вывести(ОбластьШапка);

Что полезно знать про печать:

  • 🖨️ Цвет фона печатается, только если в параметрах печати разрешён цвет и это поддерживает принтер. На чёрно-белом устройстве заливка выйдет серой — проверяйте через предпросмотр.
  • 🧾 Для подложки или водяного знака не ищите отдельное свойство «фоновая картинка страницы»: проще положить рисунок (Картинка) в ячейку позади текста и настроить его расположение в макете.
  • 📐 Заливка привязана к ячейкам, поэтому «пустой» фон между областями останется белым. Чтобы залить всю страницу, область должна перекрывать её по ширине и высоте.

Визуализация данных: условное оформление и диаграммы

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

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

  1. В поле «Оформление» выберите ЦветФона и нужный цвет.
  2. В «Условии» задайте, когда правило срабатывает (например, поле «Остаток» больше нуля).
  3. В «Оформляемых полях» укажите, что красить. Чтобы залить всю строку, добавьте все поля; чтобы одну колонку — только её.

В отчёте на СКД. Там условное оформление настраивается на одноимённой вкладке схемы компоновки данных. Логика та же: условие плюс цвет фона для выбранных полей. Это штатный способ подсветить итоги, отклонения, отрицательные суммы. Правило можно сделать доступным пользователю для настройки — тогда он сам включит или выключит заливку в настройках варианта отчёта, не обращаясь к программисту.

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

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

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

Веб-клиент и мобильное приложение

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

Разница проявляется в деталях:

  • 🌐 В браузере итоговый вид зависит ещё и от самого браузера и масштаба страницы. Критичные для работы цвета (красный — ошибка, зелёный — норма) выбирайте контрастными, чтобы они читались при любом рендеринге.
  • 📱 Мобильное приложение 1С использует собственный стиль оформления под платформу устройства. Не рассчитывайте, что настольная тема перенесётся в мобильный клиент один в один — проверяйте формы прямо на телефоне или планшете.
  • 🎨 Абсолютные цвета RGB переносятся точно, а вот тонкие эффекты стиля на разных клиентах могут отличаться. Поэтому для кросс-клиентских решений надёжнее опираться на СтильЦвета и условное оформление, а не на жёсткий подбор оттенков.

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

Частые ошибки при работе с фоном

Эти промахи всплывают чаще всего — проверьте себя по списку.

  • ❌ Абсолютный цвет вместо цвета стиля. Жёсткий Новый Цвет(…) на каждой форме ломает единообразие: при смене темы всё перекрашивается, а ваши формы остаются прежними. Для фирменного вида используйте СтильЦвета.
  • ❌ Цвет задан не при открытии формы. Программный ЦветФона, выставленный в случайном обработчике, не восстановится при повторном открытии. Ставьте его в ПриСозданииНаСервере.
  • ❌ Перекрашена группа вместо поля. Если залилась лишняя область — проверьте, не задан ли ЦветФона у родительской группы: он распространяется на всё вложенное.
  • ❌ Ожидание, что пользователь сам выберет тему. Штатной смены цветовой темы в «Такси» нет. Хотите дать выбор — храните настройку пользователя и применяйте цвет кодом при открытии.
  • ❌ Слишком много цветов. Пёстрый список утомляет и прячет действительно важное. Оставьте одну-две сигнальные заливки, остальное — нейтральным.
  • ❌ Правка типовой конфигурации напрямую ради цвета. Это блокирует автоматическое обновление . Выносите фон в расширение конфигурации.

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

Можно ли дать пользователю самому выбирать цвет темы в 1С?
Штатного переключателя тем в платформе 8.3 нет. Сделать выбор можно только доработкой: сохранять цвет в настройках пользователя (хранилище настроек) и применять его кодом при открытии форм. Это задача разработчика, а не настройка «из коробки».
Почему заданный программно фон сбрасывается после закрытия формы?
Потому что ЦветФона, присвоенный в коде, живёт только пока открыта форма, и нигде не сохраняется. Выставляйте цвет в обработчике ПриСозданииНаСервере — тогда он применится при каждом открытии заново.
Как залить фоном всю строку списка, а не одну ячейку?
Через условное оформление: в правиле добавьте в «Оформляемые поля» все колонки списка (или оставьте список полей пустым, если это заливает строку целиком в вашей конфигурации). Цвет одной ячейки получается, когда указано только одно поле.
Фон виден в толстом клиенте, но не печатается — почему?
Печать фона зависит от параметров печати и принтера. Убедитесь, что в настройке печати разрешён вывод цвета фона, и проверьте результат через предпросмотр: на чёрно-белом принтере заливка станет серой или исчезнет.
Поддерживает ли мобильное приложение произвольный цвет фона?
Частично. Цвета, заданные через свойство ЦветФона и условное оформление, переносятся, но мобильный клиент применяет собственный стиль под платформу устройства. Проверяйте вид форм непосредственно на телефоне или планшете, а не только в настольном клиенте.