Имя: Пароль:
1C
 
Можно ли не использовать выразить с оператором ССЫЛКА в запросе?
0 DTX 4th
 
09.08.16
16:36
Можно ли писать так?

ГДЕ
  А.Регистратор ССЫЛКА Документ.ИмяДокумента
  И А.Регистратор.Дата = &Дата


Или всё равно надо добавить ВЫРАЗИТЬ?

ГДЕ
  А.Регистратор ССЫЛКА Документ.ИмяДокумента
  И ВЫРАЗИТЬ(А.Регистратор КАК Документ.ИмяДокумента).Дата = &Дата
1 lubitelxml
 
09.08.16
16:38
а самому попробовать в консоле религия не позволяет?
2 DTX 4th
 
09.08.16
16:39
(1) У тебя есть консоль, которая показывает план запроса?
3 polosov
 
09.08.16
16:39
Это какой-то джедайский способ избежать сканирования таблиц чтоле?
4 DTX 4th
 
09.08.16
16:41
(2) Избежать множества соединений
5 polosov
 
09.08.16
16:44
"И ВЫРАЗИТЬ(А.Регистратор КАК Документ.ИмяДокумента).Дата = &Дата" - вот это что-то из области "а власти скрывают"
6 DTX 4th
 
09.08.16
16:49
7 youalex
 
09.08.16
16:50
(0) В регистре поле Период - отличается от даты регистратора?

По теме - условие ССЫЛКА Документ.ИмяДокумента - не уменьшит количество прицепляемых таблиц
8 DTX 4th
 
09.08.16
16:51
(7) Отличается. В шапке запрос абстрактный.

Т.е. всё-таки нужно использовать второй вариант?
9 youalex
 
09.08.16
16:51
(7) + а вообще, вместо ВЫРАЗИТЬ - можно явно таблицу документов прицепить, Внутренним соединением.
10 polosov
 
09.08.16
16:52
(6) Нда, не пользовался таким.
11 DTX 4th
 
09.08.16
16:54
Осталось понять, будет ли достаточно одного условия с ВЫРАЗИТЬ. Т.е. можно ли опустить ССЫЛКА?
ГДЕ
  //А.Регистратор ССЫЛКА Документ.ИмяДокумента
  ВЫРАЗИТЬ(А.Регистратор КАК Документ.ИмяДокумента).Дата = &Дата
12 aleks_default
 
09.08.16
16:54
(8) Второй вариант, только условие на ССЫЛКА не нужно
13 polosov
 
09.08.16
16:55
+(10) Ну ив секции ГДЕ оно как-то бессмысленно.
Если запрос с соединениями, то надо в соединениях прописывать.
14 scanduta
 
09.08.16
17:14
Если не использовать выразить то производительность будет намного ниже. Правильный вариант второй
15 hitodom
 
09.08.16
17:27
чтоб наверняка сделай внутреннее соединение
16 polosov
 
09.08.16
17:47
Проверил в профайлере скуля, все равно много лефт джоинов, если  
ВЫРАЗИТЬ(А.Регистратор КАК Документ.ИмяДокумента).Дата = &Дата
17 aleks_default
 
09.08.16
17:49
(16) Надо ВЫПРАЖАТЬ везде где упоминается Регистратор, не только в условии, но и в выборке полей.
18 polosov
 
09.08.16
17:53
(17) Ну да, тогда красивый план
19 youalex
 
10.08.16
15:14
(17) видимо, из-за представления?
20 aleks_default
 
10.08.16
16:42
(19) из-за составного типа
21 youalex
 
10.08.16
17:05
(20) в условии ГДЕ Регистратор = &Регистратор - выражать не нужно.  Выражать нужно, где есть неявное соединение по этому полю (точка) в условии - или в выбранных полях.

Я предположил, что неявные соединения, может порождать  ф-ия Представление(), или типа поле ".Представление", для составного типа, конечно.