Получает объект описания метаданного, которому подчинен данный объект.
Синтаксис
Родитель()Примеры платформы
Метаданные.Документы.РасходнаяНакладная.Реквизиты.Цена.Родитель();Полное описание, параметры и ограничения
ОбъектМетаданных: Измерение.Родитель (MetadataObject: Dimension.Parent)
ОбъектМетаданных: Измерение (MetadataObject: Dimension)
Родитель (Parent)
Доступен, начиная с версии 8.0.
Синтаксис:
Родитель()
Описание:
Получает объект описания метаданного, которому подчинен данный объект.
Доступность:
Сервер, толстый клиент, внешнее соединение, мобильное приложение (сервер), мобильный автономный сервер.
Пример:
// В данном примере метод вернет значение
// Метаданные.Документы.РасходнаяНакладная
Метаданные.Документы.РасходнаяНакладная.Реквизиты.Цена.Родитель();
Использование в версии:
Доступен, начиная с версии 8.0.
Методическая информация
Практические примеры
Сравнить роль Сотрудник в начислениях и удержаниях
В Начисления Сотрудник — измерение, а в Удержания — реквизит. Одно имя поля не позволяет без проверки переносить запрос или структуру набора записей.
Где и как запускать
Учебная база: создайте серверный общий модуль УчебныеЗадачи (флаг Сервер). Код без директив вставьте в тело процедуры ВыполнитьПример() Экспорт. Вызовите её из серверного обработчика команды учебной обработки. Не запускайте в рабочей базе.
Подготовка
Запускайте в учебной копии конфигурации. Примеры читают структуру метаданных, но не создают объекты, не записывают регистры и не проводят документы.
Сверяйте вывод с деревом конфигурации в Конфигураторе. Имена, длины и настройки в УНФ, КА2, БП, УТ 11 и УТ 10.3 могут различаться.
Имена объектов взяты из XML КА2 Progress: C:\claude\KA2\Progress\XML_CF_KA2_PROGRESS. Исходные XML не изменяйте. Выполняйте код только в своей учебной копии соответствующей конфигурации.
В другой конфигурации предварительно найдите аналогичный объект в Конфигураторе и замените только строку имени в поиске. Отсутствие имени обрабатывается до чтения свойств; оно не доказывает отсутствие аналогичной возможности.
Каждый урок запускайте отдельно. Код не вызывает бизнес-функции модулей и обработчики команд, не переключает привилегированный режим и не меняет параметры сеанса.
Описание = Метаданные.РегистрыРасчета.Найти("Начисления");
Если Описание = Неопределено Тогда
ВызватьИсключение "В учебной конфигурации отсутствует РегистрыРасчета.Начисления";
КонецЕсли;
Удержания = Метаданные.РегистрыРасчета.Найти("Удержания");
Если Удержания = Неопределено Тогда
ВызватьИсключение "В учебной конфигурации отсутствует РегистрыРасчета.Удержания";
КонецЕсли;
Сотрудник = Описание.Измерения.Найти("Сотрудник");
Если Сотрудник = Неопределено Тогда
ВызватьИсключение "В учебных начислениях ожидалось измерение Сотрудник";
КонецЕсли;
СотрудникУдержаний = Удержания.Реквизиты.Найти("Сотрудник");
Если СотрудникУдержаний = Неопределено Тогда
ВызватьИсключение "В учебных удержаниях ожидался реквизит Сотрудник";
КонецЕсли;
Сообщить(Описание.Измерения.Количество() = 4);
Сообщить(Удержания.Измерения.Количество() = 2);
Сообщить(Удержания.Измерения.Найти("Сотрудник") = Неопределено);
Сообщить(Сотрудник.Тип.СодержитТип(Тип("СправочникСсылка.Сотрудники")));
Сообщить(СотрудникУдержаний.Тип.СодержитТип(Тип("СправочникСсылка.Сотрудники")));
Сообщить(Сотрудник.Родитель() = Описание);
Сообщить(СотрудникУдержаний.Родитель() = Удержания);Разбор по шагам
Поиск делаем в разных группах схемы: Измерения против Реквизиты.
Проверяем наличие до Тип и Родитель; одинаковая ссылочная типизация не делает роль поля одинаковой.
Четыре и два измерения — количества описаний разрезов учёта, не сотрудников или строк расчёта.
Как проверить результат
Семь сравнений Истина по предоставленным XML.
Не читалась зарплата, персональные данные или справочник сотрудников.
Ожидаемый результат
Обнаружено конкретное отличие схем двух реальных регистров.
На что обратить внимание
СправочникСсылка.Сотрудники и строковый табельный номер — разные типы.
Не добавляйте недостающее измерение в типовую конфигурацию только ради переноса чужого примера.
Пример не запускался в вашей базе. Перед применением проверьте его в указанном учебном контексте.
Проверить назначенные график, дату и числовое значение графика
График ссылается на регистр сведений ГрафикиРаботыПоВидамВремени. ДатаГрафика и ЗначениеГрафика — описания его измерения и ресурса, не отработанные часы конкретного сотрудника.
Где и как запускать
Учебная база: создайте серверный общий модуль УчебныеЗадачи (флаг Сервер). Код без директив вставьте в тело процедуры ВыполнитьПример() Экспорт. Вызовите её из серверного обработчика команды учебной обработки. Не запускайте в рабочей базе.
Подготовка
Запускайте в учебной копии конфигурации. Примеры читают структуру метаданных, но не создают объекты, не записывают регистры и не проводят документы.
Сверяйте вывод с деревом конфигурации в Конфигураторе. Имена, длины и настройки в УНФ, КА2, БП, УТ 11 и УТ 10.3 могут различаться.
Имена объектов взяты из XML КА2 Progress: C:\claude\KA2\Progress\XML_CF_KA2_PROGRESS. Исходные XML не изменяйте. Выполняйте код только в своей учебной копии соответствующей конфигурации.
В другой конфигурации предварительно найдите аналогичный объект в Конфигураторе и замените только строку имени в поиске. Отсутствие имени обрабатывается до чтения свойств; оно не доказывает отсутствие аналогичной возможности.
Каждый урок запускайте отдельно. Код не вызывает бизнес-функции модулей и обработчики команд, не переключает привилегированный режим и не меняет параметры сеанса.
Описание = Метаданные.РегистрыРасчета.Найти("Начисления");
Если Описание = Неопределено Тогда
ВызватьИсключение "В учебной конфигурации отсутствует РегистрыРасчета.Начисления";
КонецЕсли;
График = Метаданные.РегистрыСведений.Найти("ГрафикиРаботыПоВидамВремени");
Если График = Неопределено Тогда
ВызватьИсключение "В учебной конфигурации отсутствует РегистрыСведений.ГрафикиРаботыПоВидамВремени";
КонецЕсли;
ДатаГрафика = Описание.ДатаГрафика;
ЗначениеГрафика = Описание.ЗначениеГрафика;
Если ДатаГрафика = Неопределено Или ЗначениеГрафика = Неопределено Тогда
ВызватьИсключение "В учебных начислениях ожидались дата и значение графика";
КонецЕсли;
Сообщить(Описание.График = График);
Сообщить(ДатаГрафика.Имя = "Дата");
Сообщить(ДатаГрафика.Родитель() = График);
Сообщить(ДатаГрафика.Тип.СодержитТип(Тип("Дата")));
Сообщить(ЗначениеГрафика.Имя = "ОсновноеЗначение");
Сообщить(ЗначениеГрафика.Родитель() = График);
Сообщить(ЗначениеГрафика.Тип.СодержитТип(Тип("Число")));
Сообщить(График.ПериодичностьРегистраСведений = Метаданные.СвойстваОбъектов.ПериодичностьРегистраСведений.Непериодический);
Сообщить(ЗначениеГрафика.Тип.КвалификаторыЧисла.Разрядность = 5);
Сообщить(ЗначениеГрафика.Тип.КвалификаторыЧисла.РазрядностьДробнойЧасти = 2);Разбор по шагам
По XML в Начисления назначены все три описания; находим сам регистр сведений отдельно.
ДатаГрафика должна быть его измерением типа Дата, ЗначениеГрафика — его числовым ресурсом.
Периодичность самого графика непериодическая, а дата хранится измерением: не путайте это с месячной периодичностью регистра расчёта.
Квалификаторы 5,2 относятся к типу ресурса, не вычисляют рабочие часы или число дней.
Как проверить результат
Десять сравнений Истина по предоставленной схеме.
Не выбиралась ни одна дата/значение из записей графиков работы.
Ожидаемый результат
Проверены три связи схемы и типы даты/числового значения графика.
На что обратить внимание
ОсновноеЗначение не обещает универсальную единицу «часы»: смысл определяется видом времени и прикладной логикой.
Не назначайте такой же график другим регистрам автоматически, особенно если период действия не используется.
Пример не запускался в вашей базе. Перед применением проверьте его в указанном учебном контексте.