Имя: Пароль:
1C
1С v8
Почему запрос при соединении по соm не работает?
0 Ivan_495
 
10.02.14
21:33
Почему запрос при соединении по соm не работает?
апрос=V8.newObject("Запрос");
    
        Запрос.Текст = "ВЫБРАТЬ
                       |    БанковскиеСчета.Ссылка КАК Ссылка
                       |ИЗ
                       |    Справочник.БанковскиеСчета КАК БанковскиеСчета
                       |ГДЕ
                       |    БанковскиеСчета.Владелец = &Контрагент";
        Запрос.УстановитьПараметр("Контрагент", V8.Справочники.Контрагенты.НайтиПоНаименованию("ТТТТТ"));

    Результат = Запрос.Выполнить();

    ВыборкаДетальныеЗаписи = Результат.Выбрать();
    

    Пока ВыборкаДетальныеЗаписи.Следующий() Цикл
    
        ееее=0;
    КонецЦикла;
1 Ivan_495
 
10.02.14
21:35
конфигурация бух 1С:Предприятие 8.2 (8.2.19.76)
V8=Новый ComОбъект("V82.Application");
    
    ПУть="C:\COPY";
    Попытка
        ОТкрытие=V8.Connect("File="""+Путь+""";Usr=""LE"";");
    Исключение
       Сообщить("База данных не открыта!");
        V8=0;
       ОТкрытие=0;

       Возврат;
   КонецПопытки;
    
        Запрос=V8.newObject("Запрос");
    
        Запрос.Текст = "ВЫБРАТЬ
                       |    БанковскиеСчета.Ссылка КАК Ссылка
                       |ИЗ
                       |    Справочник.БанковскиеСчета КАК БанковскиеСчета
                       |ГДЕ
                       |    БанковскиеСчета.Владелец = &Контрагент";
        Запрос.УстановитьПараметр("Контрагент", V8.Справочники.Контрагенты.НайтиПоНаименованию("ТТТТТ"));

    Результат = Запрос.Выполнить();

    ВыборкаДетальныеЗаписи = Результат.Выбрать();
    

    Пока ВыборкаДетальныеЗаписи.Следующий() Цикл
    
        ееее=0;
    КонецЦикла;

    //
    V8.ЗавершитьРаботуСистемы(ложь);
    V8=0;
     ОТкрытие=0;
2 Tateossian
 
10.02.14
21:39
(1) Результат - это тоже com-объект и у него нет метода выбрать.
3 Ivan_495
 
10.02.14
21:43
(2) в других запросах ддаже так пишу и все работает
Выборка = Результат.Выбрать(V8.ОбходРезультатаЗапроса.ПоГруппировкам);

здесь вопрос к справочнику банковские счета, у которого два владельцы
4 Tateossian
 
10.02.14
21:48
(3) Да, да. Ты прав. Все работает. Так у тебя Результат пустой или ошибка?
5 Ivan_495
 
11.02.14
09:06
(4) результат запроса пустой..почему?
6 BDA80
 
11.02.14
09:08
Потому что по ОЛЕ передаются только простые типы
7 BDA80
 
11.02.14
09:11
(6) хотя не, тупанул
8 Ivan_495
 
11.02.14
09:12
(7) может в запросе надо двух владельцев указывать?
9 Wobland
 
11.02.14
09:13
(5) вот такие у тебя данные, ничего не попишешь
10 Ivan_495
 
11.02.14
09:17
(9) в консоле запрос отрабатывает нормально
11 Wobland
 
11.02.14
09:20
(10) в где?
12 Ivan_495
 
11.02.14
09:21
в базе к которой цепляюсь по OLE
13 Ivan_495
 
11.02.14
09:32
|ГДЕ
                       |    БанковскиеСчета.Владелец = &Контрагент";

вот это условие по OLE не работает
14 catena
 
11.02.14
09:36
(13)Именно условие и именно не работает?
15 Рыцарь
 
11.02.14
09:39
V8.Справочники.Контрагенты.НайтиПоНаименованию("ТТТТТ") -  находит элемент?
16 Ivan_495
 
11.02.14
09:42
(да)
17 Ivan_495
 
11.02.14
10:36
up
18 kiruha
 
11.02.14
10:53
Так попробуй

Запрос.Текст = "ВЫБРАТЬ
                       |    БанковскиеСчета.Ссылка КАК Ссылка
                       |ИЗ
                       |    Справочник.БанковскиеСчета КАК БанковскиеСчета
                       |ГДЕ
                       |    БанковскиеСчета.Владелец.Наименование = &КонтрагентНаименование ";
        Запрос.УстановитьПараметр("КонтрагентНаименование","ТТТТТ");

    Результат = Запрос.Выполнить();
19 Ivan_495
 
11.02.14
11:15
(18) благодарю, так работает
20 Wobland
 
11.02.14
11:20
соврамши в (16)
21 Ivan_495
 
11.02.14
11:24
(20) нет
22 dk
 
11.02.14
11:38
значит тип владельца не тот
23 GenV
 
11.02.14
11:41
(21) Выполни в ком-базе запрос:
ВЫБРАТЬ Ссылка ИЗ Справочник.Контрагенты ГДЕ Наименование = &КонтрагентНаименование