Имя: Пароль:
1C
1С v8
Помогите с запросом
0 aleks_cons
 
05.04.13
13:03
Есть вот такой запрос, но выполняется жутко медленно. (в целом задача получить оптовую цену товара чтобы сравнить ее с ценой в документе РеализацияТоваровИУслуг для того чтобы увидеть прибыть.) Подскажите если есть у кого-нибудь опыт по данному вопросу. Заранее спасибо )

Функция ПолучитьОптовуюЦену(Номенклатура)
   ТипЦен = Справочники.ТипыЦенНоменклатуры.НайтиПоНаименованию("Оптовая");
   ЗапросПроц = Новый Запрос;
   ЗапросПроц.УстановитьПараметр("ТекущаяНоменклатура", Номенклатура);
   ЗапросПроц.УстановитьПараметр("ТипЦенНом", ТипЦен);
   ЗапросПроц.Текст = "ВЫБРАТЬ
   |    ЦеныНоменклатурыСрезПоследних.ТипЦен,
   |    ЦеныНоменклатурыСрезПоследних.Номенклатура,
   |    ЦеныНоменклатурыСрезПоследних.Цена
   |ИЗ
   |    РегистрСведений.ЦеныНоменклатуры.СрезПоследних КАК ЦеныНоменклатурыСрезПоследних
   |ГДЕ
   |    ЦеныНоменклатурыСрезПоследних.Номенклатура = &ТекущаяНоменклатура
   |    И ЦеныНоменклатурыСрезПоследних.ТипЦен = &ТипЦенНом
   |
   |СГРУППИРОВАТЬ ПО
   |    ЦеныНоменклатурыСрезПоследних.ТипЦен,
   |    ЦеныНоменклатурыСрезПоследних.Номенклатура,
   |    ЦеныНоменклатурыСрезПоследних.Цена";
   
   РезультатЗапроса = ЗапросПроц.Выполнить().Выбрать();
   Пока РезультатЗапроса.Следующий() Цикл
       //НайденныйПроцент = РезультатЗапроса.Цена;
       ЦенаТовараОптовая =  РезультатЗапроса.Цена;
   КонецЦикла;
   Возврат ЦенаТовараОптовая;    
   
КонецФункции
1 butterbean
 
05.04.13
13:05
РегистрСведений.ЦеныНоменклатуры.СрезПоследних(,Номенклатура = &ТекущаяНоменклатура И ТипЦен = &ТипЦенНом)
+ убери ГДЕ...
2 salvator
 
05.04.13
13:06
Да и группировка наверно не нужна
3 aleks_cons
 
05.04.13
13:12
спасибо большое. сейчас проверю )
4 aleks_cons
 
05.04.13
13:29
Еще раз спасибо. все отлично )
5 aleks_cons
 
05.04.13
13:34
я создавал все с помощью помощника запросов. А где можно почитать как сокращать запрос ? как указал мне на исправление BUTTERBEAN ?