1С 8.3 Получить значение перечисления по синониму
Данные > Примеры кода 1С > 1С 8.3 Перечисления
Перейти в раздел примеры кода 1С 8.3:
Получение значения перечисления (по синониму) 1С 8.3:
Функция ЗначениеПеречисленияПоСинониму(ИмяПеречисления, Синоним) Экспорт
ЭлементПеречисления = Перечисления[ИмяПеречисления].ПустаяСсылка();
Для Каждого ТекущееПеречисление Из Метаданные.Перечисления[ИмяПеречисления].ЗначенияПеречисления Цикл
Если ВРег(ТекущееПеречисление.Синоним) = ВРег(Синоним) Тогда
ЭлементПеречисления = Перечисления[ИмяПеречисления][ТекущееПеречисление.Имя];
Прервать;
КонецЕсли;
КонецЦикла;
Возврат ЭлементПеречисления;
ЭлементПеречисления = Перечисления[ИмяПеречисления].ПустаяСсылка();
Для Каждого ТекущееПеречисление Из Метаданные.Перечисления[ИмяПеречисления].ЗначенияПеречисления Цикл
Если ВРег(ТекущееПеречисление.Синоним) = ВРег(Синоним) Тогда
ЭлементПеречисления = Перечисления[ИмяПеречисления][ТекущееПеречисление.Имя];
Прервать;
КонецЕсли;
КонецЦикла;
Возврат ЭлементПеречисления;
КонецФункции // ЗначениеПеречисленияПоСинониму()
Получение значения перечисления (по синониму) 1С 8.3:
Функция ЗначениеПеречисленияПоСинониму(ИмяПеречисления = Неопределено, Синоним = Неопределено, ВывестиСообщение = Ложь) Экспорт
ЭлементыПеречисления = Новый Массив;
ПеречислениеМетаданные = Метаданные.Перечисления.Найти(ИмяПеречисления);
ШаблонПеречисления = "Перечисление.%1.%2";
Если ПеречислениеМетаданные <> Неопределено Тогда
Для Каждого Элемент Из ПеречислениеМетаданные.ЗначенияПеречисления Цикл
Если ЗначениеЗаполнено(Синоним) Тогда
Если Элемент.Синоним = Синоним Тогда
Элемент = СтрШаблон(ШаблонПеречисления, ПеречислениеМетаданные.Имя, Элемент.Имя);
ЭлементыПеречисления.Добавить(Элемент);
Прервать;
КонецЕсли;
Иначе
Элемент = СтрШаблон(ШаблонПеречисления, ПеречислениеМетаданные.Имя, Элемент.Имя);
ЭлементыПеречисления.Добавить(Элемент);
КонецЕсли;
КонецЦикла;
Иначе
Для Каждого ТекущееПеречисление Из Метаданные.Перечисления Цикл
Для Каждого Элемент Из ТекущееПеречисление.ЗначенияПеречисления Цикл
Если ЗначениеЗаполнено(Синоним) Тогда
Если Элемент.Синоним = Синоним Тогда
Элемент = СтрШаблон(ШаблонПеречисления, ТекущееПеречисление.Имя, Элемент.Имя);
ЭлементыПеречисления.Добавить(Элемент);
Прервать;
КонецЕсли;
Иначе
Элемент = СтрШаблон(ШаблонПеречисления, ТекущееПеречисление.Имя, Элемент.Имя);
ЭлементыПеречисления.Добавить(Элемент);
КонецЕсли;
КонецЦикла;
КонецЦикла;
КонецЕсли;
Если ВывестиСообщение Тогда
Для Каждого ЭлементМассива Из ЭлементыПеречисления Цикл
Сообщить(ЭлементМассива);
КонецЦикла;
КонецЕсли;
Возврат ЭлементыПеречисления;
КонецФункции // ЗначениеПеречисленияПоСинониму()
ЭлементыПеречисления = Новый Массив;
ПеречислениеМетаданные = Метаданные.Перечисления.Найти(ИмяПеречисления);
ШаблонПеречисления = "Перечисление.%1.%2";
Если ПеречислениеМетаданные <> Неопределено Тогда
Для Каждого Элемент Из ПеречислениеМетаданные.ЗначенияПеречисления Цикл
Если ЗначениеЗаполнено(Синоним) Тогда
Если Элемент.Синоним = Синоним Тогда
Элемент = СтрШаблон(ШаблонПеречисления, ПеречислениеМетаданные.Имя, Элемент.Имя);
ЭлементыПеречисления.Добавить(Элемент);
Прервать;
КонецЕсли;
Иначе
Элемент = СтрШаблон(ШаблонПеречисления, ПеречислениеМетаданные.Имя, Элемент.Имя);
ЭлементыПеречисления.Добавить(Элемент);
КонецЕсли;
КонецЦикла;
Иначе
Для Каждого ТекущееПеречисление Из Метаданные.Перечисления Цикл
Для Каждого Элемент Из ТекущееПеречисление.ЗначенияПеречисления Цикл
Если ЗначениеЗаполнено(Синоним) Тогда
Если Элемент.Синоним = Синоним Тогда
Элемент = СтрШаблон(ШаблонПеречисления, ТекущееПеречисление.Имя, Элемент.Имя);
ЭлементыПеречисления.Добавить(Элемент);
Прервать;
КонецЕсли;
Иначе
Элемент = СтрШаблон(ШаблонПеречисления, ТекущееПеречисление.Имя, Элемент.Имя);
ЭлементыПеречисления.Добавить(Элемент);
КонецЕсли;
КонецЦикла;
КонецЦикла;
КонецЕсли;
Если ВывестиСообщение Тогда
Для Каждого ЭлементМассива Из ЭлементыПеречисления Цикл
Сообщить(ЭлементМассива);
КонецЦикла;
КонецЕсли;
Возврат ЭлементыПеречисления;
КонецФункции // ЗначениеПеречисленияПоСинониму()
0
комментарии
____________________
Перепечатка текста и фотографий разрешена при наличии прямой ссылки на источник