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