Имя: Пароль:
1C
 
Запрос: в чем разница?
,
0 Штурман
 
25.11.19
07:57
Есть запрос, который выглядит так:


ВЫБОР
        КОГДА ОстаткиТоваров.Регистратор ССЫЛКА Документ.ПриходнаяНакладная
            ТОГДА ВЫРАЗИТЬ(ОстаткиТоваров.Регистратор КАК Документ.ПриходнаяНакладная).Поставщик
        КОГДА ОстаткиТоваров.Регистратор ССЫЛКА Документ.РасходнаяНакладная
            ТОГДА ВЫРАЗИТЬ(ОстаткиТоваров.Регистратор КАК Документ.РасходнаяНакладная).Покупатель
    КОНЕЦ КАК Контрагент



его можно также написать таким способом



ВЫБОР
        КОГДА ОстаткиТоваров.Регистратор ССЫЛКА Документ.ПриходнаяНакладная
            ТОГДА ОстаткиТоваров.Регистратор.Поставщик
        КОГДА ОстаткиТоваров.Регистратор ССЫЛКА Документ.РасходнаяНакладная
            ТОГДА ОстаткиТоваров.Регистратор.Покупатель
    КОНЕЦ КАК Контрагент


В чем может быть разница? Обязательно ли использование ВЫРАЗИТЬ? Значения все равно одинаковые выводят два запроса
1 Волшебник
 
25.11.19
08:02
лучше с ВЫРАЗИТЬ
2 1С Ассенизатор ПРОФ
 
25.11.19
08:02
(0) Обязательно. Потому что все равно будет соединения со всеми таблицами в составном типе.
3 Штурман
 
25.11.19
08:05
(1) (2) обычно ВЫРАЗИТЬ использовал для приведения поля к определенному типу, например
ВЫРАЗИТЬ(Остатки как Число(15,2))
а в запросе (0) совсем другое применение функции, вот хотелось бы инфу поподробнее )
4 piter3
 
25.11.19
08:07
Точка
5 1С Ассенизатор ПРОФ
 
25.11.19
08:08
(3) Поле регистратор составного типа. Ты хочешь достать реквизит поставщик. Так как там допустим 5 разных документов, то запрос пойдет смотреть по всем 5 таблицам твой реквизит, если явно не выразить поле. Но вариант с условием ССЫЛКА в секции где тоже работает.
6 1С Ассенизатор ПРОФ
 
25.11.19
08:09
7 Штурман
 
25.11.19
08:12
(5) т.е. через ВЫРАЗИТЬ в запросе явно указываем поле для вывода поставщика, в то время как без ВЫРАЗИТЬ время выполнения запроса увеличивается и он все таблицы перебирает?
8 1С Ассенизатор ПРОФ
 
25.11.19
08:13
(7) Явно указываем таблицу документа из которого будем брать.
9 Штурман
 
25.11.19
08:14
спасибо )
10 ДенисЧ
 
25.11.19
08:51
В серверной базе - ВЫРАЗИТЬ обязательно.
В файловой без него работает быстрее, как ни странно
11 Волшебник
 
25.11.19
08:54
(10) В файловой базе всё остальное тормозит
12 ДенисЧ
 
25.11.19
08:56
(11) Не всё. Один пользователь в локальной базе работает быстрее, чем тот же один в такой же серверной )
13 1С Ассенизатор ПРОФ
 
25.11.19
09:29
(10) Возможно это связано с тем что там не используется скульный движок, и 1с из этой портянки уже все понимает правильно.
14 Сияющий в темноте
 
25.11.19
18:42
(13)движок 1с исполняет все буквально,и тип у него уже приведен,а выразить просто еще один лишний оператор.
Я не хочу быть самым богатым человеком на кладбище. Засыпать с чувством, что за день я сделал какую-нибудь потрясающую вещь — вот что меня интересует. Стив Джобс