Имя: Пароль:
1C
1C 7.7
v7: Обработка результатов запроса из 1с 77 к 1с 82 через OLE соединение
0 LaryushkinAA
 
31.05.13
15:11
Процедура Сформировать()                      
   V82=CreateObject("V82.COMConnector");
   База = "zup_v82_abi_retail";
   Сервер = "retail-s-db2";
   Попытка
       БазаКОМ = V82.Connect("srvr="""+Сервер+""";ref="""+База+""";usr=""Oleuser"";pwd=""51824537""");
       Запрос=БазаКОМ.NewObject("Запрос");
       Запрос.текст =
           "ВЫБРАТЬ
           |ФизическиеЛица.Ссылка
           |ИЗ
           |    Справочник.ФизическиеЛица КАК ФизическиеЛица
           |ГДЕ
           |    ФизическиеЛица.Код = &Код
           |";
       Запрос.УстановитьПараметр("Код", "ЭН00003828");
       ДанныеПоЗапросу=Запрос.Выполнить().Выгрузить();            
       ссылка = ДанныеПоЗапросу.получить(0);
       Сообщить(ссылка);
   Исключение
       Сообщить(ОписаниеОшибки());
       Возврат;
   КонецПопытки;    
КонецПроцедуры

Подключаюсь из базы 1С 7.7 к базе 1С 8.2. Вариант 8.2 - > 7.7 отпадает сразу, такое ТЗ.
проблема в том, что я не могу никак выцепить результат. возвращается объект типа OLE, но мне нужно просто значение. Пробовал даже запрос, который возвращает только число "1", например. И все равно ничего не выходит, тип объекта OLE в отладчике и никаких подробностей(( помогите, пожалуйста, уже кучу мануалов по OLE покурил, тем кучу прочитал, и все никак.
P.S. Запрос точно правильный, возвращает 1 запись. проверено.
1 ДенисЧ
 
31.05.13
15:12
Выгрузить() отдаёт таблицу значений...
2 Asmody
 
31.05.13
15:13
какое тебе нужно [просто значение]?
3 LaryushkinAA
 
31.05.13
15:29
мне нужна строка в результате
4 LaryushkinAA
 
31.05.13
15:31
пробовал КОМБаза.String(...), возвращает "СтрокаТаблицыЗначений". пытался обратиться к коллекции колонок ТЗ, выкидывает ошибку. такое ощущение, что string  возвращает тип объекта, а не значение. че не так??
5 LaryushkinAA
 
31.05.13
15:35
"ВЫБРАТЬ
           |1
           |ИЗ
           |    Справочник.ФизическиеЛица КАК ФизическиеЛица
           |ГДЕ
           |    ФизическиеЛица.Код = &Код
           |";
пускай вот такой будет запрос.
6 Ёпрст
 
гуру
31.05.13
15:44
Ёпта.. ну так верни Одно Значение ИЗ Таблицы значений.. простого типа данных: строку/число/дату..
7 Asmody
 
31.05.13
15:46
(4) [возвращает "СтрокаТаблицыЗначений".] — что какбэ намекает.

ЗначениеПервойСтрокиПервойКолонки = ДанныеПоЗапросу.Получить(0).Получить(0);
8 Asmody
 
31.05.13
15:46
почему два раза Получить(0) объяснять нужно?
9 LaryushkinAA
 
31.05.13
16:02
(7) попробовал, вернуло опять OLE
10 Ёпрст
 
гуру
31.05.13
16:04
(9) при запросе в (0) ? не удивительно
11 Ёпрст
 
гуру
31.05.13
16:05
|ФизическиеЛица.Наименование
выбирай
12 LaryushkinAA
 
31.05.13
16:05
Есть!! БазаКом.String(ДанныеПоЗапросу.Получить(0).Получить(0)) благодарствую всем!
13 LaryushkinAA
 
31.05.13
16:05
все понял, запрос был просто примером. спасибо огромное всем!
Чтобы обнаруживать ошибки, программист должен иметь ум, которому доставляет удовольствие находить изъяны там, где, казалось, царят красота и совершенство. Фредерик Брукс-младший