получить имя значения перечисления
Продолжаем рубрику для новичков ‘Джуниор 1с’. Сегодня мы узнаем как можно получить имя значения перечисления (свойство ‘Имя’).
Пускай у нас будет перечисление “Результат” с тремя значениями “Победа”, “Ничья”, “Поражение” и мы программно хотим получить строковое представление свойства “Имя” значения “Победа”:

Если вам на вскидку сразу пришло два варианта: преобразовать значение в строку, либо через точку получить имя, то спешу вас расстроить – ничего из этого хорошего не получится:

В первом случае мы получим синоним значения перечисления, а втором ошибку.
Правильный вариант это использовать функцию одного из общих модулей любой типовой конфигурации (к примеру – Библиотека стандартных подсистем) – ‘ПолучитьИмяЗначенияПеречисления’:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
&НаСервере Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) ИмяЗначение = ПолучитьИмяЗначенияПеречисления(Перечисления.Результат, Перечисления.Результат.Победа); КонецПроцедуры Функция ПолучитьИмяЗначенияПеречисления(ТекПеречисление, ЗначениеПеречисления) ТекИндекс = ТекПеречисление.Индекс(ЗначениеПеречисления); ИмяЗначения = ЗначениеПеречисления.Метаданные().ЗначенияПеречисления[ТекИндекс].Имя; Возврат ИмяЗначения; КонецФункции |
В результате получим имя значения нашего перечисления = ‘Победа’.
