|
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
|
все понял, запрос был просто примером. спасибо огромное всем!
|
|
Чтобы обнаруживать ошибки, программист должен иметь ум, которому доставляет удовольствие находить изъяны там, где, казалось, царят красота и совершенство. Фредерик Брукс-младший