Доброго дня. Направьте пожалуйста на решение вопроса.

Имеется запрос, в нем Документ и табличная часть документа.

Имеется выборка из этого запроса (на основании запроса создаются элементы справочника), начинаю заполнять основные реквизиты нового элемента из запроса, заполнил, элемент новый еще не сохранен, теперь нужно заполнить табличную часть, не знаю как из запроса выбрать только табличную часть.

Подскажите пожалуйста, спасибо.

```1c
    ВЫБРАТЬ
    СпецификацииНоменклатурыТабличнаяЧасть.Ссылка КАК Ссылка1,
    СпецификацииНоменклатурыТабличнаяЧасть.Компонент,
    СпецификацииНоменклатурыТабличнаяЧасть.Количество,
    СпецификацииНоменклатуры.Наименование
    ИЗ
    Справочник.СпецификацииНоменклатуры.ТабличнаяЧасть КАК СпецификацииНоменклатурыТабличнаяЧасть
    ЛЕВОЕ СОЕДИНЕНИЕ Справочник.СпецификацииНоменклатуры КАК СпецификацииНоменклатуры
    ПО СпецификацииНоменклатурыТабличнаяЧасть.Ссылка = СпецификацииНоменклатуры.Ссылка
```
---
```1c
    Запрос = Новый Запрос;
    Запрос.Текст =
    "ВЫБРАТЬ
    | НоменклатураЕдиницыИзмерения.Ссылка КАК Ссылка,
    | НоменклатураЕдиницыИзмерения.ЕдиницаИзмерения,
    | НоменклатураЕдиницыИзмерения.Коэффициент,
    | НоменклатураЕдиницыИзмерения.Вес
    |ИЗ
    | Справочник.Номенклатура.ЕдиницыИзмерения КАК НоменклатураЕдиницыИзмерения
    |ИТОГИ ПО
    | Ссылка";

    РезультатЗапроса = Запрос.Выполнить();

    ВыборкаСсылка = РезультатЗапроса.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам);

    Пока ВыборкаСсылка.Следующий() Цикл
    НовыйЭлемент = Справочники.БанковскиеСчета.СоздатьЭлемент();
    ВыборкаДетальныеЗаписи = ВыборкаСсылка.Выбрать();

    Пока ВыборкаДетальныеЗаписи.Следующий() Цикл
    НовСтрока = НовыйЭлемент.<ТабЧасть>.Добавить();
    ЗаполнитьЗначенияСвойств(НовСтрока,ВыборкаДетальныеЗаписи);

    КонецЦикла;
    НовыйЭлемент.Записать();
    КонецЦикла;
```
---
(14) в данном случае считаю более правильным следующее решение:

```1c
    ТекстЗапроса = "ВЫБРАТЬ
    | РеализацияТоваровУслуг.Ссылка КАК Ссылка,
    | РеализацияТоваровУслуг.Склад КАК Склад,
    | РеализацияТоваровУслуг.Товары.(
    | Номенклатура КАК Номенклатура,
    | Количество КАК Количество,
    | Цена КАК Цена,
    | Сумма КАК Сумма
    | ) КАК Товары,
    | РеализацияТоваровУслуг.Услуги.(
    | Номенклатура КАК Номенклатура,
    | Количество КАК Количество,
    | Цена КАК Цена,
    | Сумма КАК Сумма
    | ) КАК Услуги
    |ИЗ
    | Документ.РеализацияТоваровУслуг КАК РеализацияТоваровУслуг";

    Запрос = Новый Запрос(ТекстЗапроса);

    ВыборкаДокументы = Запрос.Выполнить().Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам);

    Пока ВыборкаДокументы.Следующий() Цикл
    Сообщить(ВыборкаДокументы.Ссылка);
    //Выбираем товары
    ВыборкаТовары = ВыборкаДокументы.Товары.Выбрать();
    Пока ВыборкаТовары.Следующий() Цикл
    Сообщить(ВыборкаТовары.Номенклатура);
    КонецЦикла;
    //Выбираем услуги
    ВыборкаУслуги = ВыборкаДокументы.Услуги.Выбрать();
    Пока ВыборкаУслуги.Следующий() Цикл
    Сообщить(ВыборкаУслуги.Номенклатура);
    КонецЦикла;
    КонецЦикла;
```

Соответственно подставить свои таблицы и реквизиты.
---
```1c
    Запрос = Новый Запрос;
    Запрос.Текст =
    "ВЫБРАТЬ
    | НоменклатураЕдиницыИзмерения.Ссылка КАК Ссылка,
    | НоменклатураЕдиницыИзмерения.ЕдиницаИзмерения,
    | НоменклатураЕдиницыИзмерения.Коэффициент,
    | НоменклатураЕдиницыИзмерения.Вес
    |ИЗ
    | Справочник.Номенклатура.ЕдиницыИзмерения КАК НоменклатураЕдиницыИзмерения
    |ИТОГИ ПО
    | Ссылка";

    РезультатЗапроса = Запрос.Выполнить();

    ВыборкаСсылка = РезультатЗапроса.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам);

    Пока ВыборкаСсылка.Следующий() Цикл
    НовыйЭлемент = Справочники.БанковскиеСчета.СоздатьЭлемент();
    ВыборкаДетальныеЗаписи = ВыборкаСсылка.Выбрать();

    Пока ВыборкаДетальныеЗаписи.Следующий() Цикл
    НовСтрока = НовыйЭлемент.<ТабЧасть>.Добавить();
    ЗаполнитьЗначенияСвойств(НовСтрока,ВыборкаДетальныеЗаписи);

    КонецЦикла;
    НовыйЭлемент.Записать();
    КонецЦикла;
```
---
Так можно делать?

