Имя: Пароль:
1C
1С v8
Подключение из одной базы в другую, и выгрузка объектов из последней
,
0 Валидатор
 
05.03.14
14:40
Хочу подключиться из одной базы 1с 8.2 в другую, после чего, в подключенной базе выгрузить данные РС, но возникла ошибка:
{Форма.Форма.Форма(114)}: Ошибка при вызове метода контекста (Execute)
        tableVal_1C = query.Execute().Unload();
по причине:
Произошла исключительная ситуация (1C:Enterprise 8.2.19.83): {(1, 15)}: Таблица не найдена "РегистрСведений.СоответствиеОбъектов"
Select * From <<?>>РегистрСведений.СоответствиеОбъектов where БазаДанных77 = 0

Вот код:
ТаблицаНоменклатуры = Новый ТаблицаЗначений;
    query = БД.NewObject("Query");
        ИмяТаблицы = "РегистрСведений.СоответствиеОбъектов";
        query.Text = "Select * From " + ИмяТаблицы + " where БазаДанных = " + НомерБазы;
        tableVal_1C = query.Execute().Unload();
        For i = 0 to tableVal_1C.Count() - 1 Do
            
            НоваяСтрока = ТаблицаНоменклатуры.Добавить();
            НоваяСтрока.ИДОбъекта = tableVal_1C.Get(i).Get(1);
            НоваяСтрока.Наименование = tableVal_1C.Get(i).Get(2);
            НоваяСтрока.ЕКГУИД = БД.String(tableVal_1C.Get(i).Get(4).УникальныйИдентификатор());                  
            Если НЕ БД.String(tableVal_1C.Get(i).Get(5)) = "" Тогда
                НоваяСтрока.ДопКлюч = БД.String(tableVal_1C.Get(i).Get(5).УникальныйИдентификатор());                  
            КонецЕсли;
            
            ОбработкаПрерыванияПользователя();
            
        EndDo;  

БД - ком объект, который подколючился к базе, из которой выдираем данные по РС, что не так? почемиу таблица не обнаружена?
1 Валидатор
 
05.03.14
14:48
ап
2 Torquader
 
05.03.14
14:49
Запрос в 1С, а код написан как для SQL.
Что за условие про БазаДанных=ЧемуТоТам ?
3 fvadim
 
05.03.14
14:51
запрос выглядит правильным.
или такого РС нету или база не та.

запрос в консоли отрабатывает?
4 salvator
 
05.03.14
14:52
После " + НомерБазы добавить +""; попробуй
5 Валидатор
 
05.03.14
14:54
(4) нет, все равно тоже самое
6 Torquader
 
05.03.14
14:54
А точно к той базе подключились ?
7 Валидатор
 
05.03.14
14:54
(6) точно
8 х86
 
05.03.14
14:55
(3)+1
9 Torquader
 
05.03.14
14:56
(7) Тогда скопируй название из консоли, так как мог, например, латинскую букву где-то указать.
10 Валидатор
 
05.03.14
14:56
в консоли запросов все отрабатывает
11 Валидатор
 
05.03.14
14:57
Select * From РегистрСведений.СоответствиеОбъектов where БазаДанных77 = 6
выдал результат
12 Torquader
 
05.03.14
14:58
(11) Тогда попробуй через параметр - может быть - она ноль не очень понимает.
13 fvadim
 
05.03.14
15:01
нафик параметры. сначала добиться выполнения без ошибок запроса. текст запроса скопировать из консоли, где он работает и оставить только, без всяких переменных:
Select * From РегистрСведений.СоответствиеОбъектов
14 Валидатор
 
05.03.14
15:02
(13) так у меня есть строка:
query.Text = "Select * From " + ИмяТаблицы + " where БазаДанных77 = " + НомерБазы +"";
я отладчиком иду по ней и в query.Text формируется текст запроса:
       Select * From РегистрСведений.СоответствиеОбъектов where БазаДанных77 = 6
и результат в консоли есть а в 1ске все летит на строке:
tableVal_1C = query.Execute().Unload();
15 Валидатор
 
05.03.14
15:05
я дебил лох короче, правда не к той базе конетился(
16 fvadim
 
05.03.14
15:09
(15) ну ты крут. другой бы молча слился, а мы бы тут извелись, гадая в чём была причина.
17 Torquader
 
05.03.14
15:10
(15) Значит (3) прав и тему можно закрывать.