Имя: Пароль:
1C
1С v8
Запрос будет перебирать таблицу оборотов или нет?
,
0 ДайтеДайте Сказать
 
03.07.12
16:59
РегистрНакопления.РасчетыПоКотам.Обороты(
           &НачПериода,
           &КонПериода,
           Регистратор,
           ДоговорПоНедвижимости = &ДоговорПоНедвижимости
               И ДоговорПоНедвижимости.ЗаказПокупателя = ДокументУНФ
               И &ФормироватьСторно)

В случае, если параметр виртуальной таблицы &ФормироватьСторно = Ложь, то запрос, естественно, ничего не выдает.

В этом случае запрос перебирает всю таблицу оборотов или нет?
1 Ненавижу 1С
 
гуру
03.07.12
16:59
каша в голове, параметры не для перебора, а для формирования
2 LAAry
 
03.07.12
17:02
Запрос честно отработает свой хлеб, попробовав в виртуальной таблице отобрать данные.
3 ДайтеДайте Сказать
 
03.07.12
17:02
(1) ты не понял.

У меня пакет запросов и надо, чтобы в одном случае, запрос ничего не выдавал, а в другом работал штатно.
Бросил это на параметр &ФормироватьСторно.

Соответственно, если &ФормироватьСторно = Ложь, результат запроса пустой. Но возникает вопрос, запрос молотит таблицу или сразу понимает, что из таблицы брать не чего с таким параметром?
4 Fragster
 
гуру
03.07.12
17:02
скуль - он умный, сразу вернет пусто
5 LAAry
 
03.07.12
17:03
Котов в штате держите? Или в производстве используете?
6 ДайтеДайте Сказать
 
03.07.12
17:04
(2) т.е. запрос честно переберет всю таблицу оборотов, не смотря на то, что результат вычисления выражения
(ДоговорПоНедвижимости = &ДоговорПоНедвижимости
               И ДоговорПоНедвижимости.ЗаказПокупателя = ДокументУНФ
               И &ФормироватьСторно)
все равно будет ложь?
7 ДайтеДайте Сказать
 
03.07.12
17:05
(4) уверен?
8 LAAry
 
03.07.12
17:05
(4) говорит, что я не прав.
9 Fragster
 
гуру
03.07.12
17:05
(6)->(4), за файловый движок не скажу, но по логике - тоже
10 LAAry
 
03.07.12
17:06
(7) проверь. Запусти замер и посмотри скорость выполнения.
11 Fragster
 
гуру
03.07.12
17:08
ну, в 100500м вложенном запросе оптимизатор может и скажет ёк, но если на верхнем уровне - то всё работает, как в (4)
12 ДайтеДайте Сказать
 
03.07.12
17:12
(10) разница по времени выполнения очевидна. Естественно, что с параметром &ФормироватьСторно = Ложь выполняется быстрее :)
13 LAAry
 
03.07.12
17:14
(12) не то меряешь. Померь с параметром Ложь и без запроса вообще.
14 ДайтеДайте Сказать
 
03.07.12
17:15
(13) не понимаю что ты предлагаешь
15 LAAry
 
03.07.12
17:19
Скорость выполнения запроса с выбрасыванием необрабатываемой части равна скорости выполнения запроса с параметром = Ложь?
16 ДайтеДайте Сказать
 
03.07.12
17:20
(15) как это измерить?
17 LAAry
 
03.07.12
17:21
Точку останова до и после "запрос.выполнить()" по первой точке включаешь замер производительности. по 2-й выключаешь.
18 ДайтеДайте Сказать
 
03.07.12
17:23
(17) это ни о чем не говорит.
Запрос уходит в скуль на сервер, и я не знаю, скуль будет молотить таблицу или сразу вернет пустой результат.
19 LAAry
 
03.07.12
17:26
И в первом случае скорость выполнения будет меньше по сравнению с выброшенной частью запроса, чем во втором...
20 Никола_
Питерский
 
03.07.12
21:35
А если просто запихнуть в ГДЕ ? нах в параметры то ?
21 acsent
 
03.07.12
22:23
смотри план выполнения на скуле
22 FIXXXL
 
04.07.12
00:13
(1) согласен
ибо хер пойми чего ты исчешь
Требовать и эффективности, и гибкости от одной и той же программы — все равно, что искать очаровательную и скромную жену... по-видимому, нам следует остановиться на чем-то одном из двух. Фредерик Брукс-младший