Тип: ПринадлежностьОбъекта. Устанавливает, относится ли объект к данной конфигурации или был заимствован из расширяемой конфигурации.
Полное описание, параметры и ограничения
ОбъектМетаданных: Язык.ПринадлежностьОбъекта (MetadataObject: Language.ObjectBelonging)
ОбъектМетаданных: Язык (MetadataObject: Language)
ПринадлежностьОбъекта (ObjectBelonging)
Доступен, начиная с версии 8.3.6.
Использование:
Только чтение.
Описание:
Тип: ПринадлежностьОбъекта.
Устанавливает, относится ли объект к данной конфигурации или был заимствован из расширяемой конфигурации.
Доступность:
Сервер, толстый клиент, внешнее соединение, мобильное приложение (сервер), мобильный автономный сервер.
Использование в версии:
Доступен, начиная с версии 8.3.6.
Методическая информация
Практические примеры
Получить паспорт языка без изменения метаданных
Сравниваем короткое имя и полное имя языка, его представление и сведения о влиянии расширений. Это схема конфигурации, не список переводов.
Где и как запускать
Полный серверный общий модуль учебной копии. Только чтение настроек и вычисления в памяти.
Подготовка
Работайте в отдельной учебной копии базы. Создайте серверный общий модуль УчебныеЗадачи, вставьте полный модуль урока и вызовите ВыполнитьПример() из серверного обработчика учебной команды.
Код выполняется на сервере: часть функций локализации и часовых поясов недоступна непосредственно в тонком клиенте. Реквизиты пользователя, региональные настройки и часовые пояса код не меняет.
Для двух уроков о метаданных используйте копию КА2 Progress: в исходном Languages/Русский.xml действительно есть язык Русский с КодЯзыка = ru. Остальные уроки не требуют объектов конкретной конфигурации.
Процедура ВыполнитьПример() Экспорт
Язык = Метаданные.Языки.Найти("Русский");
Если Язык = Неопределено Тогда
ВызватьИсключение "Нужна учебная копия КА2 Progress с языком Русский";
КонецЕсли;
Сообщить("Полное имя: " + Язык.ПолноеИмя());
Сообщить("Представление: " + Язык.Представление());
Сообщить("Тип родителя: " + Строка(ТипЗнч(Язык.Родитель())));
Сообщить("Принадлежность: " + Строка(Язык.ПринадлежностьОбъекта));
Сообщить("Тип идентификатора заимствования: " + Строка(ТипЗнч(Язык.ОбъектРасширяемойКонфигурации)));
Сообщить("Изменён расширениями: " + Строка(Язык.ЕстьИзмененияРасширениямиКонфигурации()));
Расширение = Язык.РасширениеКонфигурации();
Если Расширение = Неопределено Тогда
Сообщить("Объект не принадлежит отдельному расширению");
Иначе
Сообщить("Расширение определено; его объект читается без изменения");
КонецЕсли;
Сообщить(Язык.КодЯзыка = "ru");
КонецПроцедурыРазбор по шагам
ПолноеИмя позволяет отличить Язык.Русский от объекта другой категории с таким же коротким именем. Представление — пользовательская строка, не ключ поиска.
Родитель возвращает объект метаданных: выводим его фактический тип, а не приписываем ему бизнес-данные пользователя.
ПринадлежностьОбъекта и ОбъектРасширяемойКонфигурации характеризуют происхождение объекта. Не считаем все подключённые расширения заведомо отсутствующими.
РасширениеКонфигурации может вернуть Неопределено. ЕстьИзмененияРасширениямиКонфигурации — отдельный вопрос о влиянии расширений, не синоним принадлежности расширению.
Как проверить результат
Полное имя и представление можно сопоставить с языком в Конфигураторе. Последняя контрольная проверка — Истина.
При подключённых расширениях диагностические строки могут отличаться. Код не отключает расширения и не переписывает объект.
Ожидаемый результат
Получен читаемый паспорт реального языка для проверки конфигурации и расширений.
На что обратить внимание
Синоним и Представление не подходят как стабильный программный идентификатор.
Получение объекта метаданных не даёт возможности изменить его свойства в режиме предприятия.
Пример не запускался в вашей базе. Перед применением проверьте его в указанном учебном контексте.