Имя: Пароль:
1C
1C 7.7
v7: Прямой запрос из 1с 7.7 к другой базе 1с 7.7
0 iJuni
 
20.02.18
13:36
Есть две базы, хочу с одной базы делать прямые запросы в другую.
Есть следующий код, который частично работает:

Функция Подключение()

    БазаОле=СоздатьОбъект("V77.Application");
    КаталогБазыОЛе  = СокрЛП(Константа.ПутьКВнешнейБазе);
    ПользовательОле = "ВнешняяБД";
    ПарольОле       = "";
    МонопольныйРежимOLE = ""; // для немонопольного запуска указать пустую строку!
    ЗапускБезЗаставки = 1;    // для появления заставки (например, чтобы наблюдать
                              // процесс запуска базы OLE визуально) поставьте здесь "0"
                                
    Сообщить("Подключение к БД");
    РезультатПодключения = БазаОле.Initialize ( БазаОле.RMTrade , "/d" +""""+СокрЛП(КаталогБазыОЛе)+""""+ " /n" + СокрЛП(ПользовательОле) + " /p" + СокрЛП(ПарольОле) + МонопольныйРежимOLE, ?(ЗапускБезЗаставки = 1,"NO_SPLASH_SHOW",""));
    Если РезультатПодключения = 0 Тогда
         Предупреждение("Не удалось подключится к указанной базе - проверьте вводные! " + РазделительСтрок + " База данных должна быть добавлена в меню выбора баз!");    
         Возврат -1;
    КонецЕсли;

    Сообщить("Подключение успешно!");
    Возврат БазаОле;
КонецФункции


    Запрос = ВнешняяБаза.CreateObject("Класс.ПрямойЗапрос");
    
    ТекстЗапроса = "Select * From Журнал ";


    ТЗ = СоздатьОбъект("ТаблицаЗначений");    

    Рез = Запрос.Выполнить("ТаблицаЗначений", ТекстЗапроса);
Запрос выполяется, но не выгружается в ТЗ

    Рез.Выгрузить(Экран);

Ругается на: Плохой тип переменной

Подскажите куда копать ?
1 АЛьФ
 
20.02.18
13:39
2(0) Какой смысл в использовании OLE? Прямой запрос и средствами 1С++ можно сделать в другой базе.
2 iJuni
 
20.02.18
13:48
Буду весьма признателен за пример.
3 iJuni
 
20.02.18
13:48
Юзаю Олю, так как когда-то делал что-то на ней.
4 iJuni
 
20.02.18
13:49
Базы ДБФ
5 Ёпрст
 
20.02.18
13:53
(4) это никакого значения не имеет.
6 Ёпрст
 
20.02.18
14:01
7 iJuni
 
20.02.18
14:07
Спасибо, все завелось.
8 Ёпрст
 
20.02.18
14:12
(6) прям вот так сходу за 6 мин проверил ?
9 iJuni
 
20.02.18
14:17
ругнулся на драйвер
поставил драйвер.
жмыхну кнопку, ругнулся что нету таких справочников - подшаманил справочники
10 iJuni
 
20.02.18
14:19
в монопольном не пашет?
11 iJuni
 
20.02.18
14:38
Подскажите как правильно типизировать ?
Пишу вот так:

ТекстЗапроса = "Select sp70 as [Товар База2.@Справочник.Товары] from База2.@ДокументСтроки.РасходнаяНал";

выдает пустые поля....
12 АЛьФ
 
20.02.18
15:05
2(11) А какой тип ожидается в результате запроса? Все возможные типы прописаны в текущем md. Создать типизированный объект другой базу не получится.
13 iJuni
 
20.02.18
15:06
Да, сам додумался уже ) спасибо.
14 Ёпрст
 
20.02.18
15:17
(10) пашет, если поставшь заплатку от hogik
15 Ёпрст
 
20.02.18
15:18
(11) типизировать сможешь, если тока стороняя база - клон первой, архивная копия, к примеру
16 iJuni
 
20.02.18
16:48
еще вопросик, а как сделать

Select * from База2._1SJOURN

?
17 Ёпрст
 
20.02.18
16:52
(16)

    |select
    |  Жур.@ОбщийРеквизит.IDD as IDDВудаленнойБазе
    |from База2.1sjourn Жур
    |where Жур.iddocdef = @ВидДокумента.ПоступлениеДопРасходы
18 Ёпрст
 
20.02.18
16:52
как пример
19 iJuni
 
20.02.18
16:53
сожрал без _
Select * from База2.1SJOURN
20 iJuni
 
20.02.18
16:53
спасибо
21 Ёпрст
 
20.02.18
17:10
(19) естественно, в дбф нет таблиц с _
22 iJuni
 
20.02.18
17:21
Всегда пользовался классом ПрямойЗапрос, вот и хз где что есть )
Кaк может человек ожидaть, что его мольбaм о снисхождении ответит тот, кто превыше, когдa сaм он откaзывaет в милосердии тем, кто ниже его? Петр Трубецкой