Возвращает Истина, если сам объект или один из его дочерних объектов изменен (в том числе, и добавлением нового дочернего объекта) расширениями в текущем сеансе.
Синтаксис
ЕстьИзмененияРасширениямиКонфигурации()Полное описание, параметры и ограничения
ОбъектМетаданных: ПланВидовХарактеристик.ЕстьИзмененияРасширениямиКонфигурации (MetadataObject: ChartOfCharacteristicTypes.ChangedByConfigurationExtensions)
ОбъектМетаданных: ПланВидовХарактеристик (MetadataObject: ChartOfCharacteristicTypes)
ЕстьИзмененияРасширениямиКонфигурации (ChangedByConfigurationExtensions)
Доступен, начиная с версии 8.3.9.
Синтаксис:
ЕстьИзмененияРасширениямиКонфигурации()
Описание:
Возвращает Истина, если сам объект или один из его дочерних объектов изменен (в том числе, и добавлением нового дочернего объекта) расширениями в текущем сеансе.
Доступность:
Сервер, толстый клиент, внешнее соединение, мобильное приложение (сервер), мобильный автономный сервер.
Использование в версии:
Доступен, начиная с версии 8.3.9.
Методическая информация
Практические примеры
Проверить историю данных и происхождение ПВХ без установки расширений
Настройка истории и принадлежность расширению — свойства схемы. Читаем их у собственного плана, не создавая версию, не подключая расширение и не меняя предопределённые данные.
Где и как запускать
Учебная база: создайте серверный общий модуль УчебныеЗадачи (флаг Сервер). Код без директив вставьте в тело процедуры ВыполнитьПример() Экспорт. Вызовите её из серверного обработчика команды учебной обработки. Не запускайте в рабочей базе.
Подготовка
Создайте НОВУЮ пустую файловую базу и назовите корень конфигурации Учебная85. Не добавляйте учебные объекты в УТ/КА2/УНФ/БП и не подключайте расширения.
Конфигуратор → Планы видов характеристик → Добавить: имя УчебныеСвойства, синоним Учебные свойства. Укажите длину кода 10, длину наименования 100, автонумерацию и контроль уникальности включите.
Включите иерархию плана. В свойстве Тип выберите только Число (12 цифр, 2 дробных, неотрицательное) и Строка (30 символов, переменная длина). Дополнительные значения характеристик не назначайте.
Реквизиты, табличные части, предопределённые элементы, формы, команды, макеты, характеристики и дополнительные индексы не создавайте. Модуль объекта и модуль менеджера оставьте пустыми; историю данных выключите.
Создайте серверный общий модуль УчебныеЗадачи с процедурой ВыполнитьПример() Экспорт и вызывайте её из серверного обработчика учебной обработки. Обновите конфигурацию базы данных перед первым запуском.
Код этого блока не вызывает Записать, не устанавливает блокировки и не меняет настройки метаданных. Учебные виды характеристик существуют только в памяти.
У УчебныеСвойства выключите ОбновлятьИсториюДанныхСразуПослеЗаписи и ВыполнятьОбработкуПослеЗаписиВерсииИсторииДанных. Обновите конфигурацию БД.
Если Метаданные.ПланыВидовХарактеристик.Найти("УчебныеСвойства") = Неопределено Тогда
ВызватьИсключение "Создайте собственный план УчебныеСвойства по подготовке";
КонецЕсли;
Описание = Метаданные.ПланыВидовХарактеристик.УчебныеСвойства;
Сообщить("История данных: " + Строка(Описание.ИсторияДанных));
Сообщить(Не Описание.ОбновлятьИсториюДанныхСразуПослеЗаписи);
Сообщить(Не Описание.ВыполнятьОбработкуПослеЗаписиВерсииИсторииДанных);
Сообщить("Обновление предопределённых: " + Строка(Описание.ОбновлениеПредопределенныхДанных));
Сообщить("Включать справку: " + Строка(Описание.ВключатьСправкуВСодержание));
Сообщить(Не Описание.ЕстьИзмененияРасширениямиКонфигурации());
Сообщить(Описание.РасширениеКонфигурации() = Неопределено);
Сообщить("Принадлежность: " + Строка(Описание.ПринадлежностьОбъекта));
Сообщить("Тип идентификатора заимствованного объекта: " + Строка(ТипЗнч(Описание.ОбъектРасширяемойКонфигурации)));Разбор по шагам
ИсторияДанных показывает настройку объекта. Два дополнительных флага не являются числом уже сохранённых версий.
ОбновлениеПредопределенныхДанных и ВключатьСправкуВСодержание читаем как отдельные режимы.
В новой базе без расширений нет внесённых ими изменений, а РасширениеКонфигурации не указывает добавившее объект расширение.
ПринадлежностьОбъекта и тип связанного идентификатора выводим фактически. Не подставляем выдуманный UUID и не устанавливаем расширение для демонстрации.
Как проверить результат
Четыре логические проверки дают Истина при выключенных дополнительных флагах истории и отсутствии расширений.
Ни версия истории данных, ни расширение этим кодом не создаются.
Диагностические режимы показывают собственную учебную схему, не состояние рабочего плана типовой конфигурации.
Ожидаемый результат
Разделены режим истории, обновление предопределённых и происхождение объекта схемы.
На что обратить внимание
ЕстьИзмененияРасширениямиКонфигурации и РасширениеКонфигурации отвечают на разные вопросы: был ли объект изменён и каким расширением добавлен.
Настройка истории не означает, что новый незаписанный объект уже имеет историю изменений.
Заимствованный объект расширения требует отдельного анализа исходного объекта и связанного UUID; пример не меняет этот UUID.
Пример не запускался в вашей базе. Перед применением проверьте его в указанном учебном контексте.