Имя: Пароль:
1C
1С v8
Вопрос по оптимизации в запросе
0 Jokerman
 
06.10.11
10:36
Здрасте всем, возник следующий вопрос: делается запрос по регистру бухгалтерии по определенному счету товара. Пользователь может задать список товаров или если не задан список товаров то по всем. По обыкновению приходится в тексте запроса калякать "+?(ЗначениеЗаполнено(Товары),"Субконто1 в (&Товары)","")+", что отрезает возможность пользоваться конструктором. Видел, что некоторые делают несколько иначе: в параметрах вирт табл РБ пишут &ПоВсемТоварам или Субконто1 в (&Товары) и соответственно заполняются параметры. Запрос и так и так правильно выполняется, но хотелось бы узнать. Во втором случае если запрос по всем товарам будет ли проверяться второе условие Субконто1 в (&Товары), т.к. это же влияет на скорость выборки ??!!
1 НЕА123
 
06.10.11
10:39
(0)
в скульной - не будет.
в файловой 81(про 82 не знаю) - будет.
2 НЕА123
 
06.10.11
10:40
(0)
эээ... то не то... неправильно. пользуйся {}
3 mikecool
 
06.10.11
10:40
(0) а самому замерить время религия не позволяет?
4 Ненавижу 1С
 
гуру
06.10.11
10:41
юзайте {}
5 Jokerman
 
06.10.11
10:44
(3) да, да обленился
(4) Этим не пользовался, можете дать ссылки, это я так понял расширение языка запросов? в 8.1 это было уже?
6 Ненавижу 1С
 
гуру
06.10.11
10:50
(5) было уже
7 Ненавижу 1С
 
гуру
06.10.11
10:50
(5) смотри в конструкторе закладку Построитель
8 Jokerman
 
06.10.11
11:12
Спасибо Я так понял это тот же язык запросов, заключенный в фигур скобки и эти условия срабатывают только если задеатся значение параметра ..
9 Jokerman
 
06.10.11
13:53
А как будет в случае, когда выбираются из вирт табл остатков РБ, пишу так:    РегистрБухгалтерии.Хозрасчетный.ОстаткиИОбороты(&НачалоПериода, &КонецПериода, День, Движения, Счет = &Счет2910, &ВидСубконто, Организация = &Организация {(Субконто1 В (&СписокТоваров)) КАК Поле2}) не срабатывает делает по всем товарам. Пробовал в условиях построителя отчета тоже не то ..
10 Jokerman
 
06.10.11
15:53
Подскажите что не так:
Построитель.Параметры.Вставить("СписокТоваров",Товары);
       ПолеОтбора = Построитель.Отбор.Добавить("СписокТоваров");
ПолеОтбора.ВидСравнения = ВидСравнения.ВСписке;
ПолеОтбора.Значение = Товары;
ПолеОтбора.Использование = Истина;

в тексте запроса: {(Субконто1.*) КАК СписокТоваров}