Получение значения перечисления в COM-соединении

Код жуткий — для получения значения используется перебор.

Понадобилось в обновляторе, а там COM-соединение… Жуть…

А все потому что ни в менеджере перечислений ни в менеджере перечислений нет функции получения по имени, а квадратные скобки в COM не работают.

Проще никак?

Функция ЗначениеПеречисленияПоИмени(ИмяПеречисления, Имя)                                                                 
	Сч = 0;
	Для каждого ЭлементПеречисления Из Корень1С("Метаданные").Перечисления.Найти(ИмяПеречисления).ЗначенияПеречисления Цикл
		Если ЭлементПеречисления.Имя = Имя Тогда 
			//https://helpf.pro/help/view/7666.html
			МДМенеджера =  Корень1С("Метаданные").Перечисления.Найти(ИмяПеречисления);
			ИндМ = Корень1С("Метаданные").Перечисления.Индекс(МДМенеджера);  
			СчМ = 0;
			Для Каждого МенеджерПеречисления ИЗ Корень1С("Перечисления") Цикл
				Если СчМ = ИндМ Тогда
					Прервать;
				КонецЕсли;
				СчМ = СчМ + 1;
			КонецЦикла;
            Возврат МенеджерПеречисления.Получить(Сч);
            Прервать;
		КонецЕсли; 
		Сч = Сч + 1;
    КонецЦикла;
КонецФункции

fixin

Программирую на 1С с 1999 года. В 1С просто Гений. В 2020 году ушел из офиса на вольные хлеба фриланса. Принимаю заказы.

Читайте также:

комментария 2

  1. Абырвалг:

    Соединение.ПредопределенноеЗначение(СтрШаблон(«Перечисление.%1.%2»,ИмяПеречисления,ИмяЗначения))

    • Надо попробовать. Спасибо. Если только ПредопределенноеЗначение досупно во внешнем соединении.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *