Имя: Пароль:
1C
1С v8
Как ускорить запрос?
0 Маленький Вопросик
 
09.10.13
12:32
Народ, подскажите как ускорить данный запрос по выбору движений у документа:

ПолучимПроводкиПоДокументу = Новый Запрос("ВЫБРАТЬ
                                              |    ХозрасчетныйДвиженияССубконто.Сумма КАК СуммаПроводки,
                                              |    ХозрасчетныйДвиженияССубконто.ПодразделениеКт КАК ПодразделениеКт,
                                              |    ХозрасчетныйДвиженияССубконто.ПодразделениеДт КАК ПодразделениеДт,
                                              |    ХозрасчетныйДвиженияССубконто.СубконтоДт1 КАК КонтрагентСубконтоДт,
                                              |    ХозрасчетныйДвиженияССубконто.СубконтоДт2 КАК ДоговорСубконтоДт,
                                              |    ХозрасчетныйДвиженияССубконто.СубконтоКт2 КАК ДокументПоступленияКт
                                              |ИЗ
                                              |    РегистрБухгалтерии.Хозрасчетный.ДвиженияССубконто КАК ХозрасчетныйДвиженияССубконто
                                              |ГДЕ
                                              |    ХозрасчетныйДвиженияССубконто.Регистратор = &Регистратор
                                              |    И ХозрасчетныйДвиженияССубконто.СчетДт = &СчетДт
                                              |    И ХозрасчетныйДвиженияССубконто.СчетКт = &СчетКт
                                              |    И ХозрасчетныйДвиженияССубконто.Период = &Период");
    
    
    ПолучимПроводкиПоДокументу.УстановитьПараметр("Регистратор", СсылкаНаВозврат.Ссылка);
    ПолучимПроводкиПоДокументу.УстановитьПараметр("СчетДт", ПланыСчетов.Хозрасчетный.РасчетыПоПретензиям);       //76,02
    ПолучимПроводкиПоДокументу.УстановитьПараметр("СчетКт", ПланыСчетов.Хозрасчетный.ТоварыНаСкладах);              //41,01
    ПолучимПроводкиПоДокументу.УстановитьПараметр("Период", СсылкаНаВозврат.Дата);
    
    ПроводкиВозврат = ПолучимПроводкиПоДокументу.Выполнить().Выбрать();
1 Пол Ньюман
 
09.10.13
12:34
Обычным для виртуальных таблиц образом - переносом условий в параметры
2 andreymongol82
 
09.10.13
12:34
Перенести условия в вирутальную таблицу для начала
3 Маленький Вопросик
 
09.10.13
12:35
(1) не понимаю... можно примерчик
4 andreymongol82
 
09.10.13
12:35
(3) В конструкторе запросов шлепни по значку "Параметры виртуальной таблицы"
5 Маленький Вопросик
 
09.10.13
12:36
так, и...
6 Поросенок Петр
 
09.10.13
12:37
|    ХозрасчетныйДвиженияССубконто.СубконтоДт1 КАК КонтрагентСубконтоДт, // ЛПП

Судя по псевдонимам субконто, автору вообще надо ОборотыДтКт юзать.
7 andreymongol82
 
09.10.13
12:37
(5) вот там и пиши
8 Пол Ньюман
 
09.10.13
12:38
(3) Почитайте пожалуйста про виртуальные таблицы и их параметры где-нибудь в поиске. Это основы.
9 1Сергей
 
09.10.13
12:39
если стоит отбор по регистратору, то нафига ещё отбор по периоду?
10 H A D G E H O G s
 
09.10.13
12:39
(8) dimoff, ты что ли?
11 Маленький Вопросик
 
09.10.13
12:41
ПолучимПроводкиПоДокументу = Новый Запрос("ВЫБРАТЬ
                                              |    ХозрасчетныйДвиженияССубконто.Сумма КАК СуммаПроводки,
                                              |    ХозрасчетныйДвиженияССубконто.ПодразделениеКт КАК ПодразделениеКт,
                                              |    ХозрасчетныйДвиженияССубконто.ПодразделениеДт КАК ПодразделениеДт,
                                              |    ХозрасчетныйДвиженияССубконто.СубконтоДт1 КАК КонтрагентСубконтоДт,
                                              |    ХозрасчетныйДвиженияССубконто.СубконтоДт2 КАК ДоговорСубконтоДт,
                                              |    ХозрасчетныйДвиженияССубконто.СубконтоКт2 КАК ДокументПоступленияКт
                                              |ИЗ
                                              |    РегистрБухгалтерии.Хозрасчетный.ДвиженияССубконто(
                                              |            ,
                                              |            ,
                                              |            СчетДт = &СчетДт
                                              |                И СчетКт = &СчетКт
                                              |                И Период = &Период
                                              |                И Регистратор = &Регистратор,
                                              |            ,
                                              |            ) КАК ХозрасчетныйДвиженияССубконто");
12 Маленький Вопросик
 
09.10.13
12:41
сработало в 100 раз быстрее!!!! спасибо!!!!
13 andreymongol82
 
09.10.13
12:43
(11) Уже лучше. Но как посоветовали в (6) возьми лучше виртуальную таблицу ОборотыДтКт
14 Маленький Вопросик
 
09.10.13
12:45
(13) спасибо, испробую и так
15 Maxus43
 
09.10.13
13:14
И Период = &Период

для периода специальное поле в параметрах есть
AdBlock убивает бесплатный контент. 1Сергей