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