|
Вопрос по оптимизации в запросе |
☑ |
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.*) КАК СписокТоваров}
|
|
Требовать и эффективности, и гибкости от одной и той же программы — все равно, что искать очаровательную и скромную жену... по-видимому, нам следует остановиться на чем-то одном из двух. Фредерик Брукс-младший