Имя: Пароль:
1C
1С v8
Медленно работает запрос
0 Ring
 
11.07.12
11:36
Подскажите, как правильно написать запрос! При работе - тормазит!
Спасибо.
Запрос = Новый Запрос;
Запрос.Текст =
       "ВЫБРАТЬ
       |    ХозрасчетныйДвиженияССубконто.Период,
       |    ХозрасчетныйДвиженияССубконто.Регистратор,
       |    ХозрасчетныйДвиженияССубконто.НомерСтроки,
       |    ХозрасчетныйДвиженияССубконто.Активность,
       |    ХозрасчетныйДвиженияССубконто.СчетДт,
       |    ХозрасчетныйДвиженияССубконто.СубконтоДт1,
       |    ХозрасчетныйДвиженияССубконто.ВидСубконтоДт1,
       |    ХозрасчетныйДвиженияССубконто.СубконтоДт2,
       |    ХозрасчетныйДвиженияССубконто.ВидСубконтоДт2,
       |    ХозрасчетныйДвиженияССубконто.СубконтоДт3,
       |    ХозрасчетныйДвиженияССубконто.ВидСубконтоДт3,
       |    ХозрасчетныйДвиженияССубконто.СчетКт,
       |    ХозрасчетныйДвиженияССубконто.СубконтоКт1,
       |    ХозрасчетныйДвиженияССубконто.ВидСубконтоКт1,
       |    ХозрасчетныйДвиженияССубконто.СубконтоКт2,
       |    ХозрасчетныйДвиженияССубконто.ВидСубконтоКт2,
       |    ХозрасчетныйДвиженияССубконто.СубконтоКт3,
       |    ХозрасчетныйДвиженияССубконто.ВидСубконтоКт3,
       |    ХозрасчетныйДвиженияССубконто.ВалютаДт,
       |    ХозрасчетныйДвиженияССубконто.ВалютаКт,
       |    ХозрасчетныйДвиженияССубконто.Сумма,
       |    ХозрасчетныйДвиженияССубконто.ВалютнаяСуммаДт,
       |    ХозрасчетныйДвиженияССубконто.ВалютнаяСуммаКт,
       |    ХозрасчетныйДвиженияССубконто.Содержание
       |ИЗ
       РегистрБухгалтерии.Хозрасчетный.ДвиженияССубконто КАК ХозрасчетныйДвиженияССубконто
       |ГДЕ
       |    ХозрасчетныйДвиженияССубконто.СчетКт = &рЕКВИЗИТ1
       |    И ХозрасчетныйДвиженияССубконто.Период МЕЖДУ НАЧАЛОПЕРИОДА(&ДатаВыбора, ДЕНЬ) И КОНЕЦПЕРИОДА(&ДатаВыбора, ДЕНЬ)
       |    И ХозрасчетныйДвиженияССубконто.СубконтоКт1 =&Сотрудники";
       
   
   Запрос.УстановитьПараметр("рЕКВИЗИТ1", рЕКВИЗИТ1);
   Запрос.УстановитьПараметр("ДатаВыбора",ДатаВыбора);
   Запрос.УстановитьПараметр("Сотрудники",Сотрудники);

               Результат = Запрос.Выполнить();
       ВыборкаДетальныеЗаписи = Результат.Выбрать();

       Пока ВыборкаДетальныеЗаписи.Следующий() Цикл
1 zmaximka
 
11.07.12
11:40
Условия в параметры виртуальной таблицы перенеси
2 zling
 
11.07.12
11:41
1) делаешь обращение к физической таблице РБ со всеми отборами. Кладешь во временную таб. Из врем таблицы выбираешь и соединяешь с таблицей
3 zling
 
11.07.12
11:41
(2) субконто по полям регистратор и номер строки
4 ice777
 
11.07.12
11:44
(0) еще бы, хозрасчетный. тебе уже ответили правильно в (1).
даже в конструкторе можно.
5 ДенисЧ
 
11.07.12
11:44
Для начала вынести условие на субконто в параметры вирттаблицы, а потом проверить на индексацию этого поля...