Имя: Пароль:
1C
1С v8
Не получается присвоить реквизиту значение перечисления
0 yur4egg
 
18.05.15
07:00
Запись реквизита справочника из текстового файла. Есть функция, находящая значение перечисления по строковым параметрам:
Функция ПолучитьЗначПеречислПоИмени(ИмяПер,ЗначПер) Экспорт
    Элем=Неопределено;
    Для каждого ЭлементПеречисления Из Метаданные.Перечисления[ИмяПер].ЗначенияПеречисления Цикл
        Если ЭлементПеречисления.Синоним = ЗначПер Тогда
            Элем = ЭлементПеречисления;
            Прервать;
        КонецЕсли;
    КонецЦикла;
    Возврат Элем;
КонецФункции

ЭлементСправочника.ИмяРеквизита = ПолучитьЗначПеречислПоИмени(ИмяПер,ЗначПер)

В отладчике видно что функция возвращает найденное значение, но реквизит справочника остается пустым. Сообщений об ошибке не возникает. Может какая-то путаница с типами (объекты и ссылки) ?
1 фобка
 
18.05.15
07:03
Да. "ИмяРеквизита" это строка скорее всего
2 yur4egg
 
18.05.15
18:34
ИмяРеквизита - это тип ПеречислениеСсылка, а возвращаемое значение - ОбъектМетаданных. Видимо объект надо превратить в ссылку, но как?
3 Одинесю
 
18.05.15
18:46
(2) Объект.Ссылка?
4 yur4egg
 
19.05.15
06:33
Я уже пробовал и .Ссылка и .ПолучитьСсылку() применительно к перечислению это не действует
5 PaulBC
 
19.05.15
06:38
Для ж = 0 По Перечисления[ИмяПер].Количество() - 1 Цикл
    Если Перечисления[ИмяПер][ж] = ЗначПер Тогда
        ...
    КонецЕсли;
КонецЦикла;
6 PaulBC
 
19.05.15
06:40
точнее,
Если Строка(Перечисления[ИмяПер][ж]) = ЗначПер Тогда