Имя: Пароль:
1C
1C 7.7
v7: 1с++ Подключение к сторонней базе
0 LisaAlisa
 
17.05.18
15:41
Добрый день!
Есть задача загружать данные из сторонней базы (тоже 1С). Базы на одном сервере.
Проблема: судя по ругани на имена колонок, запрос выполняется к текущей базе.
Делаю следующее:

глМД = СоздатьОбъект("MetaDataWork");
рс = СоздатьОбъект("ODBCRecordset");
ТекстЗапроса = "
|SELECT ПоступлениеТоваров.IDDOC [Ссылка $Документ.ПоступлениеТоваров]
...
|FROM _1SJOURN AS Журнал With (NOLOCK)
|    INNER JOIN $Документ.ПоступлениеТоваров AS ПоступлениеТоваров With (NOLOCK) ON Журнал.IDDOC = ПоступлениеТоваров.IDDOC
..."
    IDДата1 = Сред(глМД.ЗначениеВСамуюДлиннуюСтрокуБД(Дата1),2,8);
    IDДата2 = Сред(глМД.ЗначениеВСамуюДлиннуюСтрокуБД(Дата2),2,8);
    рс.УстановитьТекстовыйПараметр("Дата1", Дата1);
    рс.УстановитьТекстовыйПараметр("Дата2", Дата2);

    рс.Отладка();

    ПутьКБазе = "\\...\";
    глМД.ПрисоединитьМД(ПутьКБазе+"1Cv7.md");

    ТекстЗапроса=глМД.ОбрМетаСКЛ(ТекстЗапроса);

    тз = рс.ВыполнитьИнструкцию(ТекстЗапроса);

ошибка: State 42S22, native 207, message [Microsoft][ODBC SQL Server Driver][SQL Server]Invalid column name 'sp35986'. - это поле, которое присутствует только в сторонней базе
1 Franchiser
 
17.05.18
15:43
Напиши в начале use имятвоейбд
2 olegves
 
17.05.18
15:47
(0) 1с++, насколько мой склероз не изменяет, работает по таблице алиасов с локальной базой. Если использовать Рекордсет, то надо брать имена полей из файла алиасов подключаемой базы
Чтобы обнаруживать ошибки, программист должен иметь ум, которому доставляет удовольствие находить изъяны там, где, казалось, царят красота и совершенство. Фредерик Брукс-младший