ОбъектМетаданных: РегистрНакопления.ЕстьИзмененияРасширениямиКонфигурации

Методы · ChangedByConfigurationExtensions

Возвращает Истина, если сам объект или один из его дочерних объектов изменен (в том числе, и добавлением нового дочернего объекта) расширениями в текущем сеансе.

Синтаксис

ЕстьИзмененияРасширениямиКонфигурации()
Полное описание, параметры и ограничения

ОбъектМетаданных: РегистрНакопления.ЕстьИзмененияРасширениямиКонфигурации (MetadataObject: AccumulationRegister.ChangedByConfigurationExtensions)

ОбъектМетаданных: РегистрНакопления (MetadataObject: AccumulationRegister)

ЕстьИзмененияРасширениямиКонфигурации (ChangedByConfigurationExtensions)

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

Синтаксис:
ЕстьИзмененияРасширениямиКонфигурации()
Описание:

Возвращает Истина, если сам объект или один из его дочерних объектов изменен (в том числе, и добавлением нового дочернего объекта) расширениями в текущем сеансе.

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

Сервер, толстый клиент, внешнее соединение, мобильное приложение (сервер), мобильный автономный сервер.

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

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

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

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

Проверить происхождение схемы регистра без подключения расширений

Расширение, добавившее/изменившее объект метаданных, не является регистратором конкретного движения. Читаем происхождение собственной схемы и тип связанного идентификатора.

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

Учебная база: создайте серверный общий модуль УчебныеЗадачи (флаг Сервер). Код без директив вставьте в тело процедуры ВыполнитьПример() Экспорт. Вызовите её из серверного обработчика команды учебной обработки. Не запускайте в рабочей базе.

Подготовка

  1. Создайте НОВУЮ пустую файловую базу, имя корневой конфигурации УчебныеОстатки85. Не добавляйте эти объекты в УТ/КА2/УНФ/БП. Режим управления блокировкой данных конфигурации — Управляемый.

  2. Документы → Добавить: УчебноеДвижение85. Номер: Строка длиной 40, автонумерация выключена. Модули объекта и менеджера оставьте пустыми; не добавляйте обработчики, подписки и обязательные пользовательские реквизиты.

  3. Регистры накопления → Добавить: УчебныеОстатки85. Вид регистра Остатки. Единственное измерение КодТовара: Строка 50, индексировать, проверка заполнения Показывать ошибку. Единственный ресурс Количество: Число 12,3, неотрицательное. Дополнительных реквизитов нет.

  4. В списке регистраторов выберите только собственный документ УчебноеДвижение85. Оставьте модули регистра пустыми, использование итогов включённым. Планы обмена, разделители, историю данных и фоновые задания для урока не создавайте.

  5. Обновите конфигурацию базы данных. Создайте серверный общий модуль УчебныеЗадачи и команду собственной обработки. Фрагмент вставьте внутрь ВыполнитьПример() Экспорт; запускайте задачи по отдельности.

  6. Первые задачи работают с незаписанными наборами. Только задачи с пометкой «в собственной транзакции» временно записывают два собственных документа и движения, затем обязательно отменяют транзакцию. В рабочей базе этот код не запускайте.

  7. В этом разделе код ТОЛЬКО ЧИТАЕТ метаданные УчебныеОстатки85. Наборы, документы, транзакции, блокировки и запись движений не создаются.

  8. Не создавайте пользовательские формы, команды, макеты и дополнительные индексы у учебного регистра; расширения не устанавливайте.

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

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

  1. Защитный блок относится к новой учебной схеме без установленных расширений.

  2. ЕстьИзмененияРасширениямиКонфигурации проверяет факт изменения схемы расширениями.

  3. РасширениеКонфигурации сообщает расширение, добавившее объект. Отсутствующее значение обрабатываем до чтения свойств расширения.

  4. ПринадлежностьОбъекта и связанный идентификатор показываем без попыток присваивания или выдуманного UUID.

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

  1. Две логические проверки дают Истина в учебной базе без расширений.

  2. Два диагностических сообщения относятся к схеме; регистратор движения этим кодом не читается.

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

Разделены происхождение объекта метаданных и источник записей регистра.

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

  1. Добавление регистра расширением и изменение существующего регистра расширением — разные ситуации.

  2. Не устанавливайте расширение в рабочую базу ради демонстрации этих методов.

  3. Эти свойства не являются журналом кто/когда записал движение и не заменяют журнал регистрации.

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

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

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

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

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