Фон в 1С: цвет интерфейса, форм и табличных документов
Содержание
Фон в 1С меняется на трёх разных уровнях, и путь зависит от того, что именно нужно перекрасить. Общий вид интерфейса задаётся стилем конфигурации в Конфигураторе. Цвет отдельного поля или целой формы — свойством ЦветФона или кодом. Фон строк списка удобнее красить условным оформлением вообще без программирования, а фон печати настраивается в макете табличного документа.
Сразу уберу частое заблуждение. В режиме «1С:Предприятие» обычный пользователь не может произвольно сменить цветовую тему: в платформе 8.3 с интерфейсом «Такси» готовой палитры тем нет. Шестерёнка Сервис и настройки → Вид управляет панелями и расположением окон, но не цветом фона. Перекраска — это задача разработчика в Конфигураторе или настройка конкретной формы.
С чего начать: три уровня фона
Прежде чем лезть в код, определитесь, на каком уровне находится ваш фон. От этого зависит и инструмент, и то, нужен ли вообще Конфигуратор.
| Что красим | Где настраивается | Инструмент |
|---|---|---|
| Весь интерфейс программы | Конфигуратор | Стиль конфигурации, элементы стиля |
| Отдельное поле, группу, форму | Редактор формы | Свойство ЦветФона или код |
| Строки и ячейки списка по условию | Форма или отчёт | Условное оформление (без кода) |
| Печатную форму | Макет | Цвет фона ячеек табличного документа |
| Диаграмму | Макет или СКД | Палитра и цвет фона диаграммы |
Главный принцип: по возможности используйте не абсолютный цвет RGB, а предопределённые цвета стиля из глобального свойства СтильЦвета. Тогда при смене стиля конфигурации фон подстроится автоматически, и форма не станет «белой вороной» на фоне остального интерфейса.
Если не хотите читать всё подряд, сориентируйтесь по короткому дереву ниже.
Общие → Стили и назначайте его основным. Пользователю через настройки это недоступно.ЦветФона. Если цвет зависит от данных — ставьте его кодом в обработчике ПриСозданииНаСервере.Область.ЦветФона.Фон интерфейса через стиль конфигурации
Общий фон окон, списков и панелей определяется двумя вещами: дизайном «Такси» самой платформы и стилем, заданным в конфигурации. Менять его вручную из режима «1С:Предприятие» нельзя — только в Конфигураторе.
Порядок действий:
- Откройте конфигурацию в Конфигураторе и снимите её с поддержки на редактирование (если она типовая — аккуратно, через расширение конфигурации , чтобы не слетало обновление).
- В дереве объектов найдите ветку
Общие → СтилииОбщие → Элементы стиля. - Создайте элемент стиля типа «Цвет» — например, свой фон поля или фон формы — и задайте ему нужный оттенок.
- Создайте объект «Стиль», соберите в нём элементы стиля (цвета, шрифты, рамки).
- Назначьте стиль основным: свойство корня конфигурации «Основной стиль».
После этого ссылайтесь на элементы стиля из свойств форм и реквизитов. Главный плюс: цвет хранится в одном месте. Поменяли элемент стиля — перекрасился весь интерфейс, который на него ссылается. Это отличает стиль от россыпи абсолютных цветов по формам, где любое изменение приходится вносить руками в каждую форму.
Отдельно стоит учесть базовый фон списков и полей ввода. В «Такси» он светлый и почти белый не случайно — на нём хорошо читается текст и видно активную строку. Если вы делаете тёмную тему, проверьте не только фон, но и цвет выделения строки, цвет текста и рамок: один перекрашенный элемент без остальных ломает читаемость всего окна.
Правка типовой конфигурации напрямую усложняет обновления. Для фона почти всегда достаточно расширения конфигурации: оно добавляет свой стиль и правит формы, не трогая исходный код.
Если планируете светлую корпоративную тему — проверяйте контраст текста. Тёмный шрифт на тёмном фоне в списках делает работу невозможной, а изменить цвет уже у пользователя не получится.
Цвет фона элементов формы: свойство и код
Самый частый запрос — перекрасить конкретное поле: подсветить обязательный реквизит, выделить комментарий, пометить служебное поле. Здесь два способа.
Статически, в редакторе формы. Выделите элемент (поле, группу, декорацию), в палитре свойств найдите ЦветФона и выберите цвет. Удобно для полей, которые всегда одного цвета.
Программно, в модуле формы. Когда цвет зависит от данных или прав пользователя, задавайте его в обработчике ПриСозданииНаСервере — тогда он применится при каждом открытии формы:
&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
// Абсолютный цвет через конструктор RGB
Элементы.Комментарий.ЦветФона = Новый Цвет(255, 255, 200);
// Именованный веб-цвет
Элементы.СуммаИтого.ЦветФона = WebЦвета.СветлоЖелтый;
КонецПроцедуры
Свойство ЦветФона есть и у поля ввода, и у группы, и у таблицы формы. Если задать цвет группе — перекрасится вся её область вместе с вложенными полями.
Когда цвет должен зависеть от данных записи, считывайте значение реквизита и ветвите логику. Например, выделить просроченный документ прямо на его форме:
&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
Если Объект.Срок < ТекущаяДатаСеанса() И НЕ Объект.Выполнено Тогда
Элементы.ГруппаШапка.ЦветФона = Новый Цвет(255, 230, 230);
КонецЕсли;
КонецПроцедуры
Этот приём уместен для одиночной формы. Для списков из десятков строк он проигрывает условному оформлению: там цвет пересчитывается для каждой строки автоматически, без обработчиков.
Для значений используйте три источника: Новый Цвет(К, З, С) — точный RGB; WebЦвета.ИмяЦвета — именованные веб-цвета; СтильЦвета — цвета, которые следуют теме. Для фирменного вида предпочтителен СтильЦвета: он сохранит единообразие интерфейса.
Типичная ошибка — задать цвет один раз в отладке и забыть, что при закрытии формы он не сохраняется. Любой программный цвет надо выставлять при открытии формы, а не рассчитывать, что он «запомнится».
Фон печатных форм и табличных документов
Печать в 1С — это табличный документ, собранный из областей макета. Фон здесь задаётся на уровне ячеек, а не всей страницы.
В редакторе макета. Откройте макет (Макеты объекта или общий макет), выделите ячейку или диапазон, в свойствах найдите «Цвет фона» и выберите оттенок. Так красят шапку таблицы, итоговые строки, заливку под подпись.
Программно, при формировании печати. Когда печатная форма собирается кодом, цвет задаётся области:
Макет = ПолучитьМакет("ПечатнаяФорма");
ОбластьШапка = Макет.ПолучитьОбласть("Шапка");
ОбластьШапка.ЦветФона = WebЦвета.Серебряный;
ТабДок.Вывести(ОбластьШапка);
Что полезно знать про печать:
- 🖨️ Цвет фона печатается, только если в параметрах печати разрешён цвет и это поддерживает принтер. На чёрно-белом устройстве заливка выйдет серой — проверяйте через предпросмотр.
- 🧾 Для подложки или водяного знака не ищите отдельное свойство «фоновая картинка страницы»: проще положить рисунок (
Картинка) в ячейку позади текста и настроить его расположение в макете. - 📐 Заливка привязана к ячейкам, поэтому «пустой» фон между областями останется белым. Чтобы залить всю страницу, область должна перекрывать её по ширине и высоте.
Визуализация данных: условное оформление и диаграммы
Когда фон должен зависеть от значения — просроченная задача красная, оплаченный счёт зелёный — писать код не нужно. Для этого есть условное оформление.
В динамическом списке или таблице формы. Откройте настройку списка (команда работы со списком в его командной панели) или свойства таблицы формы, найдите раздел «Условное оформление» и добавьте правило:
- В поле «Оформление» выберите
ЦветФонаи нужный цвет. - В «Условии» задайте, когда правило срабатывает (например, поле «Остаток» больше нуля).
- В «Оформляемых полях» укажите, что красить. Чтобы залить всю строку, добавьте все поля; чтобы одну колонку — только её.
В отчёте на СКД. Там условное оформление настраивается на одноимённой вкладке схемы компоновки данных. Логика та же: условие плюс цвет фона для выбранных полей. Это штатный способ подсветить итоги, отклонения, отрицательные суммы. Правило можно сделать доступным пользователю для настройки — тогда он сам включит или выключит заливку в настройках варианта отчёта, не обращаясь к программисту.
Несколько правил на один список складываются по порядку: если две заливки претендуют на одну строку, применится та, что стоит выше в списке оформления. Поэтому самые частые условия держите вверху, а исключения — ниже, иначе цвет будет вести себя не так, как ожидаешь.
Диаграммы. У диаграммы (в макете или в выводе СКД) есть собственный цвет фона области построения и палитра, которая раскрашивает серии данных. Меняйте палитру, если стандартные цвета плохо различимы или не вписываются в фирменный стиль отчёта. Отдельные точки диаграммы тоже можно окрашивать, но для большинства задач достаточно сменить палитру целиком.
Условное оформление читается легче, чем код в модуле: правила видно в одном окне, их проще менять, и они работают одинаково в тонком и веб-клиенте. Если задачу можно решить им — решайте им.
Веб-клиент и мобильное приложение
Фон, заданный через стиль конфигурации, свойство ЦветФона и условное оформление, работает и в веб-клиенте — платформа передаёт цвета в браузер. Так что подсветка строк и залитые поля формы отображаются одинаково в толстом и тонком клиенте.
Разница проявляется в деталях:
- 🌐 В браузере итоговый вид зависит ещё и от самого браузера и масштаба страницы. Критичные для работы цвета (красный — ошибка, зелёный — норма) выбирайте контрастными, чтобы они читались при любом рендеринге.
- 📱 Мобильное приложение 1С использует собственный стиль оформления под платформу устройства. Не рассчитывайте, что настольная тема перенесётся в мобильный клиент один в один — проверяйте формы прямо на телефоне или планшете.
- 🎨 Абсолютные цвета
RGBпереносятся точно, а вот тонкие эффекты стиля на разных клиентах могут отличаться. Поэтому для кросс-клиентских решений надёжнее опираться наСтильЦветаи условное оформление, а не на жёсткий подбор оттенков.
Если форма должна выглядеть одинаково везде, протестируйте её в трёх режимах: тонкий клиент, веб-клиент, мобильное приложение (если конфигурация под него собирается).
Частые ошибки при работе с фоном
Эти промахи всплывают чаще всего — проверьте себя по списку.
- ❌ Абсолютный цвет вместо цвета стиля. Жёсткий
Новый Цвет(…)на каждой форме ломает единообразие: при смене темы всё перекрашивается, а ваши формы остаются прежними. Для фирменного вида используйтеСтильЦвета. - ❌ Цвет задан не при открытии формы. Программный
ЦветФона, выставленный в случайном обработчике, не восстановится при повторном открытии. Ставьте его вПриСозданииНаСервере. - ❌ Перекрашена группа вместо поля. Если залилась лишняя область — проверьте, не задан ли
ЦветФонау родительской группы: он распространяется на всё вложенное. - ❌ Ожидание, что пользователь сам выберет тему. Штатной смены цветовой темы в «Такси» нет. Хотите дать выбор — храните настройку пользователя и применяйте цвет кодом при открытии.
- ❌ Слишком много цветов. Пёстрый список утомляет и прячет действительно важное. Оставьте одну-две сигнальные заливки, остальное — нейтральным.
- ❌ Правка типовой конфигурации напрямую ради цвета. Это блокирует автоматическое обновление . Выносите фон в расширение конфигурации.
Частые вопросы
Можно ли дать пользователю самому выбирать цвет темы в 1С?
Почему заданный программно фон сбрасывается после закрытия формы?
ЦветФона, присвоенный в коде, живёт только пока открыта форма, и нигде не сохраняется. Выставляйте цвет в обработчике ПриСозданииНаСервере — тогда он применится при каждом открытии заново.Как залить фоном всю строку списка, а не одну ячейку?
Фон виден в толстом клиенте, но не печатается — почему?
Поддерживает ли мобильное приложение произвольный цвет фона?
ЦветФона и условное оформление, переносятся, но мобильный клиент применяет собственный стиль под платформу устройства. Проверяйте вид форм непосредственно на телефоне или планшете, а не только в настольном клиенте.