БиблиотекаСтилей.Получить

Методы · Get

Получает значение по индексу. Работает аналогично оператору [].

Синтаксис

Получить(<Индекс>)
Полное описание, параметры и ограничения

БиблиотекаСтилей.Получить (StyleLib.Get)

БиблиотекаСтилей (StyleLib)

Получить (Get)

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

Синтаксис:
Получить(<Индекс>)
Параметры:

<Индекс> (обязательный)
Тип: Число.
Индекс элемента.
Возвращаемое значение:
Тип: Стиль.

Описание:

Получает значение по индексу. Работает аналогично оператору [].

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

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

Примечание:
Применяется в случаях, когда использование оператора [] невозможно.
Использование в версии:

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

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

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

Различить пустую библиотеку стилей и значение стиля по умолчанию

В исходной КА2 Progress отдельные Styles отсутствуют, хотя собственных элементов стиля много. Создание Новый Стиль не добавляет стиль в конфигурацию и не переключает интерфейс.

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

Полный серверный общий модуль отдельной учебной копии; без изменения стиля приложения.

Подготовка

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

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

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

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

Процедура ВыполнитьПример() Экспорт
    Количество = БиблиотекаСтилей.Количество();
    ПоУмолчанию = Новый Стиль;
    Сообщить(ТипЗнч(ПоУмолчанию) = Тип("Стиль"));
    Сообщить("Отдельных стилей в библиотеке: " + Строка(Количество));
    Сообщить("Индекс значения по умолчанию: " + Строка(БиблиотекаСтилей.Индекс(ПоУмолчанию)));
    Если Количество = 0 Тогда
        Сообщить("Библиотека пуста; обращение к Получить(0) не выполняется");
    Иначе
        Первый = БиблиотекаСтилей.Получить(0);
        Сообщить(ТипЗнч(Первый) = Тип("Стиль"));
        Сообщить(БиблиотекаСтилей.Индекс(Первый) = 0);
    КонецЕсли;
    Сообщить("Создано только значение в памяти; ГлавныйСтиль не изменялся");
КонецПроцедуры

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

  1. Количество проверяется перед Получить(0). На исходной выгрузке Styles пустой, и ветка получения элемента не выполняется.

  2. Новый Стиль создаёт специальное значение стиля Авто. Это не запись в библиотеке и не объект метаданных с именем.

  3. Индекс возвращает -1 для значения, не найденного в коллекции. Показываем фактический результат; не используем отрицательный индекс для Получить.

  4. Если в учебную копию вручную добавлен стиль, можно проверить обратную связь Получить(0) → Индекс = 0.

  5. Для переключения приложения понадобилось бы отдельное присваивание ГлавныйСтиль. Его здесь намеренно нет: создание значения само по себе ничего не переключает.

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

  1. Проверка типа — Истина. В неизменённой КА2 выводится количество 0 и пояснение пустой коллекции.

  2. При добавленном учебном стиле две проверки внутри непустой ветки — Истина. Главное оформление до и после запуска не изменилось.

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

Понятно, почему элементы стиля могут существовать при отсутствии отдельных стилей в библиотеке.

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

  1. Не индексируйте пустую библиотеку.

  2. Новый Стиль не создаёт объект Styles в дереве конфигурации.

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

Разделить метаданные своего стиля и его применяемое значение

На одном вручную подготовленном учебном стиле сравниваем паспорт конфигурации с объектом из БиблиотекаСтилей. Свойство метаданных Стиль всегда Неопределено по справке.

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

Полный серверный общий модуль отдельной учебной копии; без изменения стиля приложения.

Подготовка

  1. Создайте отдельную пустую учебную конфигурацию, не исходную рабочую КА2. В дереве Общие → Стили вручную добавьте УчебныйСтиль с синонимом Учебный стиль; значения оставьте по умолчанию и обновите только свою учебную базу.

  2. Создайте серверный общий модуль УчебныеЗадачи, вставьте полный модуль урока и вызовите ВыполнитьПример() из своей серверной команды.

  3. Пример только читает подготовленный стиль. ОсновнойСтиль и ГлавныйСтиль не меняются.

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

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

  1. В своей отдельной пустой учебной конфигурации добавьте Общие → Стили → УчебныйСтиль. Укажите синоним Учебный стиль; значения оставьте по умолчанию. Обновите только эту учебную базу.

  2. Метаданные.Стили.Найти даёт паспорт. Имя, Синоним, Комментарий, методы представления и происхождения описывают объект конфигурации.

  3. По установленной справке Описание.Стиль всегда Неопределено: во встроенном языке не предусмотрено получение значения через это свойство.

  4. Применяемое значение получают отдельно из БиблиотекаСтилей.УчебныйСтиль. Индекс сначала проверяется на отрицательное значение и лишь затем передаётся Получить.

  5. Нет присваивания ГлавныйСтиль и изменения ОсновнойСтиль. Это проверка двух разных API, не обещание визуального переключения.

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

  1. Четыре контрольные Истина: имя, Неопределено свойства, тип библиотечного значения и обратный индекс.

  2. Отсутствующий вручную подготовленный объект даёт понятное исключение до обращения к именованному свойству библиотеки.

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

Ученик получает корректный библиотечный стиль, не пытаясь разыменовать неподдерживаемое свойство метаданных.

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

  1. Этот УчебныйСтиль не заявляется существующим объектом исходной КА2. Его необходимо создать самому исключительно в учебной конфигурации.

  2. Наличие стиля не доказывает одинаковое оформление всех интерфейсов и тем 1С.

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

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

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

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

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