Каталог решений - Получение Имени метаданных Перечисления по значению и поиск значения по Имени

Получение Имени метаданных Перечисления по значению и поиск значения по Имени

Получение Имени метаданных Перечисления по значению и поиск значения по Имени

В наличии

Простой алгоритм, позволяющий найти значение элемента Перечисления по Имени, а также совершить обратное преобразование.

Категория:

Описание

В моей практике периодически возникает потребность в поиске значения Перечисления по его Имени. Например, это нужно, когда требуется перенос данных между базами, который производится не типовым обменом, а внешней обработкой, создаваемой под тип файла данных заказчика. Как часто встречающийся вариант — Excel файл произвольной конфигурации. 

Получить Имя элемента Перечисления по Ссылке можно следующим образом:

&НаСервере
Функция ПолучитьИмяПеречисления(Знач ПеречислениеСсылка)  	
	ИмяМетаданных = ПеречислениеСсылка.Метаданные().Имя;
	НазваниеМенеджера = "ПеречислениеМенеджер." + ИмяМетаданных;    
	Менеджер = Новый (НазваниеМенеджера); 
	Имя = ПеречислениеСсылка.Метаданные().ЗначенияПеречисления[Менеджер.Индекс(ПеречислениеСсылка)].Имя;
	Возврат Имя;  
КонецФункции

Имя метаданных самого Перечисления мы тоже получаем в первой строке кода функции, если оно нужно, его можно использовать.

Получить Ссылку на элемент Перечисления по Имени можно так:

&НаСервере
Функция ПолучитьПеречислениеПоИмени(Знач Наименование, Знач Тип)  
	Если Тип <> "" Тогда	
		ПеречислениеСсылка = Неопределено;
		СтрокаВыполнить = "ПеречислениеСсылка = Перечисления." + Тип + "." + Наименование; 		 
		Попытка  		
			Выполнить СтрокаВыполнить; 		
		Исключение
		    Сообщить(ОписаниеОшибки());
		КонецПопытки; 		
	Иначе 
		ПеречислениеСсылка = Неопределено;	
	КонецЕсли;
	Возврат ПеречислениеСсылка;  	
КонецФункции

Собственно, таким простым способом можно реализовать подобную манипуляцию. Публикация не претендует на решение высокой сложности, скорее — это шпаргалка для простой, но не так часто встречающейся задачи, чтобы сэкономить время.

has been added to your cart:
Оформление заказа