Переключение на Главную Страницу Страницы: [1] 2  ОтправитьПечать
Очень популярная тема (более 25 ответов) Не вытаскивает данные из второй базы (число прочтений - 8060 )
jj
Junior Member
**
Отсутствует


1C++ rocks!

Сообщений: 27
Зарегистрирован: 09. Октября 2009
Не вытаскивает данные из второй базы
09. Октября 2009 :: 10:39
Печать  
Добрый день!

SQL сервер 2005, 1С++ v.3.0.1.23

На одном сервере находятся две базы "База1" и "База2". Из Базы1 запускаю обработку с кодом

[code]BD = CreateObject("ODBCDatabase");
BD.ПрисоединитьИБ(<ПутьКБазе2>,,,"Driver={SQL Server};Server=<Сервер>;Database=<База2>;Uid=<Пользователь>;Pwd=<Пароль>");
RS = CreateObject("ODBCRecordset");
RS.УстБД(BD);
   
RS.УстановитьТекстовыйПараметр("НачДата", ВыбНачПериода);
RS.УстановитьТекстовыйПараметр("КонДата", ВыбКонПериода);
   
ТекстЗапроса = "SELECT
|    Жур.IDDOC as [Док $Документ],
|    Жур.IDDOCDEF as Док_вид,
|    CAST(LEFT(Жур.DATE_TIME_IDDOC, 8) as DateTime) as ДатаДок
|FROM
|    _1SJourn as Жур
|WHERE
|   Жур.DATE_TIME_IDDOC BETWEEN :НачДата AND :КонДата~ AND
|    Жур.Closed & 1 = 1
|";
   
RS.ВыполнитьИнструкцию(ТекстЗапроса,ТЗ,1);
[/code]

В ТЗ на форме вижу список документов "Базы1". Получается, что не срабатывает RS.УстБД(BD), а почему не понятно. Перерыл пол-инета - вроде везде обращение к данным "сторонней" БД выполняется именно таким образом, а вот работать не хочет.Подскажите, пожалуйста, что я сделал не так
  
Наверх
 
IP записан
 
U_zer
Экс-Участник


