8.х Как получить имя выбранного значения перечисления?

Тема в разделе "Общие вопросы "1С:Предприятие 8"", создана пользователем Amishechka, 8 фев 2007.

  1. TopicStarter Overlay
    Amishechka
    Offline

    Amishechka Опытный в 1С

    Регистрация:
    8 сен 2006
    Сообщения:
    361
    Симпатии:
    1
    Баллы:
    26
    Как получить имя выбранного значения перечисления?
    В семерке был метод Идентификатор(), а в восьмерке?
  2. exitone
    Offline

    exitone

    Регистрация:
    16 янв 2007
    Сообщения:
    12
    Симпатии:
    0
    Баллы:
    1
    Перечисление.Метаданные().Имя

    ПеречислениеСсылка.<Имя перечисления> (EnumRef.<Имя перечисления>)
    Метаданные (Metadata)
    Синтаксис:
    Метаданные()
    Возвращаемое значение:
    Тип: ОбъектМетаданных.
    Описание:
    Предоставляет доступ к объекту описания метаданных перечисления. Другой путь получения того же значения - через свойство глобального контекста Метаданные. Например: Метаданные.Перечисления.ВидыКонтрагентов.
  3. TopicStarter Overlay
    Amishechka
    Offline

    Amishechka Опытный в 1С

    Регистрация:
    8 сен 2006
    Сообщения:
    361
    Симпатии:
    1
    Баллы:
    26
    меня не интересует имя перечисления, меня интересует имя ВЫБРАННОГО ЗНАЧЕНИЯ перечисления
  4. exitone
    Offline

    exitone

    Регистрация:
    16 янв 2007
    Сообщения:
    12
    Симпатии:
    0
    Баллы:
    1
    Элемент.Значение

    Точнее Элемент.Значение.Метаданные().Имя даст имя ВЫБРАННОГО ЗНАЧЕНИЯ перечисления
  5. TopicStarter Overlay
    Amishechka
    Offline

    Amishechka Опытный в 1С

    Регистрация:
    8 сен 2006
    Сообщения:
    361
    Симпатии:
    1
    Баллы:
    26
    вот кусок кода
    Процедура КнопкаВыполнитьНажатие(Элемент)
    Сообщить(РеквизитНаФорме.Метаданные().Имя);
    КонецПроцедуры

    вот результат
    ВидыДнейПроизводственногоКалендаря

    а мне надо чтобы было значение, например: суббота

    так что если не знаешь , так и не пиши
  6. zaiko99@mail.ru
    Offline

    zaiko99@mail.ru

    Регистрация:
    4 сен 2008
    Сообщения:
    6
    Симпатии:
    0
    Баллы:
    1
    У меня получилось вот так:

    Код:
    ТипФайла.Метаданные().ЗначенияПеречисления[Перечисления.ТипыВнешнихФайлов.Индекс(ТипФайла)].Имя
    
    Где ТипФайла - ПеречислениеСсылка.ТипыВнешнихФайлов
  7. tunec
    Offline

    tunec Опытный в 1С

    Регистрация:
    2 июн 2008
    Сообщения:
    469
    Симпатии:
    0
    Баллы:
    26
    а какого типа у вас РеквизитНаФорме и к какому типу поля он привязан?

    Для реквизита типа ПеречислениеСсылка и поля ПолеВвода нормально работает:
    РеквизитНаФорме.Метаданные().Имя;

    только что проверил на 8.0...

    Возращаемый тип "строка"...
  8. x-a-d
    Offline

    x-a-d Опытный в 1С

    Регистрация:
    3 сен 2009
    Сообщения:
    184
    Симпатии:
    0
    Баллы:
    26
    не сочтите меня за некропостера :)
    но просто гуглил как раз вопрос, заданный в данной теме, а развернутого ответа тут нет
    я его нашел и выложу, вдруг кому пригодится

    Код:
    //присвоим переменной значение перечисления
    //например перечисления.ставкиНДС.НДС18 
    //или например Док.СтавкаНДС 
    НужноеЗначение = Какое_то_Значение_Перечисления; 
    
    //теперь получаем как названо перечисление в конфигураторе
    ИмяПеречисления = НужноеЗначение.Метаданные().Имя;
    
    //теперь получим индекс где хранится то что нам надо
    НужныйИндекс = Перечисления[ИмяПеречисления].Индекс(НужноеЗначение);
    
    //и вот счастье. то что нам надо - идентификатор!!! всего-то четыре строчки кода
    //вместо Какое_то_Значение_Перечисления.Идентификатор() в 7.7
    ИмяЗначения = Метаданные.Перечисления[ИмяПеречисления].ЗначенияПеречисления[НужныйИндекс].Имя;
    

Поделиться этой страницей