Имя: Пароль:
1C
 
Товарищи, как сделать запрос побыстрее:
0 Маленький Вопросик
 
08.09.14
08:09
Имею такой запрос, работает.
Смысл его выбрать все партии на счете 41.11, регистраторами которых не является документ поступления.

ПоискПартийТовара = Новый Запрос("ВЫБРАТЬ
                                      |    ХозрасчетныйОстатки.Субконто1 КАК Номенклатура,
                                      |    ХозрасчетныйОстатки.Субконто2 КАК Регистратор,
                                      |    ХозрасчетныйОстатки.Субконто3 КАК Склад,
                                      |    ТИПЗНАЧЕНИЯ(ХозрасчетныйОстатки.Субконто2) КАК ТипЗнач,
                                      |    ХозрасчетныйОстатки.КоличествоОстаток КАК Количество,
                                      |    ХозрасчетныйОстатки.Субконто2.Дата КАК ДатаПартии,
                                      |    ХозрасчетныйОстатки.Счет КАК Счет1,
                                      |    ХозрасчетныйОстатки.Подразделение
                                      |ИЗ
                                      |    РегистрБухгалтерии.Хозрасчетный.Остатки(
                                      |            &ДатаДокумета,
                                      |            Счет = &Счет,
                                      |            ,
                                      |            Субконто1 = &Субконто1
                                      |                И Субконто3 = &Субконто3) КАК ХозрасчетныйОстатки
                                      |ГДЕ
                                      |    ХозрасчетныйОстатки.КоличествоОстаток > 0
                                      |    И ТИПЗНАЧЕНИЯ(ХозрасчетныйОстатки.Субконто2) <> &ТипЗначения1
                                      |
                                      |УПОРЯДОЧИТЬ ПО
                                      |    ДатаПартии");
    
       ПоискПартийТовара.УстановитьПараметр("ДатаДокумета",КонецДня(ДатаВывода));
       ПоискПартийТовара.УстановитьПараметр("Субконто1",Номенклатура);
       ПоискПартийТовара.УстановитьПараметр("Субконто3",Склад);
       ПоискПартийТовара.УстановитьПараметр("ТипЗначения1",ТипЗнч(Документы.ПоступлениеТоваровУслуг.ПустаяСсылка()));
      
       ПоискПартийТовара.УстановитьПараметр("Счет",СчетСклада);  //41.11
      
       Партии = ПоискПартийТовара.Выполнить().Выгрузить();

Хотелось, чтобы данный запрос работал максимально быстро... подкорректируйте его.
1 Бешеная Нога
 
08.09.14
08:10
e;fcyf[
2 чувак
 
08.09.14
08:12
виртуальные парметры используй
3 чувак
 
08.09.14
08:15
Можно и так

НЕ ХозрасчетныйОстатки.Субконто2  Ссылка Документ.ПоступлениеТоваровУслуг
4 Armando
 
08.09.14
08:15
вот это через выразить надо ХозрасчетныйОстатки.Субконто2.Дата
5 vde69
 
08.09.14
08:17
ПоискПартийТовара = Новый Запрос("ВЫБРАТЬ
                                      |    ХозрасчетныйОстатки.Субконто1 КАК Номенклатура,
                                      |    ХозрасчетныйОстатки.Субконто2 КАК Регистратор,
                                      |    ХозрасчетныйОстатки.Субконто3 КАК Склад,
                                      |    ТИПЗНАЧЕНИЯ(ХозрасчетныйОстатки.Субконто2) КАК ТипЗнач,
                                      |    ХозрасчетныйОстатки.КоличествоОстаток КАК Количество,
                                      |    ХозрасчетныйОстатки.Субконто2.Дата КАК ДатаПартии,
                                      |    ХозрасчетныйОстатки.Счет КАК Счет1,
                                      |    ХозрасчетныйОстатки.Подразделение
                                      |ИЗ
                                      |    РегистрБухгалтерии.Хозрасчетный.Остатки(
                                      |            &ДатаДокумета,
                                      |            Счет = &Счет,
                                      |            ,
                                      |            Субконто1 = &Субконто1
                                      |                И Субконто3 = &Субконто3 И ТИПЗНАЧЕНИЯ (Субконто2) <> &ТипЗначения1) КАК ХозрасчетныйОстатки
                                      |ГДЕ
                                      |    ХозрасчетныйОстатки.КоличествоОстаток > 0
                                      |    
                                      |
                                      |УПОРЯДОЧИТЬ ПО
                                      |    ДатаПартии");
    
       ПоискПартийТовара.УстановитьПараметр("ДатаДокумета",КонецДня(ДатаВывода));
       ПоискПартийТовара.УстановитьПараметр("Субконто1",Номенклатура);
       ПоискПартийТовара.УстановитьПараметр("Субконто3",Склад);
       ПоискПартийТовара.УстановитьПараметр("ТипЗначения1",ТипЗнч(Документы.ПоступлениеТоваровУслуг.ПустаяСсылка()));
      
       ПоискПартийТовара.УстановитьПараметр("Счет",СчетСклада);  //41.11
      
       Партии = ПоискПартийТовара.Выполнить().Выгрузить();
6 Бешеная Нога
 
08.09.14
08:17
субконто 2 и 3 местами поменяй в конфигураторе
7 Маленький Вопросик
 
08.09.14
08:22
(5) точно быстрее будет?)
8 Бледно Золотистый
 
08.09.14
08:23
(7) Погадай на кофейной гуще.