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

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

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

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

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

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

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

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

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

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

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

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

В комментариях, предложили еще один вариант, через метод XMLСтрока()

ИмяЗначенияПеречисления = XMLстрока(СсылкаНаПеречисление);
Понравилась статья? Поделиться с друзьями:
Комментарии: 2
  1. Меркалов

    ИмяЗначенияПеречисления = XMLстрока(СсылкаНаПеречисление);

    1. Guesto (автор)

      Меркалов, тоже варинат! Добавил в статью, спасибо!

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

;-) :| :x :twisted: :smile: :shock: :sad: :roll: :razz: :oops: :o :mrgreen: :lol: :idea: :grin: :evil: :cry: :cool: :arrow: :???: :?: :!: