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

Учебные задачи

ВажнаяНадписьШрифт наследует 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С» и не аффилирован с ней.