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