Как получить значение использования реквизита для элемента или группы справочника кодом

1. Pryanishnikov_Vladimir 29.05.20 13:12 Сейчас в теме
Как получить значение использования реквизита для элекнта или группы справочника кодом?
Сейчас сравниваю со строкой. Есть варианты получить значение этого типа кодом?

Если ЭтоСправочник и Данные.Получить("IsFolder") = ИСТИНА тогда
	Если Строка(ОбъектЗаполнения.Метаданные().Реквизиты[Реквизит.Имя].Использование) = "ДляЭлемента"  тогда
		Продолжить;
	КонецЕсли;
КонецЕсли;	
Прикрепленные файлы:
По теме из базы знаний
Найденные решения
2. VmvLer 29.05.20 13:16 Сейчас в теме
глобальный поиск по модулям рулит когда морковь и петрушка еще не созрели
Пример
Функция РеквизитОрганизацияДоступен(Объект)
	
	// Возвращаемое значение функции.
	Результат = Истина;
	
	МетаданныеОбъекта = Объект.Метаданные();
	
	Если   (ОбщегоНазначения.ЭтоСправочник(МетаданныеОбъекта)
		ИЛИ ОбщегоНазначения.ЭтоПланВидовХарактеристик(МетаданныеОбъекта))
		И МетаданныеОбъекта.Иерархический Тогда
		
		ИмяРеквизитаОрганизация = ИмяРеквизитаОрганизация(МетаданныеОбъекта);
		
		РеквизитОрганизация = МетаданныеОбъекта.Реквизиты.Найти(ИмяРеквизитаОрганизация);
		
		Если РеквизитОрганизация = Неопределено Тогда
			
			Если ОбщегоНазначения.ЭтоСтандартныйРеквизит(МетаданныеОбъекта.СтандартныеРеквизиты, ИмяРеквизитаОрганизация) Тогда
				
				// Стандартный реквизит всегда доступен и для элемента и для группы.
				Возврат Истина;
				
			КонецЕсли;
			
			СтрокаСообщения = НСтр("ru = 'Для объекта метаданных %1 не определен реквизит с именем %2.'");
			СтрокаСообщения = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(СтрокаСообщения, МетаданныеОбъекта.ПолноеИмя(), ИмяРеквизитаОрганизация);
			ВызватьИсключение СтрокаСообщения;
		КонецЕсли;
			
		Если РеквизитОрганизация.Использование = Метаданные.СвойстваОбъектов.ИспользованиеРеквизита.ДляГруппы И Не Объект.ЭтоГруппа Тогда
			
			Результат = Ложь;
			
		ИначеЕсли РеквизитОрганизация.Использование = Метаданные.СвойстваОбъектов.ИспользованиеРеквизита.ДляЭлемента И Объект.ЭтоГруппа Тогда
			
			Результат = Ложь;
			
		КонецЕсли;
		
	КонецЕсли;
	
	Возврат Результат;
КонецФункции
Показать


морковь и петрушка стимулируют память
Pryanishnikov_Vladimir; +1 Ответить
Остальные ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. VmvLer 29.05.20 13:16 Сейчас в теме
глобальный поиск по модулям рулит когда морковь и петрушка еще не созрели
Пример
Функция РеквизитОрганизацияДоступен(Объект)
	
	// Возвращаемое значение функции.
	Результат = Истина;
	
	МетаданныеОбъекта = Объект.Метаданные();
	
	Если   (ОбщегоНазначения.ЭтоСправочник(МетаданныеОбъекта)
		ИЛИ ОбщегоНазначения.ЭтоПланВидовХарактеристик(МетаданныеОбъекта))
		И МетаданныеОбъекта.Иерархический Тогда
		
		ИмяРеквизитаОрганизация = ИмяРеквизитаОрганизация(МетаданныеОбъекта);
		
		РеквизитОрганизация = МетаданныеОбъекта.Реквизиты.Найти(ИмяРеквизитаОрганизация);
		
		Если РеквизитОрганизация = Неопределено Тогда
			
			Если ОбщегоНазначения.ЭтоСтандартныйРеквизит(МетаданныеОбъекта.СтандартныеРеквизиты, ИмяРеквизитаОрганизация) Тогда
				
				// Стандартный реквизит всегда доступен и для элемента и для группы.
				Возврат Истина;
				
			КонецЕсли;
			
			СтрокаСообщения = НСтр("ru = 'Для объекта метаданных %1 не определен реквизит с именем %2.'");
			СтрокаСообщения = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(СтрокаСообщения, МетаданныеОбъекта.ПолноеИмя(), ИмяРеквизитаОрганизация);
			ВызватьИсключение СтрокаСообщения;
		КонецЕсли;
			
		Если РеквизитОрганизация.Использование = Метаданные.СвойстваОбъектов.ИспользованиеРеквизита.ДляГруппы И Не Объект.ЭтоГруппа Тогда
			
			Результат = Ложь;
			
		ИначеЕсли РеквизитОрганизация.Использование = Метаданные.СвойстваОбъектов.ИспользованиеРеквизита.ДляЭлемента И Объект.ЭтоГруппа Тогда
			
			Результат = Ложь;
			
		КонецЕсли;
		
	КонецЕсли;
	
	Возврат Результат;
КонецФункции
Показать


морковь и петрушка стимулируют память
Pryanishnikov_Vladimir; +1 Ответить
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот