1. Есть регистр накоплений. В нем есть Регистратор, у которого тип - множество разных видов документов.
2. Применяю в запросе условие, по которому должны отбираться нужные мне несколько видов документов, у которых одинаковое название таб.части

| ТИПЗНАЧЕНИЯ(ВзаиморасчетыСКонтрагентами.Регистратор) В (&НужныйТип)

3. Как мне выбрать реквизит таб.части Регистратора (Реквизиты в тч всех нужных мне документов идентичные) без использования левого соединения моего "Регистратора" и множества тч.частей разных видов документов?
P.S. Если не тяжело, скиньте, пожалуйста, пример запроса.
---
Сделать можно объединением табличных частей, а потом одним соединением с объединенным запросом.
То что Вы хотите, не сделать простым запросом.
---
Пример из (4) убьет всё, сначала выбираем в вт 100000000 строк потом фильтруем.
Никто не мешает фильтровать данные сразу, к тому же автор не упомянул ни о каком фильтре, кроме вида регистратора. Ваш запрос точно не будет быстрее. Зачем, например, вы используете ВЫРАЗИТЬ в соединении, если Регистратор вы ищите по не составному полю?
Данные вы получите не нормализованные – количество строк РН перемножится с количеством строк из каждой соединенной ТЧ.
"ТИПЗНАЧЕНИЯ(РасчетыСКлиентамиОбороты.Регистратор) В (&НужныйТип)" и ВЫБОР КОГДА... также не в вашу пользу по сравнению с запросом, использующим временную таблицу.
---
Согласен. Само задание - паралич и решение ему может быть только как костыль.
В задании спрашивают как сделать выборку, а потом пинают, что предложенные варианты медленные.
Автор - ты Сам элементарно выборку сделать не можешь, а еще комментируешь людей, что клиенту нужно красиво и быстро.
---
Автор - ты Сам элементарно выборку сделать не можешь, а еще комментируешь людей, что клиенту нужно красиво и быстро.
Автор я. Выборку я сделал с помощью соединений. Думал, сделать как-то цивилизованней, покрасивше что ли. Мне подсказали, что это невозможно.
---
1.Выбрать (различные) регистратор Поместить Регистраторы из ИсходныйРегистр
2.Программно собрать ТаблицуТабчастей (https://fastcode.im/Templates/7225),
Выбрать Поля Поместить ТаблицаТабчастей из Документ.ЗаказКлиента.Товары ВНУТРЕННЕЕ СОЕДИНЕНИЕ Регистраторы ПО Регистраторы.Регистратор=ТаблицаТабчастей.Ссылка в каждом из объединяемых запросов
3. Выбрать Нужные поля из ИсходныйРегистр ЛевоеСоединение ТаблицаТабчастей по ИсходныйРегистр.Регистратор=ТаблицаТабчастей.Ссылка

---------------------
*Если документов относительно немного, болт на оптимизацию, если много-можно и по индексируемому полю типа даты отобрать ТЧ.
С уточнением цели бизнеса может потребоваться регистр, не хватает конкретных замеров, кода и числа возвращаемых строк.
---
Сделать можно объединением табличных частей, а потом одним соединением с объединенным запросом.
То что Вы хотите, не сделать простым запросом.
---
Переделать запрос на нормальный, а не придумывать бред.
---
Я бы вместо того чтобы делать условие на типдокумента. сделал бы запросы к табличным частям нужных документам.
с конструкцией Объединить.
собираю их в одну таблицу.
а дальше одним левым соединением соединяю с регистратором регистра.

Пример Для БП 3.0

```1c
    ВЫБРАТЬ
    | РеализацияТоваровУслугТовары.Номенклатура КАК Номенклатура,
    | РеализацияТоваровУслугТовары.Количество КАК Количество,
    | РеализацияТоваровУслугТовары.Ссылка.Ссылка КАК Ссылка
    |ПОМЕСТИТЬ вт_табличныечасти
    |ИЗ
    | Документ.РеализацияТоваровУслуг.Товары КАК РеализацияТоваровУслугТовары
    |
    |ОБЪЕДИНИТЬ ВСЕ
    |
    |ВЫБРАТЬ
    | ПоступлениеТоваровУслугТовары.Номенклатура,
    | ПоступлениеТоваровУслугТовары.Количество,
    | ПоступлениеТоваровУслугТовары.Ссылка.Ссылка
    |ИЗ
    | Документ.ПоступлениеТоваровУслуг.Товары КАК ПоступлениеТоваровУслугТовары
    |
    |ОБЪЕДИНИТЬ ВСЕ
    |
    |ВЫБРАТЬ
    | ТребованиеНакладнаяМатериалы.Номенклатура,
    | ТребованиеНакладнаяМатериалы.Количество,
    | ТребованиеНакладнаяМатериалы.Ссылка.Ссылка
    |ИЗ
    | Документ.ТребованиеНакладная.Материалы КАК ТребованиеНакладнаяМатериалы
    |;
    |
    |////////////////////////////////////////////////////////////­////////////////////
    |ВЫБРАТЬ
    | КнигаУчетаДоходовИРасходовОбороты.Регистратор КАК Регистратор,
    | вт_табличныечасти.Номенклатура КАК Номенклатура,
    | вт_табличныечасти.Количество КАК Количество
    |ИЗ
    | РегистрНакопления.КнигаУчетаДоходовИРасходов.Обороты(, , Регистратор, ) КАК КнигаУчетаДоходовИРасходовОбороты
    | ВНУТРЕННЕЕ СОЕДИНЕНИЕ вт_табличныечасти КАК вт_табличныечасти
    | ПО КнигаУчетаДоходовИРасходовОбороты.Регистратор = вт_табличныечасти.Ссылка
```
---
Я так и сделал. Но заказчику нужно красиво )))) И быстродейственней
---
Но заказчику нужно красиво )))) И быстродейственней
Для этого надо было организовывать данные в конфе красиво и чтоб читались быстро.
Тогда и запросы пишутся красиво и данные читаются быстро.

