МетаданныеВладельцаЗначенийСвойствНабора (БСП)

Автор: 1С
ОбщийМодуль.УправлениеСвойствамиСлужебный
БСП

Метаданные владельца значений свойств набора. Возвращает объект метаданных, который является владельцем значений

// Возвращает объект метаданных, который является владельцем значений
// свойств набора дополнительных реквизитов и сведений.
//
Функция МетаданныеВладельцаЗначенийСвойствНабора(Ссылка, УчитыватьПометкуУдаления = Истина, ТипСсылки = Неопределено) Экспорт
	
	Если НЕ ЗначениеЗаполнено(Ссылка) Тогда
		Возврат Неопределено;
	КонецЕсли;
	
	ПредопределенныеНаборыСвойств = УправлениеСвойствамиПовтИсп.ПредопределенныеНаборыСвойств();
	
	Если ТипЗнч(Ссылка) = Тип("Структура") Тогда
		СвойстваСсылки = Ссылка;
	Иначе
		СвойстваСсылки = ОбщегоНазначения.ЗначенияРеквизитовОбъекта(
			Ссылка, "ПометкаУдаления, ЭтоГруппа, Предопределенный, Родитель, ИмяПредопределенныхДанных, ИмяПредопределенногоНабора");
	КонецЕсли;
	
	Если ЗначениеЗаполнено(СвойстваСсылки.ИмяПредопределенногоНабора) Тогда
		СвойстваСсылки.ИмяПредопределенныхДанных = СвойстваСсылки.ИмяПредопределенногоНабора;
		СвойстваСсылки.Предопределенный          = Истина;
	КонецЕсли;
	
	Если УчитыватьПометкуУдаления И СвойстваСсылки.ПометкаУдаления Тогда
		Возврат Неопределено;
	КонецЕсли;
	
	Если СвойстваСсылки.ЭтоГруппа Тогда
		СсылкаПредопределенного = Ссылка;
		
	ИначеЕсли СвойстваСсылки.Предопределенный
	        И СвойстваСсылки.Родитель = Справочники.НаборыДополнительныхРеквизитовИСведений.ПустаяСсылка()
	        Или СвойстваСсылки.Родитель = Неопределено Тогда
		
		СсылкаПредопределенного = Ссылка;
	Иначе
		СсылкаПредопределенного = СвойстваСсылки.Родитель;
	КонецЕсли;
	
	Если Ссылка <> СсылкаПредопределенного Тогда
		СвойстваНабора = ПредопределенныеНаборыСвойств.Получить(СвойстваСсылки.Родитель);
		Если СвойстваНабора <> Неопределено Тогда
			ИмяПредопределенного = ПредопределенныеНаборыСвойств.Получить(СсылкаПредопределенного).Имя;
		Иначе
			ИмяПредопределенного = ОбщегоНазначения.ЗначениеРеквизитаОбъекта(СсылкаПредопределенного, "ИмяПредопределенныхДанных");
		КонецЕсли;
	Иначе
		ИмяПредопределенного = СвойстваСсылки.ИмяПредопределенныхДанных;
	КонецЕсли;
	
	Позиция = СтрНайти(ИмяПредопределенного, "_");
	
	ПерваяЧастьИмени =  Лев(ИмяПредопределенного, Позиция - 1);
	ВтораяЧастьИмени = Прав(ИмяПредопределенного, СтрДлина(ИмяПредопределенного) - Позиция);
	
	МетаданныеВладельца = Метаданные.НайтиПоПолномуИмени(ПерваяЧастьИмени + "." + ВтораяЧастьИмени);
	
	Если МетаданныеВладельца <> Неопределено Тогда
		ТипСсылки = Тип(ПерваяЧастьИмени + "Ссылка." + ВтораяЧастьИмени);
	КонецЕсли;
	
	Возврат МетаданныеВладельца;
	
КонецФункции

///////////////////////////////////////////////////////////////////////////////////////////////////////
// Copyright (c) 2019, ООО 1С-Софт
// Все права защищены. Эта программа и сопроводительные материалы предоставляются 
// в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0)
// Текст лицензии доступен по ссылке:
// https://creativecommons.org/licenses/by/4.0/legalcode
///////////////////////////////////////////////////////////////////////////////////////////////////////

Рекомендации

Похожие публикации

ПолучитьНаборыСвойствОбъекта (БСП)

ВозможноЗаполнитьНаборыЗначенийДоступа (БСП)

ИмяКонфигурации (БСП)

ВерсияКонфигурации (БСП)

НаименованияНаборовСвойств (БСП)

СписокОбъектовМетаданныхИмеющихХранилищеЗначения (БСП)

ОписаниеСвойствОбъекта (БСП)

УстановитьПараметрыНабораСвойств (БСП)

НаборСвойствПоИмени (БСП)

TurboConf ИР адаптер 2.63