ОбъектМетаданных: ЭлементСтиля

Типы · MetadataObject: StyleItem

Используется для обращения к метаданным объекта конфигурации - элемент стиля.

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

ОбъектМетаданных: ЭлементСтиля (MetadataObject: StyleItem)

ОбъектМетаданных: ЭлементСтиля (MetadataObject: StyleItem)

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

Свойства:
Имя (Name)
Комментарий (Comment)
ОбъектРасширяемойКонфигурации (ExtendedConfigurationObject)
ПринадлежностьОбъекта (ObjectBelonging)
Синоним (Synonym)
Вид (Type)
Значение (Value)

Методы:
ЕстьИзмененияРасширениямиКонфигурации (ChangedByConfigurationExtensions)
ПолноеИмя (FullName)
Представление (Presentation)
РасширениеКонфигурации (ConfigurationExtension)
Родитель (Parent)

Описание:

Используется для обращения к метаданным объекта конфигурации - элемент стиля.

Доступность:

Сервер, толстый клиент, внешнее соединение.

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

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

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

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

Применить настоящий цвет КА2 только к учебной панели

Элемент АктуальнаяПодпискаЦвет имеет вид Цвет и исходное значение #009646. Проверяем тип перед присваиванием и окрашиваем только свою пустую панель.

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

Полный модуль собственной обычной формы внешней обработки; толстый клиент учебной копии.