При том раскладе, что у вас - никак, т.к. из таблиц разных физически нужно склеить данные в одну выборку.

Заведить вспомогательный регистр сведений. Заполняйте его "при записи". И будет счастье.
---
Тут без левых никак. Пример из (4) убьет всё, сначала выбираем в вт 100000000 строк потом фильтруем. На мой взгляд быстрее всего отработает такое (можно прогнать тестами):

```1c
    ВЫБРАТЬ
    РасчетыСКлиентамиОбороты.Регистратор КАК Регистратор,
    ВЫБОР
    КОГДА НЕ ЗаказКлиентаТовары.Номенклатура ЕСТЬ NULL
    ТОГДА ЗаказКлиентаТовары.Номенклатура
    КОГДА НЕ РеализацияТоваровУслугТовары.Номенклатура ЕСТЬ NULL
    ТОГДА РеализацияТоваровУслугТовары.Номенклатура
    КОНЕЦ КАК Номенклатура
    ИЗ
    РегистрНакопления.РасчетыСКлиентами.Обороты(, , Регистратор, ) КАК РасчетыСКлиентамиОбороты
    ЛЕВОЕ СОЕДИНЕНИЕ Документ.ЗаказКлиента.Товары КАК ЗаказКлиентаТовары
    ПО ((ВЫРАЗИТЬ(РасчетыСКлиентамиОбороты.Регистратор КАК Документ.ЗаказКлиента)) = ЗаказКлиентаТовары.Ссылка)
    ЛЕВОЕ СОЕДИНЕНИЕ Документ.РеализацияТоваровУслуг.Товары КАК РеализацияТоваровУслугТовары
    ПО ((ВЫРАЗИТЬ(РасчетыСКлиентамиОбороты.Регистратор КАК Документ.РеализацияТоваровУслуг)) = РеализацияТоваровУслугТовары.Ссылка)
    ГДЕ
    ТИПЗНАЧЕНИЯ(РасчетыСКлиентамиОбороты.Регистратор) В (&НужныйТип)
```
---
1. "ГДЕ Регистратор ССЫЛКА Документ.ХХХХ

2.ЛЕВОЕ СОЕДИНЕНИЕ Документ.ХХХХ.ТабличнаяЧасть КАК ТЧ ПО Регистратор = ТЧ.Ссылка

3. Получить реквизит из левой таблицы "ТЧ.Реквизит", лучше с ЕСТЬNULL( , )...

Т.е. сам ответ на вопрос про левые соединения простой: "никак". Единственная здравая мысль - это отдельный регистр, в который нужные данные из табличной части документов писать.
---
Ваш запрос точно не будет быстрее
Уже вижу Ваши замеры производительности. В курсе что часть документов может и не быть проведена по какому-либо регистру, или в Вашей вселенной все документы всегда одни и те же регистры двигают?
Зачем, например, вы используете ВЫРАЗИТЬ в соединении, если Регистратор вы ищите по не составному полю?
В профайлере запросы смотрели? Регистратор - поле составного типа. Хотя о чем я, не пользуйтесь этим оператором никогда, лично Вам не пригодится.
"ТИПЗНАЧЕНИЯ(РасчетыСКлиентамиОбороты.Регистратор) В (&НужныйТип)" и ВЫБОР КОГДА... также не в вашу пользу по сравнению с запросом, использующим временную таблицу.
Если хотите что-то написать по существу - пишите. Для обсуждения физики иных реальностей есть другие ресурсы.
---
Сначала отфильтровать документы в Вирт ТЗ, потом приклеить Табл часть

```1c
    ВЫБРАТЬ
    РасчетыСПокупателямиОбороты.Регистратор КАК Регистратор
    ПОМЕСТИТЬ ВременнаяТаблица
    ИЗ
    РегистрНакопления.РасчетыСПокупателями.Обороты(&Дата1, &Дата2, Регистратор, ) КАК РасчетыСПокупателямиОбороты
    ГДЕ
    РасчетыСПокупателямиОбороты.Регистратор ССЫЛКА Документ.РасходнаяНакладная
    ;

    ////////////////////////////////////////////////////////////­////////////////////
    ВЫБРАТЬ
    РасходнаяНакладнаяЗапасы.Номенклатура КАК Номенклатура,
    ВременнаяТаблица.Регистратор КАК Регистратор
    ИЗ
    ВременнаяТаблица КАК ВременнаяТаблица
    ЛЕВОЕ СОЕДИНЕНИЕ Документ.РасходнаяНакладная.Запасы КАК РасходнаяНакладнаяЗапасы
    ПО (ВременнаяТаблица.Регистратор = РасходнаяНакладнаяЗапасы.Ссылка)
```