Имя: Пароль:
1C
 
Ещё один баг СОМ-соединения. Имя реквизита совпадает с методом справочника
0 DirecTwiX
 
16.01.15
19:31
У справочника есть реквизит "Уровень". При попытке его изменить вылетает ошибка: "{Обработка.ОбновленияКладра.МодульОбъекта(444)}: Ошибка при установке значения атрибута контекста (Уровень): Метод не найден"


СправочникКлассификатора = Соединение.Справочники.АдресныеСокращения;
...
ОбъектАдреса = СправочникКлассификатора.НайтиПоКоду(Фасет);
Если ОбъектАдреса = Неопределено ИЛИ ОбъектАдреса.Пустая() Тогда
    ОбъектАдреса = СправочникКлассификатора.СоздатьЭлемент();
    ОбъектАдреса.Код = Фасет;
Иначе
    ОбъектАдреса = ОбъектАдреса.ПолучитьОбъект()
КонецЕсли;
                
ОбъектАдреса.Наименование = СокрЛП(КлассификаторСокращений.SOCRNAME);
ОбъектАдреса.Сокращение = СокрЛП(КлассификаторСокращений.SCNAME);
Урв = Число(КлассификаторСокращений.LEVEL);
ОбъектАдреса.Уровень = Урв;

Пробовал
ОбъектАдреса["Уровень"] - та же беда. При этом чтение реквизита работает нормально.
Как заполнить реквизит?
1 Рэйв
 
16.01.15
19:36
Это надо быть феерическим идиотом.
Чтобы завести реквизит "Уровень"
2 DirecTwiX
 
16.01.15
19:37
(1) Не поверишь, он есть во всех типовых, где есть поддержка КЛАДРа..
3 Рэйв
 
16.01.15
19:38
(2)Ты во прям сейчас уронил их в моих глазах ниже плинтуса...
4 DirecTwiX
 
16.01.15
19:38
Ещё забавно, что
   ОбъектАдреса.Уровень()
выдаёт значение реквизита "Уровень", а не метода Уровень(), которыей можно выполнить, используя Level()...
5 Рэйв
 
16.01.15
19:39
(4)Ржачно конечно. Хорошо что я в нетиповой пишу.
Посылаю вам всем лучики сочувствия:-)
6 DirecTwiX
 
16.01.15
19:48
(5) Зато сколько радости, когда такой баг обходишь :D


СпецСтрукт = Соединение.NewObject("Структура");
СпецСтрукт.Вставить("Уровень");
...
СпецСтрукт.Уровень = Урв;            Соединение.ЗаполнитьЗначенияСвойств(ОбъектАдреса, СпецСтрукт, "Уровень");

http://99px.ru/sstorage/41/2012/08/image_412008122000081643382.png
Есть два вида языков, одни постоянно ругают, а вторыми никто не пользуется.