Получить происхождение реквизита, не отключая расширения

Учебные задачи

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

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

Полный серверный общий модуль учебной копии КА2 Progress. Только схема и собственные значения в памяти.

Подготовка

  1. Используйте отдельную учебную копию КА2 Progress, соответствующую C:\claude\KA2\Progress\XML_CF_KA2_PROGRESS. Названия и настройки проверены по реальным Catalogs/Номенклатура.xml и Catalogs/ВидыПодарочныхСертификатов.xml.

  2. Создайте серверный общий модуль УчебныеЗадачи, вставьте полный модуль одного урока и вызовите ВыполнитьПример() из своего серверного обработчика учебной команды.

  3. Примеры читают схему и создают значения только в памяти. Они не создают и не записывают товары, не меняют метаданные, не запускают заполнение объекта или перестроение поискового индекса.

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

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

  1. ПолноеИмя включает владельца и категорию реквизита; одинаковое короткое имя в другом справочнике не является этим же объектом.

  2. ПринадлежностьОбъекта и ОбъектРасширяемойКонфигурации относятся к происхождению описания, а не к владельцу единицы измерения из бизнес-данных.

  3. Факт изменения расширениями и принадлежность расширению выводятся раздельно. Не предполагаем, что все изменения формы обязательно происходят в базовой конфигурации.

  4. Для полной диагностики затем отдельно изучают модуль конкретной формы. Этот урок не отключает расширения и не включает привилегированный режим.

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

  1. Проверка имени — Истина, остальные строки — фактический паспорт объекта вашей учебной копии.

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

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

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

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

  1. Отсутствие изменений самого реквизита не доказывает отсутствие изменений модуля формы.

  2. Метаданные не являются экземпляром номенклатуры: Родитель здесь не родительская группа товара.

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

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

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

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

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