Расширение дополнения элемента формы для отображения состояния просмотра.ЦветФонаКнопок

Свойства · ButtonsBackColor

Тип: Цвет. Содержит цвет фона кнопок.

Полное описание, параметры и ограничения

Расширение дополнения элемента формы для отображения состояния просмотра.ЦветФонаКнопок (Form item addition extension for view status.ButtonsBackColor)

Расширение дополнения элемента формы для отображения состояния просмотра (Form item addition extension for view status)

ЦветФонаКнопок (ButtonsBackColor)

Не применяется в интерфейсе «Версия 8.5»

Доступен, начиная с версии 8.3.5.

Использование:
Чтение и запись.
Описание:
Тип: Цвет.
Содержит цвет фона кнопок.
Доступность:

Тонкий клиент, веб-клиент, мобильный клиент, сервер, толстый клиент.
Изменение свойства на клиенте требует обращения к серверу.

Использование в версии:

Доступен, начиная с версии 8.3.5.

Использование в интерфейсе:

Не применяется в интерфейсе «Версия 8.5»

Методическая информация

Практические примеры

Оформить рамку и фон состояния без изменения строк

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

Где и как запускать

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

Подготовка

  1. В отдельной учебной базе 8.5.1.1343 создайте внешнюю обработку УчебноеСостояниеТаблицы с пустой управляемой основной формой. Используйте тонкий клиент Windows.

  2. В свойствах формы → События назначьте ПриСозданииНаСервере. Полный код вставляйте на уровне модуля; каждую задачу выполняйте в отдельной копии формы.

  3. Не добавляйте вручную реквизит Товары, колонки и кнопки: весь собственный набор создаётся кодом. Сохраните свою EPF и откройте её в учебной базе.

  4. Две учебные строки — A-01 Книга, количество 3; B-02 Ручка, количество 1. Они существуют в памяти формы, а не в справочниках базы.

  5. Элемент состояния не создаётся конструктором: таблица возвращает автоматически сформированное дополнение через ОтображениеСостоянияПросмотра.

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

  7. Запуск и вид в 1С не проверены. Урок не записывает базу и не устанавливает пользовательские настройки. Точный текст стандартного состояния зависит от клиента.


&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
    НовыеРеквизиты = Новый Массив;
    НовыеРеквизиты.Добавить(Новый РеквизитФормы("Товары", Новый ОписаниеТипов("ТаблицаЗначений")));
    НовыеРеквизиты.Добавить(Новый РеквизитФормы("Код", Новый ОписаниеТипов("Строка"), "Товары", "Код"));
    НовыеРеквизиты.Добавить(Новый РеквизитФормы("Наименование", Новый ОписаниеТипов("Строка"), "Товары", "Название"));
    НовыеРеквизиты.Добавить(Новый РеквизитФормы("Количество", Новый ОписаниеТипов("Число",
        Новый КвалификаторыЧисла(9, 0, ДопустимыйЗнак.Неотрицательный)), "Товары", "Количество"));
    ЭтаФорма.ИзменитьРеквизиты(НовыеРеквизиты);
    Данные = Новый ТаблицаЗначений;
    Данные.Колонки.Добавить("Код", Новый ОписаниеТипов("Строка"));
    Данные.Колонки.Добавить("Наименование", Новый ОписаниеТипов("Строка"));
    Данные.Колонки.Добавить("Количество", Новый ОписаниеТипов("Число",
        Новый КвалификаторыЧисла(9, 0, ДопустимыйЗнак.Неотрицательный)));

    СтрокаТовара = Данные.Добавить();
    СтрокаТовара.Код = "A-01";
    СтрокаТовара.Наименование = "Книга";
    СтрокаТовара.Количество = 3;
    СтрокаТовара = Данные.Добавить();
    СтрокаТовара.Код = "B-02";
    СтрокаТовара.Наименование = "Ручка";
    СтрокаТовара.Количество = 1;

    ЭтаФорма.ЗначениеВРеквизитФормы(Данные, "Товары");
    Таблица = ЭтаФорма.Элементы.Добавить("ТаблицаТоваров", Тип("ТаблицаФормы"));
    Таблица.ПутьКДанным = "Товары";
    Таблица.Заголовок = "Учебные товары";
    Таблица.Шапка = Истина;
    Таблица.АвтоВводНезаполненного = Ложь;
    Таблица.АвтоВводНовойСтроки = Ложь;
    Для Каждого ИмяКолонки Из СтрРазделить("Код,Наименование,Количество", ",") Цикл
        Колонка = Элементы.Добавить("Товары" + ИмяКолонки, Тип("ПолеФормы"), Таблица);
        Колонка.Вид = ВидПоляФормы.ПолеВвода;
        Колонка.ПутьКДанным = "Товары." + ИмяКолонки;
        Колонка.Заголовок = ИмяКолонки;
    КонецЦикла;
    Таблица.ТолькоПросмотр = Истина;
    Таблица.ПоложениеСтрокиПоиска = ПоложениеСтрокиПоиска.Верх;
    Таблица.ПоложениеСостоянияПросмотра = ПоложениеСостоянияПросмотра.Низ;
    Состояние = Таблица.ОтображениеСостоянияПросмотра;
    Если Состояние = Неопределено Тогда
        ВызватьИсключение "Учебная таблица не предоставила дополнение состояния просмотра";
    КонецЕсли;
    Состояние.Видимость = Истина;
    Состояние.Рамка = Новый Рамка(ТипРамкиЭлементаУправления.Одинарная, 1);
    Состояние.ЦветРамки = Новый Цвет(70, 90, 110);
    Состояние.ЦветФона = Новый Цвет(242, 247, 252);
    Состояние.ЦветФонаКнопок = Новый Цвет(226, 237, 248);
    Состояние.ЦветТекста = Новый Цвет(20, 35, 50);

    КомандаДействия = ЭтаФорма.Команды.Добавить("УчебноеДействие");
    КомандаДействия.Действие = "УчебноеДействие";
    КомандаДействия.Заголовок = "Проверить исходные две строки";
    КомандаДействия.Подсказка = "Действие только над данными учебной формы";
    КомандаДействия.ИзменяетСохраняемыеДанные = Ложь;
    Кнопка = Элементы.Добавить("КнопкаУчебноеДействие", Тип("КнопкаФормы"));
    Кнопка.ИмяКоманды = КомандаДействия.Имя;
    Кнопка.Заголовок = КомандаДействия.Заголовок;
