|
Работа с запросами в ОЛЕ - ошибки | ☑ | ||
---|---|---|---|---|
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) вытягивает вообще неизвестно что. Может подскажете, что не так? Или это вообще принципиально не работает ? |
|||
1
Ёпрст
21.08.13
✎
14:14
|
>>> врем.Сумма =запрос.продст;
вот это и есть п...ц |
|||
2
Ёпрст
21.08.13
✎
14:15
|
надо смотреть на значения функций запроса, а не на переменные для расчета функций.
|
|||
3
BUBU
21.08.13
✎
14:26
|
Да, это кажется финиш ...
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |