Предоставляет программный интерфейс для управления расширениями в информационной базе.
Полное описание, параметры и ограничения
МенеджерРасширенийКонфигурации (ConfigurationExtensionsManager)
МенеджерРасширенийКонфигурации (ConfigurationExtensionsManager)
Доступен, начиная с версии 8.3.6.
Методы:
ВыполнитьФоновоеЗаданиеБезРасширений (ExecuteBackgroundJobWithoutExtensions)
ВыполнитьФоновоеЗаданиеСРасширениямиБазыДанных (ExecuteBackgroundJobWithDatabaseExtensions)
Получить (Get)
ПолучитьИнформациюОПроблемахПримененияВСеансе (GetSessionApplicationIssuesInformation)
ПроверитьВозможностьПримененияВсех (CheckCanApplyAll)
РасширенияКонфигурацииИзменены (ConfigurationExtensionsChanged)
Создать (Create)
Описание:
Предоставляет программный интерфейс для управления расширениями в информационной базе.
Доступность:
Сервер, толстый клиент, внешнее соединение.
Использование в версии:
Доступен, начиная с версии 8.3.6.
Описание изменено в версии 8.3.22.
Методическая информация
Практические примеры
Проверить применимость, не выдавая её за бизнес-тест
Сравниваем проверку собственного CFE, проверку всего набора и фактические проблемы текущего сеанса. Ошибки и предупреждения не смешиваем с успешным применением.
Где и как запускать
Полный серверный модуль собственной УчебнаяКонфигурацияСинтаксиса. Чтение своего расширения, без его установки/обновления кодом.
Подготовка
Создайте отдельную пустую учебную конфигурацию с именем УчебнаяКонфигурацияСинтаксиса. Защитная проверка имени не допускает выполнение этих уроков в КА2, УТ или другой рабочей конфигурации.
В Конфигураторе этой учебной базы вручную создайте минимальное расширение УчебноеРасширениеСинтаксиса с назначением Дополнение, синонимом Учебное расширение и версией 1.0. Не добавляйте бизнес-код или новые таблицы.
Оставьте безопасный режим и защиту от опасных действий включёнными; не выдавайте через расширение дополнительные основные роли всем пользователям. Установите расширение только в собственной учебной базе и начните новый сеанс.
В серверном общем модуле УчебныеЗадачи разместите полный модуль одного урока. Запускайте свою серверную команду с правами, разрешёнными администратором учебной базы. Код не переключает привилегированный режим.
Примеры только читают паспорт, данные и диагностику. Они не записывают/удаляют расширение, не экспортируют CFE на диск и не отключают защиту.
Процедура ВыполнитьПример() Экспорт
Перечень = РасширенияКонфигурации.Получить();
Учебное = Неопределено;
Для Каждого Расширение Из Перечень Цикл
Если Расширение.Имя = "УчебноеРасширениеСинтаксиса" Тогда
Учебное = Расширение;
Прервать;
КонецЕсли;
КонецЦикла;
Если Учебное = Неопределено Тогда
ВызватьИсключение "Сначала подготовьте только своё минимальное УчебноеРасширениеСинтаксиса";
КонецЕсли;
Данные = Учебное.ПолучитьДанные();
Если Данные = Неопределено Тогда
ВызватьИсключение "Нет данных собственного установленного расширения для проверки";
КонецЕсли;
Проблемы = Учебное.ПроверитьВозможностьПрименения(Данные, Ложь);
Сообщить("Проблем в проверке своего CFE: " + Строка(Проблемы.Количество()));
Для Каждого Проблема Из Проблемы Цикл
Сообщить("Описание: " + Проблема.Описание);
Если Проблема.Важность = ВажностьПроблемыПримененияРасширенияКонфигурации.Критичная Тогда
Сообщить("Важность: критичная");
ИначеЕсли Проблема.Важность = ВажностьПроблемыПримененияРасширенияКонфигурации.Обычная Тогда
Сообщить("Важность: обычная");
ИначеЕсли Проблема.Важность = ВажностьПроблемыПримененияРасширенияКонфигурации.Низкая Тогда
Сообщить("Важность: низкая");
КонецЕсли;
Если Проблема.Расширение <> Неопределено Тогда
Сообщить("Относится к собственному расширению: " + Строка(Проблема.Расширение.Имя = Учебное.Имя));
КонецЕсли;
КонецЦикла;
ВесьНабор = РасширенияКонфигурации.ПроверитьВозможностьПримененияВсех();
ВТекущемСеансе = РасширенияКонфигурации.ПолучитьИнформациюОПроблемахПримененияВСеансе();
Сообщить("Проблем всего набора: " + Строка(ВесьНабор.Количество()));
Сообщить("Проблем применения в текущем сеансе: " + Строка(ВТекущемСеансе.Количество()));
Сообщить("Набор расширений изменён: " + Строка(РасширенияКонфигурации.РасширенияКонфигурацииИзменены()));
Сообщить("Проверки не устанавливают CFE; даже пустые списки не заменяют бизнес-тесты");
КонецПроцедурыРазбор по шагам
Первый аргумент проверки — двоичные данные своей установленной добавки. Ложь во втором аргументе не включает проверку последующих расширений; ранее загруженные учитываются по справке.
Результат — массив штатных ИнформацияОПроблемеПримененияРасширенияКонфигурации. У проблемы есть Описание, Важность и Расширение; до чтения имени проверяем отсутствие ссылки.
Важности называются Критичная, Обычная, Низкая, а не выдуманными Ошибка/Предупреждение. Пустой массив корректно проходит цикл.
ПроверитьВозможностьПримененияВсех учитывает набор по порядку загрузки в области данных. Информация текущего сеанса — отдельная диагностика реально начатого сеанса.
РасширенияКонфигурацииИзменены — отдельный признак изменений набора. Код не перезапускает сеанс и не применяет новое расширение.
Отсутствие проблем применимости не означает проверенные формы, права, обмен, проведение или корректность расчётов.
Как проверить результат
Показаны три фактических количества и признак изменения. Для собственного корректного минимального расширения проблемы обычно отсутствуют, но код не подменяет результат заранее заданным нулём.
При наличии проблем видны настоящий текст и важность. Настройки безопасности не отключаются для устранения списка.
Ожидаемый результат
Разделены статическая применимость CFE, набор расширений и состояние текущего сеанса.
На что обратить внимание
Не объявляйте успешную проверку применимости успешным тестированием бизнес-логики.
Не записывайте новое CFE только потому, что список проверок пуст.
Пример не запускался в вашей базе. Перед применением проверьте его в указанном учебном контексте.
Получить двоичные данные своего расширения без экспорта на диск
ПолучитьДанные возвращает CFE как ДвоичныеДанные. Сравниваем тип, размер и влияние на структуру данных, не объявляя архив исходным текстом BSL.
Где и как запускать
Полный серверный модуль собственной УчебнаяКонфигурацияСинтаксиса. Чтение своего расширения, без его установки/обновления кодом.
Подготовка
Создайте отдельную пустую учебную конфигурацию с именем УчебнаяКонфигурацияСинтаксиса. Защитная проверка имени не допускает выполнение этих уроков в КА2, УТ или другой рабочей конфигурации.
В Конфигураторе этой учебной базы вручную создайте минимальное расширение УчебноеРасширениеСинтаксиса с назначением Дополнение, синонимом Учебное расширение и версией 1.0. Не добавляйте бизнес-код или новые таблицы.
Оставьте безопасный режим и защиту от опасных действий включёнными; не выдавайте через расширение дополнительные основные роли всем пользователям. Установите расширение только в собственной учебной базе и начните новый сеанс.
В серверном общем модуле УчебныеЗадачи разместите полный модуль одного урока. Запускайте свою серверную команду с правами, разрешёнными администратором учебной базы. Код не переключает привилегированный режим.
Примеры только читают паспорт, данные и диагностику. Они не записывают/удаляют расширение, не экспортируют CFE на диск и не отключают защиту.
Процедура ВыполнитьПример() Экспорт
Перечень = РасширенияКонфигурации.Получить();
Учебное = Неопределено;
Для Каждого Расширение Из Перечень Цикл
Если Расширение.Имя = "УчебноеРасширениеСинтаксиса" Тогда
Учебное = Расширение;
Прервать;
КонецЕсли;
КонецЦикла;
Если Учебное = Неопределено Тогда
ВызватьИсключение "Сначала подготовьте только своё минимальное УчебноеРасширениеСинтаксиса";
КонецЕсли;
Данные = Учебное.ПолучитьДанные();
Если Данные = Неопределено Тогда
Сообщить("Двоичные данные ещё не определены; сначала установите свою минимальную учебную добавку");
Возврат;
КонецЕсли;
Если ТипЗнч(Данные) <> Тип("ДвоичныеДанные") Тогда
ВызватьИсключение "Ожидались штатные двоичные данные расширения";
КонецЕсли;
Сообщить(Данные.Размер() > 0);
Сообщить("Размер CFE в памяти, байт: " + Строка(Данные.Размер()));
Сообщить("Изменяет структуру данных: " + Строка(Учебное.ИзменяетСтруктуруДанных()));
Сообщить("Файл не сохранён; двоичные данные не преобразуются в строку и не выполняются");
КонецПроцедурыРазбор по шагам
У нового неустановленного объекта ПолучитьДанные может вернуть Неопределено. Проверка идёт до вызова Размер.
Штатный результат установленного расширения — ДвоичныеДанные. Это не XML выгрузка, не текст всех модулей и не JSON.
Размер выражен в байтах, а не числе модулей, объектов метаданных или мегабайтах.
ИзменяетСтруктуруДанных — отдельный признак необходимости структурных изменений. Он не доказывает корректность обработчиков и не запускает изменение таблиц.
Нет Данные.Записать, Расширение.Записать, исполнения CFE или восстановления поверх существующей конфигурации.
Как проверить результат
У подготовленного установленного минимального расширения размер положительный, выводится его фактическая величина.
Ни один CFE-файл не создан, расширение и структура базы не изменены.
Ожидаемый результат
Ученик получает правильный тип данных CFE и отделяет его размер от функциональной проверки.
На что обратить внимание
Не пытайтесь читать CFE как UTF-8 текст модулей.
Отсутствие изменения структуры не означает отсутствие воздействия кода расширения на бизнес-данные.
Пример не запускался в вашей базе. Перед применением проверьте его в указанном учебном контексте.