К статье
Практический материал

Разработка и Конфигурация · 10 мин

Как поменять цвет кнопки в 1С

Как изменить цвет кнопки в 1С: настройка через палитру свойств и программно через код. Цвет фона, шрифта и рамки, типичные ошибки и проверка результата.

Цвет кнопки в 1С меняется двумя способами: через палитру свойств в конфигураторе (для обычных и управляемых форм) и программно — через свойства элемента формы в модуле. Выбор способа зависит от того, должна ли кнопка всегда выглядеть одинаково или менять цвет по условию, например подсвечивать невыполненное действие.

Важно понимать ограничение платформы: в управляемых формах 1С:Предприятия 8.3 кнопка не поддерживает произвольный цвет фона так, как это делается в веб-интерфейсах. Полноценно настраиваются ЦветТекста, ЦветРамки и Шрифт, а свойство ЦветФона у кнопки управляемой формы в большинстве случаев игнорируется веб- и тонким клиентом. В обычных формах (устаревший режим) цвет фона кнопки работает полностью.

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

Где находится настройка цвета кнопки в конфигураторе

Откройте конфигуратор, найдите нужный объект (документ, справочник, обработка) и перейдите на вкладку Формы. Откройте форму двойным щелчком — появится редактор формы со списком элементов и предпросмотром.

Выделите кнопку в дереве элементов формы или кликните по ней в области предпросмотра. Справа откроется палитра свойств. Если палитра не видна, нажмите правой кнопкой мыши на элементе и выберите Свойства. В списке свойств найдите группу оформления: ЦветТекста, ЦветРамки, ЦветФона, Шрифт.

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

Порядок действий в конфигураторе
  1. 1
    Откройте конфигуратор и нужную форму объекта
  2. 2
    Выделите кнопку в дереве элементов формы
  3. 3
    В палитре свойств найдите ЦветТекста, ЦветРамки или ЦветФона
  4. 4
    Нажмите кнопку выбора и задайте нужный цвет
  5. 5
    Сохраните конфигурацию и обновите конфигурацию базы данных
  6. 6
    Запустите сеанс и проверьте отображение кнопки

Как изменить цвет кнопки программно

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

Для управляемой формы обращение к элементу выполняется через коллекцию Элементы. Цвет задаётся конструктором Новый Цвет(Красный, Зеленый, Синий) со значениями от 0 до 255 или через WebЦвета и WindowsЦвета.

&НаКлиенте

Процедура ПриОткрытии(Отказ)

Элементы.КнопкаОтправить.ЦветТекста = Новый Цвет(255, 255, 255);

Элементы.КнопкаОтправить.ЦветРамки = Новый Цвет(0, 128, 0);

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

Пример с условием — подсветить кнопку, если документ не проведён:

&НаКлиенте

Процедура ОбновитьОформлениеКнопки()

Если Объект.Проведен Тогда

Элементы.ФормаПровести.ЦветТекста = WebЦвета.Зеленый;

Иначе

Элементы.ФормаПровести.ЦветТекста = WebЦвета.Красный;

КонецЕсли;

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

bsl
Элементы.КнопкаОтправить.ЦветТекста = Новый Цвет(255, 0, 0);

Ограничение: почему цвет фона кнопки не работает в управляемых формах

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

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

Как выделить кнопку без изменения цвета фона

Первый рабочий способ — установить свойство КнопкаПоУмолчанию в значение «Истина». Такая кнопка получает акцентное оформление платформы, срабатывает по нажатию Enter и визуально отличается от остальных. На форме может быть только одна кнопка по умолчанию.

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

Ещё один приём — условное оформление формы (в управляемых формах доступно для таблиц и части элементов) и декорации-индикаторы рядом с кнопкой. Например, рядом с кнопкой «Провести» можно вывести декорацию с цветным текстом «Документ не проведён», которая меняется вместе с состоянием объекта.

Способы выделить кнопку

КнопкаПоУмолчанию

Акцентное оформление платформы, срабатывает по Enter. Ограничение: только одна кнопка на форме.

Цвет текста и рамки

Работает всегда, задаётся и в палитре, и программно. Менее заметно, чем цветной фон.

Картинка кнопки

Хорошо привлекает внимание. Нужна подходящая картинка в библиотеке, иначе придётся добавлять свою.

Цвет фона

Полноценно работает только в обычных формах. В управляемых формах клиент его игнорирует.

Изменение цвета кнопки через расширение конфигурации

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

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

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

Проверка результата и типичные ошибки

После изменения сохраните конфигурацию (Ctrl+S) и при работе с файловой или серверной базой обновите конфигурацию базы данных (F7). Запустите сеанс в том режиме клиента, в котором работают пользователи: оформление в толстом, тонком и веб-клиенте может отличаться.

Проверьте кнопку в разных состояниях: доступная, недоступная, при наведении. Если цвет задан программно в обработчике ПриОткрытии, убедитесь, что он не перекрывается другим кодом, выполняющимся позже, — например, в ПриПовторномОткрытии или после записи.

Типичные ошибки
01
Задан ЦветФона в управляемой форме — клиент его игнорирует, кнопка выглядит как раньше. Используйте цвет текста, рамки или картинку.
02
Изменения внесены в конфигураторе, но не выполнено обновление конфигурации базы данных — в сеансе ничего не меняется.
03
Код изменения цвета размещён в серверной процедуре без контекста формы — обращение к Элементы вызывает ошибку.
04
Прямое изменение типовой формы вместо расширения — при обновлении конфигурации настройки теряются.
05
Опечатка в имени кнопки в коде — программа не находит элемент и выдаёт ошибку обращения к свойству.
Контрольные точки

Как проверить результат

Отображение в сеансе
Норма

Кнопка показывает заданный цвет текста или рамки

Тревожный признак

Кнопка выглядит стандартно — проверьте обновление конфигурации БД

Работа в разных клиентах
Норма

Оформление одинаково в тонком и веб-клиенте

Тревожный признак

В веб-клиенте оформление отличается — уберите неподдерживаемые свойства

Поведение при обновлении
Норма

После обновления типовой конфигурации цвет сохранился (расширение)

Тревожный признак

Цвет пропал — изменения вносились в основную конфигурацию

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

Можно ли сделать кнопку полностью цветной в управляемой форме?

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

Как задать цвет кнопки по условию, например при ошибке проверки?

Разместите код в клиентской процедуре формы: Элементы.ИмяКнопки.ЦветТекста = Новый Цвет(255, 0, 0). Вызовите её из обработчика проверки заполнения или после записи. Не забудьте возвращать исходный цвет, когда условие перестало выполняться.

Почему после изменения свойств в конфигураторе цвет не изменился?

Чаще всего не выполнено обновление конфигурации базы данных (клавиша F7 в конфигураторе) или сеанс не был перезапущен. Также проверьте, не переопределяет ли цвет программный код модуля формы — он имеет приоритет над палитрой свойств.

Как изменить цвет стандартной кнопки «Записать» или «Провести»?

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

Можно ли использовать цвета из стиля конфигурации?

Да, в диалоге выбора цвета доступна вкладка «Стиль» — там перечислены цвета, определённые в конфигурации. Использование цветов стиля предпочтительнее произвольных: при смене темы оформления кнопка останется согласованной с остальным интерфейсом.

Сохранятся ли изменения при обновлении типовой конфигурации?

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

Итог

Что важно запомнить

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