```1c
    ВыборкаДетальныеЗаписи.ТабличнаяЧасть.Выбрать();
```
---
Не нужно. Пользуйся проверенным типовым кодом и правильным запросом.
---
Можно, но тогда запрос зачем делать по таб части?
---
Тогда сделаю без табличной, сразу сделаю выборку отдельно на Табличную часть

вот так
ВыборкаДетальныеЗаписи.ТабличнаяЧасть.Выбрать();
---
покажите
---
Что показать?
---
запрос
---
А что показывать, все просто)

```1c
    ВЫБРАТЬ
    СпецификацииНоменклатуры.Наименование,
    СпецификацииНоменклатуры.ТабличнаяЧасть.(
    Компонент,
    Количество
    )
    ИЗ
    Справочник.СпецификацииНоменклатуры КАК СпецификацииНоменклатуры
```
---
Так и не понял, почему вы отказались от начального варианта
ИЗ
    Справочник.СпецификацииНоменклатуры.ТабличнаяЧасть КАК СпецификацииНоменклатурыТабличнаяЧасть

Он был гораздо лучше да и перспективнее.

Что у вас с ним не получалось-то?

```1c
    ВЫБРАТЬ
    СпецификацииНоменклатурыТабличнаяЧасть.Ссылка КАК Ссылка1,
    СпецификацииНоменклатурыТабличнаяЧасть.Компонент,
    СпецификацииНоменклатурыТабличнаяЧасть.Количество,
    СпецификацииНоменклатурыТабличнаяЧасть.Ссылка.Наименование
    ИЗ
    Справочник.СпецификацииНоменклатуры.ТабличнаяЧасть КАК СпецификацииНоменклатурыТабличнаяЧасть
```

Вы выбираете Табличную часть объекта, а все реквизиты объекта , через Ссылку - например наименование
---
А в чем принципиальная разница 1 или много табличных частей? в (9) вы уже сами все написали
---
Должно сработать
---
не знаю как из запроса выбрать только табличную часть

Так у вас же в запросе именно уже выбрана табличная часть - берите из запроса данные обычным способом и заполняйте, то что вам необходимо...
ИЗ
    Справочник.СпецификацииНоменклатуры.ТабличнаяЧасть КАК СпецификацииНоменклатурыТабличнаяЧасть

Либо изначальный вопрос некорректно задан.
---
Уважаемый все верно Вы сказали, я выбрал решение по Вашему варианту.

Скажите, а если табличных частей там 2?
Как выбирать по нужной табличной части?
---
Попробуй нарисовать от руки табличку с теми результатами, которые хочешь увидеть.

Скорее всего , сразу станет понятно как группировать и из каких источников брать данные.
---
Используй маркеры:

Справочник.ИмяСправочника.Реквизит

Справочник.ИмяТабличнойЧасти1.РеквизитТабличнойЧасти1

Справочник.ИмяТабличнойЧасти2.РеквизитТабличнойЧасти2
---
Уважаемый так вы бы описали свою задачу полностью, мы бы думали в вашем направлении...
А по вашему тексту -ничего про вторую ТЧ..

А если у вас необходимо выбирать различные ТЧ, в зависимости от условий, то в программе корректировать текст запроса по этим условияй
---
Про вторую табличную часть я написал для интереса, мне нужна одна.
---
при обращении только к табличной части есть один немаловажный ньюанс. В Выборку не попадут документы с незаполненной табличной частью.
---
Скажите пожалуйста, а в COM соединении нет данных, которые в табличной части, просто пусто, хотя в запросе все указано и в элементе справочника все есть.
---
подробнее...
---
Откуда вдруг COM-соединение? В условии вашей задачи этого не было.
Запрос выполняется через COM-соединение? Между чем идет соединение, между двумя 1С базами?
---
Вообще com соединение у меня между 2 базами. Вопрос был решен. Все что спрашивал в комментариях, это для информации.
---
На мой взгляд более верно все же делать запрос к Табличной части; Кроме того ЛЕВОЕ СОЕДИНЕНИЕ тут вообще не нужно !

```1c
    Запрос.Текст =
    "ВЫБРАТЬ
    | Ссылка,
    | Ссылка.Наименование КАК Наименование,
    | Ссылка.ЛюбойРеквизит КАК ЛюбойРеквизит,
    | ЕдиницаИзмерения,
    | Коэффициент,
    | Вес
    |ИЗ
    | Справочник.Номенклатура.ЕдиницыИзмерения КАК НоменклатураЕдиницыИзмерения
    |ИТОГИ ПО
    | Ссылка";
```
---
Странный вопрос еще страннее выбор правильного ответа...
---
Всем спасибо за помощь