ОбъектМетаданных: Ресурс.Родитель

Методы · Parent

Получает объект описания метаданного, которому подчинен данный объект.

Синтаксис

Родитель()

Примеры платформы

Метаданные.Документы.РасходнаяНакладная.Реквизиты.Цена.Родитель();
Полное описание, параметры и ограничения

ОбъектМетаданных: Ресурс.Родитель (MetadataObject: Resource.Parent)

ОбъектМетаданных: Ресурс (MetadataObject: Resource)

Родитель (Parent)

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

Синтаксис:
Родитель()
Описание:

Получает объект описания метаданного, которому подчинен данный объект.

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

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

Пример:

// В данном примере метод вернет значение

// Метаданные.Документы.РасходнаяНакладная

Метаданные.Документы.РасходнаяНакладная.Реквизиты.Цена.Родитель();

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

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

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

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

Проверить назначенные график, дату и числовое значение графика

График ссылается на регистр сведений ГрафикиРаботыПоВидамВремени. ДатаГрафика и ЗначениеГрафика — описания его измерения и ресурса, не отработанные часы конкретного сотрудника.

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

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

Подготовка

  1. Запускайте в учебной копии конфигурации. Примеры читают структуру метаданных, но не создают объекты, не записывают регистры и не проводят документы.

  2. Сверяйте вывод с деревом конфигурации в Конфигураторе. Имена, длины и настройки в УНФ, КА2, БП, УТ 11 и УТ 10.3 могут различаться.

  3. Имена объектов взяты из XML КА2 Progress: C:\claude\KA2\Progress\XML_CF_KA2_PROGRESS. Исходные XML не изменяйте. Выполняйте код только в своей учебной копии соответствующей конфигурации.

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

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

Описание = Метаданные.РегистрыРасчета.Найти("Начисления");
Если Описание = Неопределено Тогда
    ВызватьИсключение "В учебной конфигурации отсутствует РегистрыРасчета.Начисления";
КонецЕсли;
График = Метаданные.РегистрыСведений.Найти("ГрафикиРаботыПоВидамВремени");
Если График = Неопределено Тогда
    ВызватьИсключение "В учебной конфигурации отсутствует РегистрыСведений.ГрафикиРаботыПоВидамВремени";
КонецЕсли;
ДатаГрафика = Описание.ДатаГрафика;
ЗначениеГрафика = Описание.ЗначениеГрафика;
Если ДатаГрафика = Неопределено Или ЗначениеГрафика = Неопределено Тогда
    ВызватьИсключение "В учебных начислениях ожидались дата и значение графика";
КонецЕсли;
Сообщить(Описание.График = График);
Сообщить(ДатаГрафика.Имя = "Дата");
Сообщить(ДатаГрафика.Родитель() = График);
Сообщить(ДатаГрафика.Тип.СодержитТип(Тип("Дата")));
Сообщить(ЗначениеГрафика.Имя = "ОсновноеЗначение");
Сообщить(ЗначениеГрафика.Родитель() = График);
Сообщить(ЗначениеГрафика.Тип.СодержитТип(Тип("Число")));
Сообщить(График.ПериодичностьРегистраСведений = Метаданные.СвойстваОбъектов.ПериодичностьРегистраСведений.Непериодический);
Сообщить(ЗначениеГрафика.Тип.КвалификаторыЧисла.Разрядность = 5);
Сообщить(ЗначениеГрафика.Тип.КвалификаторыЧисла.РазрядностьДробнойЧасти = 2);

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

  1. По XML в Начисления назначены все три описания; находим сам регистр сведений отдельно.

  2. ДатаГрафика должна быть его измерением типа Дата, ЗначениеГрафика — его числовым ресурсом.

  3. Периодичность самого графика непериодическая, а дата хранится измерением: не путайте это с месячной периодичностью регистра расчёта.

  4. Квалификаторы 5,2 относятся к типу ресурса, не вычисляют рабочие часы или число дней.

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

  1. Десять сравнений Истина по предоставленной схеме.

  2. Не выбиралась ни одна дата/значение из записей графиков работы.

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

Проверены три связи схемы и типы даты/числового значения графика.

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

  1. ОсновноеЗначение не обещает универсальную единицу «часы»: смысл определяется видом времени и прикладной логикой.

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

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

Найти владельца ресурса и отличить описание от суммы

Ресурс Сумма принадлежит регистру бухгалтерии Хозрасчетный. Его название и расширение относятся к структуре, не к текущему балансу.

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

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

Подготовка

  1. Запускайте в учебной копии конфигурации. Примеры читают структуру метаданных, но не создают объекты, не записывают регистры и не проводят документы.

  2. Сверяйте вывод с деревом конфигурации в Конфигураторе. Имена, длины и настройки в УНФ, КА2, БП, УТ 11 и УТ 10.3 могут различаться.

  3. Имена объектов взяты из XML КА2 Progress: C:\claude\KA2\Progress\XML_CF_KA2_PROGRESS. Исходные XML не изменяйте. Выполняйте код только в своей учебной копии соответствующей конфигурации.

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

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

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

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

  1. Имя ресурса ищем внутри выбранного регистра, не в глобальном контексте.

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

  3. Родитель ресурса — регистр; не путайте этот метод с измерением Организация.

  4. Происхождение схемы читаем без изменения расширений и без хозяйственных операций.

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

  1. Сравнение родителя Истина; имя ресурса Сумма, полное имя относится к Хозрасчетный.

  2. При отсутствии добавившего расширения его Имя не читается; никакая бухгалтерская сумма не запрашивается.

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

Установлены идентичность и происхождение конкретного ресурса.

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

  1. Представление ресурса — строка, а не числовое значение проводки.

  2. Флаг изменений расширениями не доказывает повреждение регистра.

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

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

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

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

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