Имя: Пароль:
1C
1С v8
Подключение по ОЛЕ. Как загрузить перечисление?
,
0 vladko
 
04.08.11
12:28
Привет,

подключаюсь по ОЛЕ в базе 1С:БП 1.6 из 1С:БП 2.0.
При создании элемента справочника, не могу понять, как вытащить значение перечисления у реквизита справочника?
Например,

Наименование = ТекКонтрагентОЛЕ.Наименование;            
ИскомыйКонтрагент = Справочники.Контрагенты.НайтиПоНаименованию(Наименование,Истина,,);
Если ИскомыйКонтрагент = Справочники.Контрагенты.ПустаяСсылка() тогда
 ЮрФизЛицо = ТекКонтрагентОЛЕ.ЮрФизЛицо;
 ПолнНаименование = ТекКонтрагентОЛЕ.НаименованиеПолное;
 ИскомыйКонтрагент = СоздатьКонтрагента(Наименование, ПолнНаименование, ИНН, ЮрФизЛицо);
 Сообщить("Создал контрагента: "+ИскомыйКонтрагент.Наименование);
КонецЕсли;

Не могу подобраться к значению ЮрФизЛицо. ЮрФизЛицо - это ПеречислениеСсылка.ЮрФизЛицо

Есть способы?
1 Wassily
 
04.08.11
12:31
2 butterbean
 
04.08.11
12:32
самый простой вариант "в лоб" : Если ЮрФизЛицо =  Перечисления.ЮрФизЛицо.ЮрЛицо Тогда ... и т.д.
3 Жан Пердежон
 
04.08.11
12:32
Если ЮрФизЛицо = ОлеПодключение.Перечисления.ЮрФизЛицо...
4 aka AMIGO
 
04.08.11
12:32
поищи в книге знаний, вроде что-то было..
mista.ru
5 fimanich
 
04.08.11
12:36
ПеречислениеСтрокой = XMLСтрока(ЮрФизЛицо); //ЮрФизЛицо - ссылка на перечисление
6 vladko
 
04.08.11
13:01
ТекКонтрагентОЛЕ.ЮрФизЛицо = это com-объект показывает в отладчике. Там находится значение Перечисления.ЮрФизЛицо в базе-источнике.
Если ТекКонтрагентОЛЕ.ЮрФизЛицо = ОлеПодключение.Перечисления.ЮрФизЛицо.ЮрЛицо тогда
ЮрФизЛицо = Перечисления.ЮрФизЛицо.ЮрЛицо;
ИначеЕсли ТекКонтрагентОЛЕ.ЮрФизЛицо = ОлеПодключение.Перечисления.ЮрФизЛицо.ФизЛицо тогда
ЮрФизЛицо = Перечисления.ЮрФизЛицо.ФизЛицо;
КонецЕсли;

тоже не срабатывает равенство. Всегда ложь.
7 fimanich
 
04.08.11
13:03
(6) Посмотри в отладчике XMLСтрока(ТекКонтрагентОЛЕ.ЮрФизЛицо)
8 Smallrat
 
04.08.11
13:05
ИмяЗначенияПеречисленияCOM = СоединениеCOM.XMLString(Выборка. ВидОперации);
СсылкаНаПеречисление = XMLЗначение(Тип("ПеречислениеСсылка. ЮрФизЛицо"),ИмяЗначенияПеречисленияCOM);
9 Smallrat
 
04.08.11
13:06
Выборка.ВидОперации это ТекКонтрагентОЛЕ.ЮрФизЛицо
10 Wassily
 
04.08.11
13:08
я через индекс получал
что-то типа
Перечисление.ЮрФизЛицо.Получить(COM.Перечисление.ЮрФизЛицо.ИНдекс)
11 smaharbA
 
04.08.11
13:09
переходите на 77 там это реализовано
12 vladko
 
04.08.11
13:10
(8) Спасибо! Сработало!!!
Проблемы невозможно решaть нa том же уровне компетентности, нa котором они возникaют. Альберт Эйнштейн