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