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

Потребовалось получить имя переданного значения перечисления, но ни с первой, ни со второй попытки получить желаемое не удалось.

Поиски в интрнетах привели в раздел методической поддержки ИТС, и на самом деле решение не такое простое:

ЗначениеПеречисления = Перечисления.ВидыКонтрагентов.Организация;

ИмяПеречисления = ЗначениеПеречисления.Метаданные().Имя;

ИндексЗначенияПеречисления = Перечисления[ИмяПеречисления].Индекс(ЗначениеПеречисления);

ИмяЗначенияПеречисления = Метаданные.Перечисления[ИмяПеречисления].ЗначенияПеречисления[ИндексЗначенияПеречисления].Имя;

Для использования создадим свою функцию, так же объединим весь код из примера в однострочник не хуже Perl’овского

Функция ПолучитьИмяЗначенияПеречисления(ЗначениеПеречисления) Экспорт

    Если Не ЗначениеЗаполнено(ЗначениеПеречисления) Тогда 
        Возврат Неопределено;
    КонецЕсли;    

    Возврат Метаданные.Перечисления[ЗначениеПеречисления.Метаданные().Имя].ЗначенияПеречисления[Перечисления[ЗначениеПеречисления.Метаданные().Имя].Индекс(ЗначениеПеречисления)].Имя    

КонецФункции

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *