```1c
    ВЫБРАТЬ
    ЗаказТовары.Номенклатура КАК Номенклатура,
    ЗаказТовары.Сумма КАК Сумма,
    ЗаказТовары.Ссылка.Организация КАК Организация,
    ЗаказТовары.Ссылка.Контрагент КАК Контрагент
    ИЗ
    Документ.Заказ.Товары КАК ЗаказТовары

    //---------------------------------------

    ВЫБРАТЬ
    Заказ.Организация КАК Организация,
    Заказ.Контрагент КАК Контрагент,
    ЗаказТовары.Номенклатура КАК Номенклатура,
    ЗаказТовары.Сумма КАК Сумма
    ИЗ
    Документ.Заказ КАК Заказ
    ЛЕВОЕ СОЕДИНЕНИЕ Документ.Заказ.Товары КАК ЗаказТовары
    ПО ЗаказТовары.Ссылка = Заказ.Ссылка

    //---------------------------------------

    ВЫБРАТЬ
    Заказ.Организация КАК Организация,
    Заказ.Контрагент КАК Контрагент,
    Заказ.Товары.(
    Номенклатура КАК Номенклатура,
    Сумма КАК Сумма
    ) КАК ЗаказТовары
    ИЗ
    Документ.Заказ КАК Заказ
```

Обоснуйте, пожалуйста, ответ. Может, ссылка на стандарты есть?
---
интересноПервый:
```1c
    SEL ECT
    T1._Fld5181RRef,
    T1._Fld5182,
    T2._Fld5157RRef,
    T2._Fld5168RRef
    FROM dbo._Document765_VT5179 T1
    LEFT OUTER JOIN dbo._Document765 T2
    ON T1._Document765_IDRRef = T2._IDRRef
```

Третий:
```1c
    INS ERT INTO #tt2 WITH(TABLOCK) (_C_1RRef, _C_2RRef, _TTC_1) SEL ECT
    T1._Fld5157RRef,
    T1._Fld5168RRef,
    T1._IDRRef
    FROM dbo._Document765 T1

    SELECT
    T2._C_1RRef AS Fld5157RRef,
    T2._C_2RRef AS Fld5168RRef,
    T2.SDBL_IDENTITY AS SDBL_IDENTITY
    FR OM #tt2 T2 WITH(NOLOCK)

    SELE CT
    T3._Fld5181RRef,
    T3._Fld5182,
    T4.SDBL_IDENTITY AS SDBL_IDENTITY
    FR OM dbo._Document765_VT5179 T3
    INNER JOIN #tt2 T4 WITH(NOLOCK)
    ON T4._TTC_1 = T3._Document765_IDRRef
    ORDER BY 3 ASC
```
---
выбиращего одно и то жеНет.
---
Что "Нет"?
---
2 и 3. Не одно и тоже. Ну и 1. тоже в некоторых случаях.
---
Ну, там просто вложенная таблица будет в результате.

Это не суть.

Какой из трех вариантов предпочтительнее?

Конструктор печатных форм 1С делает третий вариант, но мне кажется, более оптимальным второй.
---
Ну, там просто вложенная таблица будет в результате. Не только.
---
Результат не одинаковый у запросов.
---
Что "Нет"?Слово такое, отрицание обозначает. Verstehst du?

Эти запросы дадут на одинаковых данных разные результаты.
---
Я надеялся на развернутый ответ, не односложный.
---
надеялся Ну сделай запрос к документу с пустой табличной частью
---
Ок. Первый запрос в этом случае не выведет данные из шапки.

Второй или третий лучше использовать для отчета?

И еще интересует, когда в первом запросе выбирается два (и более) реквизита из шапки интерпретатор/оптимизатор запросов 1С будет делать одно соединение с таблицей шапки или по числу выбираемых реквизитов?
---
для отчетаЗависит от его структуры.
---
И еще интересуетЗапусти профайлер и посмотри.
---
У меня прав нет на сервере.
---
Поставь на домашний
---
Много телодвижений...