Подготовка

  1. Только отдельная учебная копия КА2 Progress. Три существующих элемента: АктуальнаяПодпискаЦвет, ВажнаяНадписьШрифт, РамкаОдинарнаяЭПД. Их виды и исходные значения проверены по StyleItems/*.xml, не придуманы.

  2. Для визуальных уроков создайте собственную внешнюю обработку с обычной формой, пустой панелью УчебнаяПанель и кнопкой вне панели. Назначьте кнопке действие ВыполнитьПример. Вставьте полный модуль урока в модуль этой обычной формы; обработчик без аргументов.

  3. Запускайте обычную форму в толстом клиенте учебной копии. В управляемой форме нет ЭлементыФормы и объекта Панель; туда код обычного визуального урока не переносится.

  4. Серверные диагностические уроки отдельно размещаются в серверном общем модуле УчебныеЗадачи. Код не меняет метаданные, ГлавныйСтиль, основной стиль базы или оформление рабочих форм.

Процедура ВыполнитьПример()
    Описание = Метаданные.ЭлементыСтиля.Найти("АктуальнаяПодпискаЦвет");
    Если Описание = Неопределено Тогда
        ВызватьИсключение "Проверьте имя элемента стиля в учебной копии КА2 Progress";
    КонецЕсли;
    Варианты = Метаданные.СвойстваОбъектов;
    Если Описание.Вид <> Варианты.ВидЭлементаСтиля.Цвет Тогда
        ВызватьИсключение "Для ЦветФона нужен элемент вида Цвет";
    КонецЕсли;
    ЦветПанели = Описание.Значение;
    Если ТипЗнч(ЦветПанели) <> Тип("Цвет") Тогда
        ВызватьИсключение "Значение элемента стиля должно иметь тип Цвет";
    КонецЕсли;
    ЭлементыФормы.УчебнаяПанель.ЦветФона = ЦветПанели;
    Сообщить(ЦветПанели.Красный = 0 И ЦветПанели.Зеленый = 150 И ЦветПанели.Синий = 70);
    Сообщить(ТипЗнч(ЭлементыФормы.УчебнаяПанель.ЦветФона) = Тип("Цвет"));
КонецПроцедуры

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

  1. Поиск метаданных проверяется до обращения к Вид и Значение. Вид сравниваем с контейнером Метаданные.СвойстваОбъектов, доступным для работы с метаданными.

  2. Реальный тип значения проверяется отдельно: цвет нельзя подменить шрифтом, рамкой или строкой #009646.

  3. #00 96 46 из XML соответствует красному 0, зелёному 150, синему 70. Компоненты используются для контроля исходного фиксированного цвета.

  4. Меняется ЦветФона только собственного элемента обычной формы. Метаданные остаются только для чтения; главное оформление приложения не переключается.

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

  1. В исходной учебной копии без изменения этого элемента две контрольные Истина. У собственной панели виден зелёный фон.

  2. Если расширение поменяло элемент стиля, первая проверка диагностирует отличие; не переписывайте стиль ради получения Истина.

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

Учебная панель использует настоящее значение элемента стиля, с проверкой назначения и типа.

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

  1. Тема и интерфейс могут влиять на оформление. Статический тест не доказывает внешний вид формы на экране.

  2. Не присваивайте Описание.Значение: свойства объекта метаданных доступны только для чтения.

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

Установить шрифт важной надписи, сохранив наследуемые параметры

ВажнаяНадписьШрифт наследует NormalTextFont и задаёт полужирное начертание. Используем готовое значение, а не угадываем имя и размер шрифта на компьютере.

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

Полный модуль собственной обычной формы внешней обработки; толстый клиент учебной копии.

Подготовка

  1. Только отдельная учебная копия КА2 Progress. Три существующих элемента: АктуальнаяПодпискаЦвет, ВажнаяНадписьШрифт, РамкаОдинарнаяЭПД. Их виды и исходные значения проверены по StyleItems/*.xml, не придуманы.

  2. Для визуальных уроков создайте собственную внешнюю обработку с обычной формой, пустой панелью УчебнаяПанель и кнопкой вне панели. Назначьте кнопке действие ВыполнитьПример. Вставьте полный модуль урока в модуль этой обычной формы; обработчик без аргументов.

  3. Запускайте обычную форму в толстом клиенте учебной копии. В управляемой форме нет ЭлементыФормы и объекта Панель; туда код обычного визуального урока не переносится.

  4. Серверные диагностические уроки отдельно размещаются в серверном общем модуле УчебныеЗадачи. Код не меняет метаданные, ГлавныйСтиль, основной стиль базы или оформление рабочих форм.

Процедура ВыполнитьПример()
    Описание = Метаданные.ЭлементыСтиля.Найти("ВажнаяНадписьШрифт");
    Если Описание = Неопределено Тогда
        ВызватьИсключение "Проверьте имя элемента стиля в учебной копии КА2 Progress";
    КонецЕсли;
    Варианты = Метаданные.СвойстваОбъектов;
    Если Описание.Вид <> Варианты.ВидЭлементаСтиля.Шрифт Тогда
        ВызватьИсключение "Для Шрифт нужен элемент вида Шрифт";
    КонецЕсли;
    ШрифтПанели = Описание.Значение;
    Если ТипЗнч(ШрифтПанели) <> Тип("Шрифт") Тогда
        ВызватьИсключение "Ожидалось готовое значение Шрифт";
    КонецЕсли;
    ЭлементыФормы.УчебнаяПанель.Шрифт = ШрифтПанели;
    Сообщить(ШрифтПанели.Полужирный = Истина);
    Сообщить(ТипЗнч(ЭлементыФормы.УчебнаяПанель.Шрифт) = Тип("Шрифт"));
    Сообщить("Имя фактического шрифта: " + ШрифтПанели.Имя);
    Сообщить("Размер фактического шрифта: " + Строка(ШрифтПанели.Размер));
КонецПроцедуры

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

  1. В XML указан вид Font и ссылка на NormalTextFont с bold=true. Имя и размер не зафиксированы этой ссылкой как универсальные Arial/12.

  2. Получаем готовое значение после проверки вида и типа. Его можно назначить свойству Шрифт обычной панели.

  3. Полужирный проверяем как явное исходное переопределение. Имя и Размер показываем как фактические параметры, без выдуманной константы.

  4. Чтобы оценить шрифт на экране, перед запуском добавьте в свою панель простую надпись Книга. Не выводите туда данные рабочей формы.

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

  1. Две проверки — Истина для исходного элемента. Надпись своей обычной панели можно сравнить до и после нажатия кнопки.

  2. Данные базы не записаны, набор установленных шрифтов ОС не изменён.

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

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

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

  1. Это пример обычной формы. Поведение шрифтов управляемого интерфейса 8.5 рассматривается отдельно.

  2. Нельзя считать ссылку NormalTextFont обещанием одинакового имени и размера на любых компьютерах.

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

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

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

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

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