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