Имя: Пароль:
1C
1С v8
Запрос через ОЛЕ
0 vladko
 
21.07.11
16:21
Из бухгалтерии 2.0 подключаюсь по ОЛЕ к базе бухгалтерии 1.6.
//здесь создаю соединение по ОЛЕ. Без проблем подключается.
//далее
ЗапросОЛЕ = Оле.NewObject("Запрос");
   ЗапросОЛЕ.Текст = "ВЫБРАТЬ РАЗРЕШЕННЫЕ
                  |    &Счет КАК Счет,
                  |    ПРЕДСТАВЛЕНИЕ(&Счет) КАК СчетПредставление,
                  |    ОстаткиИОбороты.СуммаНачальныйОстатокДт КАК СуммаНачальныйОстатокДт,
                  |    ОстаткиИОбороты.СуммаНачальныйОстатокКт КАК СуммаНачальныйОстатокКт,
                  |    ОстаткиИОбороты.СуммаОборотДт КАК СуммаОборотДт,
                  |    ОстаткиИОбороты.СуммаОборотКт КАК СуммаОборотКт,
                  |    ОстаткиИОбороты.СуммаКонечныйОстатокДт КАК СуммаКонечныйОстатокДт,
                  |    ОстаткиИОбороты.СуммаКонечныйОстатокКт КАК СуммаКонечныйОстатокКт,
                  |    ОстаткиИОбороты.Субконто2 КАК Субконто2,
                  |    ПРЕДСТАВЛЕНИЕ(ОстаткиИОбороты.Субконто2) КАК Субконто2Представление,
                  |    ОстаткиИОбороты.Субконто1 КАК Субконто1,
                  |    ПРЕДСТАВЛЕНИЕ(ОстаткиИОбороты.Субконто1) КАК Субконто1Представление
                  |ИЗ
                  |    РегистрБухгалтерии.Хозрасчетный.ОстаткиИОбороты(
                  |            &ДатаНач,
                  |            &ДатаКон,
                  |            ,
                  |            ,
                  |            Счет В ИЕРАРХИИ (&Счет),
                  |            ,
                  |            Организация = &Организация
                  |                И ВЫРАЗИТЬ(Субконто1 КАК Справочник.Контрагенты) В ИЕРАРХИИ (&Значение1)) КАК ОстаткиИОбороты
                  |ИТОГИ
                  |    СУММА(СуммаНачальныйОстатокДт),
                  |    СУММА(СуммаНачальныйОстатокКт),
                  |    СУММА(СуммаОборотДт),
                  |    СУММА(СуммаОборотКт),
                  |    СУММА(СуммаКонечныйОстатокДт),
                  |    СУММА(СуммаКонечныйОстатокКт)
                  |ПО
                  |    ОБЩИЕ,
                  |    Субконто2,
                  |    Субконто1
                  |АВТОУПОРЯДОЧИВАНИЕ";
   ЗапросОЛЕ.УстановитьПараметр("Счет", Оле.ПланыСчетов.Хозрасчетный.ПрочиеРасчетыСРазнымиДебиторамиИКредиторами); //76.09
   ЗапросОЛЕ.УстановитьПараметр("ДатаНач", '20102131');
   ЗапросОЛЕ.УстановитьПараметр("ДатаКон", КонецДня('20102131'));    

   ЗапросОЛЕ.УстановитьПараметр("Организация", Оле.глЗначениеПеременной("ОсновнаяОрганизация"));
   ЗапросОЛЕ.УстановитьПараметр("Значение1", Оле.Справочники.Контрагенты.НайтиПоНаименованию("Дома", Истина, ,));
   
   ТЗ = новый ТаблицаЗначений;
   ЗапросОЛЕ.Выполнить().Выгрузить(ТЗ);
-------------------
Программа ругается:
Форма.Форма.Форма(85)}: Ошибка при вызове метода контекста (Выгрузить)
   ЗапросОЛЕ.Выполнить().Выгрузить(ТЗ);
по причине:
Произошла исключительная ситуация: Несоответствие типов (параметр номер '1')
В самой 1.6 данный запрос без проблем выполняется.
1 ДенисЧ
 
21.07.11
16:22
РезультатЗапроса (QueryResult)
Выгрузить (Unload)
Синтаксис:

Выгрузить(<ТипОбхода>)
Параметры:

<ТипОбхода> (необязательный)

Тип: ОбходРезультатаЗапроса. Задает тип обхода записей в получаемой выборке.
Значение по умолчанию: Прямой
Возвращаемое значение:

Тип: ТаблицаЗначений; ДеревоЗначений. Если тип обхода задан Прямой, результат выгружается в таблицу значений, в противном случае в дерево значений.
Описание:

Создает таблицу значений (или дерево значений) и копирует в нее все записи набора.

Доступность:

Сервер, толстый клиент, внешнее соединение.
Пример:

ТаблицаРезультатов = РезультатЗапроса.Выгрузить();
2 H A D G E H O G s
 
21.07.11
16:23
И в 1.6 тоже такая же ошибка будет
3 vladko
 
21.07.11
16:23
а, заклинило. Спасибо :)
4 H A D G E H O G s
 
21.07.11
16:24
(3) Бывает
5 vladko
 
21.07.11
16:25
просто, то в 7ке, то в 8ке программировать приходится. Вот и клинит иногда с выгрузкой в ТЗ :)