1С 8.3 Получить значение перечисления по синониму - Программист 1С Минск. Автоматизация бизнеса.

Перейти к контенту

1С 8.3 Получить значение перечисления по синониму

Данные > Примеры кода 1С > 1С 8.3 Перечисления
Получение значения перечисления (по синониму) 1С 8.3:
Функция ЗначениеПеречисленияПоСинониму(ИмяПеречисления, Синоним) Экспорт

   ЭлементПеречисления = Перечисления[ИмяПеречисления].ПустаяСсылка();
   Для Каждого ТекущееПеречисление Из Метаданные.Перечисления[ИмяПеречисления].ЗначенияПеречисления Цикл
       Если ВРег(ТекущееПеречисление.Синоним) = ВРег(Синоним) Тогда
           ЭлементПеречисления = Перечисления[ИмяПеречисления][ТекущееПеречисление.Имя];
           Прервать;
       КонецЕсли;
   КонецЦикла;

   Возврат ЭлементПеречисления;

КонецФункции // ЗначениеПеречисленияПоСинониму()
Получение значения перечисления (по синониму) 1С 8.3:
Функция ЗначениеПеречисленияПоСинониму(ИмяПеречисления = Неопределено, Синоним = Неопределено, ВывестиСообщение = Ложь) Экспорт

   ЭлементыПеречисления = Новый Массив;
   ПеречислениеМетаданные = Метаданные.Перечисления.Найти(ИмяПеречисления);
   ШаблонПеречисления = "Перечисление.%1.%2";

   Если ПеречислениеМетаданные <> Неопределено Тогда
       Для Каждого Элемент Из ПеречислениеМетаданные.ЗначенияПеречисления Цикл
           Если ЗначениеЗаполнено(Синоним) Тогда
               Если Элемент.Синоним = Синоним Тогда
                   Элемент = СтрШаблон(ШаблонПеречисления, ПеречислениеМетаданные.Имя, Элемент.Имя);
                   ЭлементыПеречисления.Добавить(Элемент);
                   Прервать;
               КонецЕсли;
           Иначе
               Элемент = СтрШаблон(ШаблонПеречисления, ПеречислениеМетаданные.Имя, Элемент.Имя);
               ЭлементыПеречисления.Добавить(Элемент);
           КонецЕсли;
       КонецЦикла;
   Иначе
       Для Каждого ТекущееПеречисление Из Метаданные.Перечисления Цикл
           Для Каждого Элемент Из ТекущееПеречисление.ЗначенияПеречисления Цикл
               Если ЗначениеЗаполнено(Синоним) Тогда
                   Если Элемент.Синоним = Синоним Тогда
                       Элемент = СтрШаблон(ШаблонПеречисления, ТекущееПеречисление.Имя, Элемент.Имя);
                       ЭлементыПеречисления.Добавить(Элемент);
                       Прервать;
                   КонецЕсли;
               Иначе
                   Элемент = СтрШаблон(ШаблонПеречисления, ТекущееПеречисление.Имя, Элемент.Имя);
                   ЭлементыПеречисления.Добавить(Элемент);
               КонецЕсли;
           КонецЦикла;
       КонецЦикла;
   КонецЕсли;

   Если ВывестиСообщение Тогда
       Для Каждого ЭлементМассива Из ЭлементыПеречисления Цикл
           Сообщить(ЭлементМассива);
       КонецЦикла;
   КонецЕсли;

   Возврат ЭлементыПеречисления;

КонецФункции // ЗначениеПеречисленияПоСинониму()
0
комментарии
____________________
Copyright©, «Программист 1С в г.Минске», 20.11.2023
Перепечатка текста и фотографий разрешена при наличии прямой ссылки на источник
Яндекс.Метрика
Защищенное соединение ssl
visa
mastercard
Maestro
Яндекс деньги
Назад к содержимому