0
BUBU
21.08.13
✎
14:13
|
Делаю запрос через ОЛЕ к другой базе (база ОЛЕ)
Вот его сформированный текст
текстзапроса=
"//{{ЗАПРОС(Сформировать)
Период с '01.08.13' по '05.08.13';
Фирма = Регистр.Продажи.Фирма;
Покупатель = Регистр.Продажи.Покупатель;
Номенклатура = Регистр.Продажи.Номенклатура;
основ_ = Регистр.Продажи.ТекущийДокумент;
Поставщик = Регистр.Продажи.Поставщик;кол_=Регистр.Продажи.Количество;
Функция сумкол = Сумма(кол_);
колв_=регистр.Продажи.КоличествоВ;
Функция сумколв = Сумма(колв_);
ПродСт = Регистр.Продажи.ПродСтоимость;
Функция СуммаПродСт = Сумма(ПродСт);
ПродСтВ = Регистр.Продажи.ПродСтоимостьВ;
Функция СуммаПродСтВ = Сумма(ПродСтВ);
Группировка Покупатель упорядочить по Покупатель.Наименование без групп;
Группировка Номенклатура упорядочить по Номенклатура.Наименование без групп;
Группировка основ_;
Условие (Номенклатура.ПринадлежитГруппе(СпЗапроса[1].ПолучитьЗначение(1))=1);"
запрос=База.CreateObject("Запрос");
Если Запрос.Выполнить(ТекстЗапроса) = 0 Тогда
Возврат;
КонецЕсли;
Механизм в "условии" надыбил на форуме.
Используется функции в глобальном модуле базы ОЛЕ,
В которых ищется и устанвливается группа справочника для поиска.
В вызывающей базе
База.EvalExpr(<строка>)
где База - это объект ОЛЕ, а строка сформирована так:
СкорректироватьСписок(1,2,"Справочник","Номенклатура","10001","Яшкино")
Таким образом устанавливается в базе ОЛЕ группа для поиска.
Далее делаю выборку обычным способом
Пока запрос.Группировка(1)=1 Цикл
врем.НоваяСтрока();
врем.контр = запрос.Покупатель.Код;
врем.Наим=запрос.Покупатель.Наименование;
врем.Кол = запрос.кол_;
врем.Сумма =запрос.продст;
// ит=ит+врем.Сумма;
Пока запрос.Группировка(2)=1 Цикл
и .д.
конецЦикла
конецЦикла
Все отрабатывает - но запрос врет !
Я делал такой же запрос без оле в приниющей базе - все нормально.
Причем по составу выбранных документов результаты совпадают,
а количество и сумма примерно в одном из пяти движений
(т.е. далеко не всех) - нет.
Более того, группировка(1) вытягивает вообще неизвестно что.
Может подскажете, что не так?
Или это вообще принципиально не работает ?
|
|