Re: Не вытаскивает данные из второй базы
Ответ #1 - 09. Октября 2009 :: 10:53
Печать  
[quote author=jj link=1255084764/0#0 date=1255084764]Добрый день!

SQL сервер 2005, 1С++ v.3.0.1.23

На одном сервере находятся две базы "База1" и "База2". Из Базы1 запускаю обработку с кодом

[code]BD = CreateObject("ODBCDatabase");
BD.ПрисоединитьИБ(<ПутьКБазе2>,,,"Driver={SQL Server};Server=<Сервер>;Database=<База2>;Uid=<Пользователь>;Pwd=<Пароль>");
RS = CreateObject("ODBCRecordset");
RS.УстБД(BD);
   
RS.УстановитьТекстовыйПараметр("НачДата", ВыбНачПериода);
RS.УстановитьТекстовыйПараметр("КонДата", ВыбКонПериода);
   
ТекстЗапроса = "SELECT
|    Жур.IDDOC as [Док $Документ],
|    Жур.IDDOCDEF as Док_вид,
|    CAST(LEFT(Жур.DATE_TIME_IDDOC, 8) as DateTime) as ДатаДок
|FROM
|    _1SJourn as Жур
|WHERE
|   Жур.DATE_TIME_IDDOC BETWEEN :НачДата AND :КонДата~ AND
|    Жур.Closed & 1 = 1
|";
   
RS.ВыполнитьИнструкцию(ТекстЗапроса,ТЗ,1);
[/code]

В ТЗ на форме вижу список документов "Базы1". Получается, что не срабатывает RS.УстБД(BD), а почему не понятно. Перерыл пол-инета - вроде везде обращение к данным "сторонней" БД выполняется именно таким образом, а вот работать не хочет.Подскажите, пожалуйста, что я сделал не так[/quote]

В попытку исключение засунь процесс подключения и увидишь, что не так. Вообще, там где <путь к базе2> нужно пользователя и пароль указывать (для 1С).
  
Наверх
 
IP записан
 
jj
Junior Member
**
Отсутствует


1C++ rocks!

Сообщений: 27
Зарегистрирован: 09. Октября 2009
Re: Не вытаскивает данные из второй базы
Ответ #2 - 09. Октября 2009 :: 10:58
Печать  
Пробовал через попытку-исключение. Все работает без вопросов.
Только что попробовал еще такой вариант текста запроса :

[code]ТекстЗапроса = "
|SELECT
|      Спр.Code as Код,
|      Спр.Descr as Наименование
|FROM
|      $Справочник.ТМЦ as Спр";[/code]

выводит список ТМЦ [b]ИЗ НУЖНОЙ БАЗЫ !!![/b]
Я уже вообще ничего не понимаю.... нельзя что-ли вытаскивать документы из сторонней иб ?
  
Наверх
 
IP записан
 
Z1
God Member
*****
Отсутствует


I Love YaBB 2!

Сообщений: 2906
Местоположение: Москва
Зарегистрирован: 26. Мая 2006
Пол: Мужской
Re: Не вытаскивает данные из второй базы
Ответ #3 - 09. Октября 2009 :: 11:18
Печать  
[quote author=jj link=1255084764/0#2 date=1255085882]Пробовал через попытку-исключение. Все работает без вопросов.
Только что попробовал еще такой вариант текста запроса :

[code]ТекстЗапроса = "
|SELECT
|      Спр.Code as Код,
|      Спр.Descr as Наименование
|FROM
|      $Справочник.ТМЦ as Спр";[/code]

выводит список ТМЦ [b]ИЗ НУЖНОЙ БАЗЫ !!![/b]
Я уже вообще ничего не понимаю.... нельзя что-ли вытаскивать документы из сторонней иб ?[/quote]
а у тебя в базе 2 если какой нибудь вид документа какого нет
в базе1 ?
  
Наверх
 
IP записан
 
jj
Junior Member
**
Отсутствует


1C++ rocks!

Сообщений: 27
Зарегистрирован: 09. Октября 2009
Re: Не вытаскивает данные из второй базы
Ответ #4 - 09. Октября 2009 :: 11:22
Печать  
Есть. В базе1 есть документ "ПеремещениеТМЦ", в базе2 - "Перемещение".
  
Наверх
 
IP записан
 
jj
Junior Member
**
Отсутствует


1C++ rocks!

Сообщений: 27
Зарегистрирован: 09. Октября 2009
Re: Не вытаскивает данные из второй базы
Ответ #5 - 09. Октября 2009 :: 11:23
Печать  
Пробовал в условие вставлять "ПеремещениеТМЦ" - ругается.Значит смотрит на МД-шник той базы
  
Наверх
 
IP записан
 
trad
1c++ power user
1c++ donor
1c++ moderator
Отсутствует



Сообщений: 3050
Местоположение: Киров
Зарегистрирован: 23. Мая 2006
Пол: Мужской
Re: Не вытаскивает данные из второй базы
Ответ #6 - 09. Октября 2009 :: 11:25
Печать  
Цитата:
[Док $Документ]
типизация ссылок из присоединенной ИБ невозможна
  

1&&2&&3
Наверх
 
IP записан
 
jj
Junior Member
**
Отсутствует


1C++ rocks!

Сообщений: 27
Зарегистрирован: 09. Октября 2009
Re: Не вытаскивает данные из второй базы
Ответ #7 - 09. Октября 2009 :: 11:27
Печать  
а как тогда правильно прописать ?
  
Наверх
 
IP записан
 
trad
1c++ power user
1c++ donor
1c++ moderator
Отсутствует



Сообщений: 3050
Местоположение: Киров
Зарегистрирован: 23. Мая 2006
Пол: Мужской
Re: Не вытаскивает данные из второй базы
Ответ #8 - 09. Октября 2009 :: 11:32
Печать  
jj писал(а) 09. Октября 2009 :: 11:27:
а как тогда правильно прописать ?
вытаскивай все что тебе нужно от этого документа в простых типах
  

1&&2&&3
Наверх
 
IP записан
 
Z1
God Member
*****
Отсутствует


I Love YaBB 2!

Сообщений: 2906
Местоположение: Москва
Зарегистрирован: 26. Мая 2006
Пол: Мужской
Re: Не вытаскивает данные из второй базы
Ответ #9 - 09. Октября 2009 :: 11:33
Печать  
jj писал(а) 09. Октября 2009 :: 11:27:
а как тогда правильно прописать ?

без типизации.
ну и желательно озвучить задачу что Вы хотите получить?
  
Наверх
 
IP записан
 
jj
Junior Member
**
Отсутствует


1C++ rocks!

Сообщений: 27
Зарегистрирован: 09. Октября 2009
Re: Не вытаскивает данные из второй базы
Ответ #10 - 09. Октября 2009 :: 11:35
Печать  
озвучиваю : нужна обработка, которая выведет список документов "ПеремещениеТМЦ" из одной базы и "Перемещение" из другой
  
Наверх
 
IP записан
 
jj
Junior Member
**
Отсутствует


1C++ rocks!

Сообщений: 27
Зарегистрирован: 09. Октября 2009
Re: Не вытаскивает данные из второй базы
Ответ #11 - 09. Октября 2009 :: 11:44
Печать  
Попытался прописать так :

[code]|SELECT
     |      Жур.IDDOC as [Док $Документ.Перемещение],[/code]

Получил сообщение "Ошибка типизации", а до этого никаких ошибок не выдавал
  
Наверх
 
IP записан
 
Z1
God Member
*****
Отсутствует


I Love YaBB 2!

Сообщений: 2906
Местоположение: Москва
Зарегистрирован: 26. Мая 2006
Пол: Мужской
Re: Не вытаскивает данные из второй базы
Ответ #12 - 09. Октября 2009 :: 11:56
Печать  
Код
Выбрать все
ТекстЗапроса = "SELECT
|    Жур.IDDOC ,
|    Жур.IDDOCDEF as Док_вид,
|    Жур.docno as НомерДок,
|    Жур.DATE_TIME_IDDOC  [ДатаДок $Дата]
|FROM
|    _1SJourn as Жур
|WHERE
|   Жур.DATE_TIME_IDDOC BETWEEN :НачДата AND :КонДата~ AND
|    Жур.Closed  = 1
|";
    
RS.ВыполнитьИнструкцию(ТекстЗапроса,ТЗ,1);
 



Такой запрос работает ?
  
Наверх
 
IP записан
 
jj
Junior Member
**
Отсутствует


1C++ rocks!

Сообщений: 27
Зарегистрирован: 09. Октября 2009
Re: Не вытаскивает данные из второй базы
Ответ #13 - 09. Октября 2009 :: 12:01
Печать  
Выдал в таблицу

IDDOC 8CVJ      Док_Вид 6431    ДатаДок   06.05.09
  
Наверх
 
IP записан
 
Z1
God Member
*****
Отсутствует


I Love YaBB 2!

Сообщений: 2906
Местоположение: Москва
Зарегистрирован: 26. Мая 2006
Пол: Мужской
Re: Не вытаскивает данные из второй базы
Ответ #14 - 09. Октября 2009 :: 12:12
Печать  
jj писал(а) 09. Октября 2009 :: 12:01:
Выдал в таблицу

IDDOC 8CVJ      Док_Вид 6431    ДатаДок   06.05.09

А теперь озвучь что ты хочешь.
Можешь например заменить 6431 на Док.Перемещение

Самого же документа Базы2 в твоей базе(базе1) нет
поэтому и типизацию сделать нельзя. Зато ссылка iddoc есть
  
Наверх
 
IP записан
 
Переключение на Главную Страницу Страницы: [1] 2 
ОтправитьПечать