КонецПроцедуры

&НаКлиенте
Процедура УчебноеДействие(Команда)
    Таблица = Элементы.ТаблицаТоваров;
    Состояние = Таблица.ОтображениеСостоянияПросмотра;
    Если Состояние = Неопределено Тогда
        ВызватьИсключение "Дополнение состояния недоступно в этом клиенте";
    КонецЕсли;
    Сообщить(Товары.Количество() = 2);
    Сообщить(Товары.Итог("Количество") = 4);
    Сообщить(Товары[0].Наименование = "Книга" И Товары[0].Количество = 3);
    Сообщить(Товары[1].Наименование = "Ручка" И Товары[1].Количество = 1);
    Сообщить("Состояние UI: " + Состояние.Имя);
    Сообщить(Состояние.Рамка.ТипРамки = ТипРамкиЭлементаУправления.Одинарная);
    Сообщить(Состояние.Рамка.Толщина = 1);
КонецПроцедуры

Разбор по шагам

  1. Автоматическое дополнение получаем от своей таблицы, а не из неизвестной формы конфигурации.

  2. Рамка создаётся новым значением с типом Одинарная и толщиной 1. Присваиваем свойство Рамка целиком.

  3. ЦветРамки, ЦветФона, ЦветФонаКнопок и ЦветТекста имеют разные назначения; каждый цвет строится собственными RGB-числами.

  4. В строке поиска введите Книга, осмотрите состояние, затем удалите фильтр стандартной кнопкой интерфейса.

  5. Команда не удаляет строки и не изменяет фильтр программно: она проверяет исходную коллекцию и параметры заданной рамки.

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

  1. До и после ручного поиска ожидаются шесть Истина и исходные две строки, количество 4.

  2. Осмотрите рамку, фон и стандартные кнопки состояния. Вид цветов зависит от темы и клиента; наличие цвета в свойстве не равно проверке видимости на экране.

Ожидаемый результат

Оформление реального состояния таблицы изучается вместе с инвариантами собственного набора данных.

На что обратить внимание

  1. Свойства Рамка.Толщина и Рамка.ТипРамки только для чтения: новый вид задаётся новым объектом Рамка.

  2. ЦветФонаКнопок не вычисляет состояние поиска и не заменяет текстовую подсказку.

  3. Свойства оформления меняем на сервере при создании, не обещая отсутствие серверного обращения при их изменении на клиенте.

Пример не запускался в вашей базе. Перед применением проверьте его в указанном учебном контексте.

Не хотите разбираться сами?

Адаптируем это решение под вашу базу. Оценка бесплатно.

Оставить задачу

1С, 1С:Предприятие — товарные знаки ООО «1С». Сайт не является официальным представительством фирмы «1С» и не аффилирован с ней.