Вообще, мне кажется, для разработчиков 1С должны быть рекомендации на этот счет, документация...
---
для разработчиков 1С должны быть рекомендации на этот счет, документацияМного телодвижений
---
2-й вариант, только не левое а правое или ТЧ поставить ведущей.
---
И будет тоже самое, что в 1. То есть с пустой ТЧ запрос будет пустой.
---
все три варианта должны давать один результат. в первом ведущая ТЧ.

Ссылки на заказ вообще нет в полях, значит в результат нужен состав ТЧ
---
должныЕщё один
---
Ссылки на заказ вообще нет в полях, значит в результат нужен состав ТЧ А организация и контрагент из шапки, это так, херня какая-то.

Вот за это вот 1Сников за программистов и не считают.
---
не херня, а значение NULL будет в тех полях.
Выражаетесь техническим языком, пятница 13-го завтра.
---
не херня, а значение NULLТы б запрос что-ли попробовал написать, теоретик.
---
запрос очевиден точно так же как и ваше чванство.
---
запрос очевиденТы его уже написал? Умничка какой!
Теперь запускай.
---
"какой предпочтительнее?"
Встречный вопрос. Предпочтительнее для чего?

Последний использую только в консоли данные посмотреть и то не так:
Выбрать первые 100 т.* из <НекаяТаблицаСТабличнымиЧастями> как т Где....
Такой вариант идеально для этого подходит. И только для этого и подходит. В остальных случаях, наверное никогда. Я не большой специалист, но никогда не использовал его в других случаях.

Первые два используются условно пополам. Смотря какая задача решается. Результат же они дают разный.
И это не все случаи, которые используются. Есть ещё с внутренним соединением. Есть ещё...
---
Меня больше интересует вопрос производительности. И интересно, во что превращаются интерпретатором запросы 1 и 3...
---
интересноПервый:
```1c
    SEL ECT
    T1._Fld5181RRef,
    T1._Fld5182,
    T2._Fld5157RRef,
    T2._Fld5168RRef
    FROM dbo._Document765_VT5179 T1
    LEFT OUTER JOIN dbo._Document765 T2
    ON T1._Document765_IDRRef = T2._IDRRef
```

Третий:
```1c
    INS ERT INTO #tt2 WITH(TABLOCK) (_C_1RRef, _C_2RRef, _TTC_1) SEL ECT
    T1._Fld5157RRef,
    T1._Fld5168RRef,
    T1._IDRRef
    FROM dbo._Document765 T1

    SELECT
    T2._C_1RRef AS Fld5157RRef,
    T2._C_2RRef AS Fld5168RRef,
    T2.SDBL_IDENTITY AS SDBL_IDENTITY
    FR OM #tt2 T2 WITH(NOLOCK)

    SELE CT
    T3._Fld5181RRef,
    T3._Fld5182,
    T4.SDBL_IDENTITY AS SDBL_IDENTITY
    FR OM dbo._Document765_VT5179 T3
    INNER JOIN #tt2 T4 WITH(NOLOCK)
    ON T4._TTC_1 = T3._Document765_IDRRef
    ORDER BY 3 ASC
```
---
О, спасибо!

Первый и второй, выходит, похожи. Ну, за искл. того, какая основная таблица, с какой соединение...

Третий, вероятно, будет менее производительный...
Интересно, что именно его предлагает конструктор печати 1С...
---
Первый и второй, выходит, похожиДа
предлагает конструкторВыборку перебирать проще. Ну и конструктор, он для тупых.
---
Первый и второй, выходит, похожи. Ну, за искл. того, какая основная таблица, с какой соединение...
Вот это самое искл. может сильно влиять на производительность.
Сравните:
Statistics: RecordsScanned = 320
Statistics: RecordsScanned = 191

Пояснять что чему соответствует не надо?