Помогите оптимизировать запрос
SergeyY
04.02.2009 - 13:11
|
Нужно при выборе товара в накладной узнать документ его последней продажи этомуже клиенту. делаю так: ДатаНач=Дата("01.01.06"); Запрос = СоздатьОбъект("Запрос"); ТекстЗапроса = "//{{ЗАПРОС(Сформировать) |Период с ДатаНач по ДатаДок; |Покупатель = Регистр.Продажи.Покупатель; |тНоменклатура = Регистр.Продажи.Номенклатура; |ТипОперации = Регистр.Продажи.ТекущийДокумент.Реализация.КодОперации; |Док = Регистр.Продажи.ТекущийДокумент; |СуммаПр = Регистр.Продажи.ПродСтоимость; |КоличествоПр = Регистр.Продажи.Количество; |Функция СуммаПродажи = Сумма(СуммаПр); |Функция КолвоПродажи = Сумма(КоличествоПр); |Группировка Док Упорядочить по Док.ДатаДок; |Условие (Покупатель=Контрагент); |Условие (тНоменклатура=Номенклатура); |Условие ((ТипОперации=глКО.Продажа) или (ТипОперации=глКО.ПродажаКЭШ));"; // Если ошибка в запросе, то выход из процедуры Если Запрос.Выполнить(ТекстЗапроса) = 0 Тогда Возврат; КонецЕсли; Если Запрос.Группировка(1,-1)=1 Тогда ДокументПродажи=Запрос.Док; Иначе ДокументПродажи=ПолучитьПустоеЗначение("Документ.Реализация"); КонецЕсли; Получается дико долго :) Т.к. лопатит все доки продажи его с этим товаромю. Гдето я туплю наверно :) Как еще можно найти последнюю продажу :)? |