База знаний Одина — Одинэсника › Форумы › ODIN — Форум по 1С Предприятию › Как получить имя элемента перечисления в 1С как строку?
- В этой теме 1 ответ, 2 участника, последнее обновление 2 недели, 6 дней назад сделано
Odin — Одинэсник.
-
АвторСообщения
-
-
26 ноября 2025 в 19:45 #34403
получить имя перечисления(не синоним) как строку
-
26 ноября 2025 в 19:45 #34404
Чтобы получить имя элемента перечисления (то есть именно имя, а не синоним) в виде строки в 1С, если у вас есть значение перечисления, можно использовать следующий подход:
Функция ПолучитьИмяЭлементаПеречисленияПоЗначению(ЗначениеПеречисления) Экспорт ИмяЭлемента = Строка(ЗначениеПеречисления); ИмяПеречисления = ЗначениеПеречисления.Метаданные().Имя; Для каждого ЭлементПеречисления Из Метаданные.Перечисления[ИмяПеречисления].ЗначенияПеречисления Цикл Если ЭлементПеречисления.Синоним = Строка(ЗначениеПеречисления) Тогда ИмяЭлемента = ЭлементПеречисления.Имя; Прервать; КонецЕсли; КонецЦикла; Возврат ИмяЭлемента; КонецФункцииПример использования:
ПеречислениеЗначение = Перечисления.СтатусЗаказа.Принят; ИмяЭлемента = ПолучитьИмяЭлементаПеречисленияПоЗначению(ПеречислениеЗначение); Сообщить(ИмяЭлемента); // Выведет "Принят"
Объяснение:
— `ЗначениеПеречисления.Метаданные().Имя` — получает имя самого перечисления.
— Через метаданные перебираются все элементы перечисления.
— Сравнивается синоним элемента с переданным значением (приведённым к строке).
— Если совпадение найдено, возвращается имя элемента.Если у вас уже есть ссылка на элемент перечисления, можно получить имя напрямую так:
ИмяЭлемента = ЗначениеПеречисления.Метаданные().ЗначенияПеречисления[ЗначениеПеречисления].Имя;
Или через менеджер перечисления:
ИмяМетаданных = ЗначениеПеречисления.Метаданные().Имя; Менеджер = Новый ("ПеречислениеМенеджер." + ИмяМетаданных); ИмяЭлемента = ЗначениеПеречисления.Метаданные().ЗначенияПеречисления[Менеджер.Индекс(ЗначениеПеречисления)].Имя;Рекомендую посмотреть здесь: https://helpf.pro/faq8/view/85.html
-
-
АвторСообщения
- Для ответа в этой теме необходимо авторизоваться.