Вход | Регистрация


1С:Предприятие ::

Метки: 

v7: Прямой запрос из 1с 7.7 к другой базе 1с 7.7

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

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

выдает пустые поля....
   АЛьФ
 
12 - 20.02.18 - 15:05
2(11) А какой тип ожидается в результате запроса? Все возможные типы прописаны в текущем md. Создать типизированный объект другой базу не получится.
   iJuni
 
13 - 20.02.18 - 15:06
Да, сам додумался уже ) спасибо.
   Ёпрст
 
14 - 20.02.18 - 15:17
(10) пашет, если поставшь заплатку от hogik
   Ёпрст
 
15 - 20.02.18 - 15:18
(11) типизировать сможешь, если тока стороняя база - клон первой, архивная копия, к примеру
   iJuni
 
16 - 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
как пример
   iJuni
 
19 - 20.02.18 - 16:53
сожрал без _
Select * from База2.1SJOURN
   iJuni
 
20 - 20.02.18 - 16:53
спасибо
   Ёпрст
 
21 - 20.02.18 - 17:10
(19) естественно, в дбф нет таблиц с _
   iJuni
 
22 - 20.02.18 - 17:21
Всегда пользовался классом ПрямойЗапрос, вот и хз где что есть )



Список тем форума
 
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.
Тема не обновлялась длительное время, и была помечена как архивная. Добавление сообщений невозможно.
Но вы можете создать новую ветку и вам обязательно ответят!
Каждый час на Волшебном форуме бывает более 2000 человек.
Рекламное место пустует