РасширениеКонфигурации.ОбластьДействия

Свойства · Scope

Тип: ОбластьДействияРасширенияКонфигурации, Неопределено. Область действия расширения конфигурации. Для нового объекта РасширениеКонфигурации значение свойства может быть прочитано как Неопределено. При записи такого расширения это значение будет автоматически заменено на одно из значений типа ОбластьДействияРасширенияКонфигурации по следующим правилам: Если включено разделение расширений конфигурации, то будет выбрано значение РазделениеДанных. В остальных случаях будет выбрано значение ИнформационнаяБаза. Эти значения также можно установить явно.

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

РасширениеКонфигурации.ОбластьДействия (ConfigurationExtension.Scope)

РасширениеКонфигурации (ConfigurationExtension)

ОбластьДействия (Scope)

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

Использование:
Чтение и запись.
Описание:
Тип: ОбластьДействияРасширенияКонфигурации, Неопределено.
Область действия расширения конфигурации.
Для нового объекта РасширениеКонфигурации значение свойства может быть прочитано как Неопределено. При записи такого расширения это значение будет автоматически заменено на одно из значений типа ОбластьДействияРасширенияКонфигурации по следующим правилам:
Если включено разделение расширений конфигурации, то будет выбрано значение РазделениеДанных.

В остальных случаях будет выбрано значение ИнформационнаяБаза.
Эти значения также можно установить явно.
Доступность:

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

См. также:
ОбластьДействияРасширенияКонфигурации

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

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

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

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

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

Имя, версия, идентификатор и хеш описывают подготовленное расширение. Назначение Дополнение не является показателем успешности выполнения его кода.

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

Полный серверный модуль собственной УчебнаяКонфигурацияСинтаксиса. Чтение своего расширения, без его установки/обновления кодом.

Подготовка

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

  2. В Конфигураторе этой учебной базы вручную создайте минимальное расширение УчебноеРасширениеСинтаксиса с назначением Дополнение, синонимом Учебное расширение и версией 1.0. Не добавляйте бизнес-код или новые таблицы.

  3. Оставьте безопасный режим и защиту от опасных действий включёнными; не выдавайте через расширение дополнительные основные роли всем пользователям. Установите расширение только в собственной учебной базе и начните новый сеанс.

  4. В серверном общем модуле УчебныеЗадачи разместите полный модуль одного урока. Запускайте свою серверную команду с правами, разрешёнными администратором учебной базы. Код не переключает привилегированный режим.

  5. Примеры только читают паспорт, данные и диагностику. Они не записывают/удаляют расширение, не экспортируют CFE на диск и не отключают защиту.

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

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

  1. Получить возвращает массив расширений. Ищем по точному собственному имени, а не берём первый элемент и не считаем его главным.

  2. Имя и Синоним служат разным целям. Версия — строка, не Число: значение 1.0 не используем для арифметического сравнения релизов.

  3. УникальныйИдентификатор отличает объект расширения; ХешСумма характеризует его данные. Не выдумываем алгоритм хеша и не называем строку доказательством цифровой подписи.

  4. Назначение сравниваем с контейнером Метаданные.СвойстваОбъектов. Все три варианта поясняются, но подготовлено именно Дополнение.

  5. ОбластьДействия может быть Неопределено; читаем её фактический тип без вызова несуществующих методов.

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

  1. Три основные контрольные Истина: имя, тип идентификатора и подготовленное назначение. Остальное — фактические строки и признаки.

  2. Ни имя, ни версия, ни назначение расширения не присваиваются.

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

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

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

  1. Имя, версия и хеш не заменяют тесты бизнес-логики после обновления.

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

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

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

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

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

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