Добрый день. Помогите пожалуйста разобраться. Делаю обработку с двумя табличными частями. В первую ТЧ попадают все строки из заказа на производство, а во вторую все строки из спецификации(Материалы).

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

    Запрос.УстановитьПараметр("Ссылка", Ссылка);

    Выборка = Запрос.Выполнить().Выбрать();
    Объект.Товары.Очистить();
    Объект.Продукция.Очистить();
    Пока Выборка.Следующий() Цикл
    СтрокаТЧ = Объект.Товары.Добавить();
    СтрокаТЧ.Номенклатура = Выборка.Номенклатура;
    СтрокаТЧ.Характеристика = Выборка.Характеристика;
    СтрокаТЧ.Спецификация = Выборка.Спецификация;
    СтрокаТЧ.Количество = Выборка.КоличествоУпаковок;
    СтрокаПродукция = Объект.Продукция.Добавить();
    СтрокаПродукция.НоменклатураВЭтап = Выборка.Номенклатура1;
    СтрокаПродукция.КоличествоВЭтап = Выборка.КоличествоУпаковок1;
    СтрокаПродукция.ХарактеристикаВЭтап = Выборка.Характеристика1;
    КонецЦикла;
```

Если в спецификации 1 строка то все отрабатывает нормально, но если строк несколько то в первой ТЧ(Строки из заказа на производство) строки задваиваются. Почему это происходит мне понятно. А как правильно обработать результат запроса что бы обе таблицы заполнились привильно?
---
```1c
    Пока Выборка.СледующийПоЗначениюПоля("Спецификация") Цикл
    СтрокаТЧ = Объект.Товары.Добавить();
    СтрокаТЧ.Номенклатура = Выборка.Номенклатура;
    СтрокаТЧ.Характеристика = Выборка.Характеристика;
    СтрокаТЧ.Спецификация = Выборка.Спецификация;
    СтрокаТЧ.Количество = Выборка.КоличествоУпаковок;
    // здесь убери
    //СтрокаПродукция = Объект.Продукция.Добавить();
    //СтрокаПродукция.НоменклатураВЭтап = Выборка.Номенклатура1;
    //СтрокаПродукция.КоличествоВЭтап = Выборка.КоличествоУпаковок1;
    //СтрокаПродукция.ХарактеристикаВЭтап = Выборка.Характеристика1;
    Пока Выборка.Следующий() Цикл
    СтрокаПродукция = Объект.Продукция.Добавить();
    СтрокаПродукция.НоменклатураВЭтап = Выборка.Номенклатура1;
    СтрокаПродукция.КоличествоВЭтап = Выборка.КоличествоУпаковок1;
    СтрокаПродукция.ХарактеристикаВЭтап = Выборка.Характеристика1;
    КонецЦикла;
```

(9)
---
Например:
- запрос упорядочить по ЗаказНаПроизводство2_2Продукция.Спецификация
- далее
Пока Выборка.СледующийПоЗначениюПоля("Спецификация") Цикл
    // заполняем строку Объект.Товары
    Пока Выборка.Следующий() Цикл
        // заполняем строку Объект.Продукция
    КонецЦикла;
КонецЦикла;
---
ЗаказНаПроизводство2_2Продукция.Спецификация

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

    |ГДЕ
    | ЗаказНаПроизводство2_2Продукция.Ссылка = &Ссылка
    |УПОРЯДОЧИТЬ ПО
    |ЗаказНаПроизводство2_2Продукция.Спецификация";

    Запрос.УстановитьПараметр("Ссылка", Ссылка);

    Выборка = Запрос.Выполнить().Выбрать();
    Объект.Товары.Очистить();
    Объект.Продукция.Очистить();
    Пока Выборка.СледующийПоЗначениюПоля("Спецификация") Цикл
    СтрокаТЧ = Объект.Товары.Добавить();
    СтрокаТЧ.Номенклатура = Выборка.Номенклатура;
    СтрокаТЧ.Характеристика = Выборка.Характеристика;
    СтрокаТЧ.Спецификация = Выборка.Спецификация;
    СтрокаТЧ.Количество = Выборка.КоличествоУпаковок;
    СтрокаПродукция = Объект.Продукция.Добавить();
    СтрокаПродукция.НоменклатураВЭтап = Выборка.Номенклатура1;
    СтрокаПродукция.КоличествоВЭтап = Выборка.КоличествоУпаковок1;
    СтрокаПродукция.ХарактеристикаВЭтап = Выборка.Характеристика1;
    КонецЦикла;
    Пока Выборка.Следующий() Цикл
    СтрокаПродукция = Объект.Продукция.Добавить();
    СтрокаПродукция.НоменклатураВЭтап = Выборка.Номенклатура1;
    СтрокаПродукция.КоличествоВЭтап = Выборка.КоличествоУпаковок1;
    СтрокаПродукция.ХарактеристикаВЭтап = Выборка.Характеристика1;
    КонецЦикла;
```

Так? Заполняет только первую строку из спецификации.
---
Цикл Пока Выборка.Следующий() должен быть внутри цикла Пока Выборка.СледующийПоЗначениюПоля()
---
(6) Так работает для одной строки в заказе на производство, если их несколько то задваиваются строки спецификаций.

```1c
    Пока Выборка.СледующийПоЗначениюПоля("Спецификация") Цикл
    СтрокаТЧ = Объект.Товары.Добавить();
    СтрокаТЧ.Номенклатура = Выборка.Номенклатура;
    СтрокаТЧ.Характеристика = Выборка.Характеристика;
    СтрокаТЧ.Спецификация = Выборка.Спецификация;
    СтрокаТЧ.Количество = Выборка.КоличествоУпаковок;
    СтрокаПродукция = Объект.Продукция.Добавить();
    СтрокаПродукция.НоменклатураВЭтап = Выборка.Номенклатура1;
    СтрокаПродукция.КоличествоВЭтап = Выборка.КоличествоУпаковок1;
    СтрокаПродукция.ХарактеристикаВЭтап = Выборка.Характеристика1;
    Пока Выборка.Следующий() Цикл
    СтрокаПродукция = Объект.Продукция.Добавить();
    СтрокаПродукция.НоменклатураВЭтап = Выборка.Номенклатура1;
    СтрокаПродукция.КоличествоВЭтап = Выборка.КоличествоУпаковок1;
    СтрокаПродукция.ХарактеристикаВЭтап = Выборка.Характеристика1;
    КонецЦикла;
    КонецЦикла;
```
---
ну а нафига два раза добавлять в продукцию? Товары добавляй во внешнем цикле, а продукцию во внутреннем.
---
Я наверно что то не понимаю, извините, только учусь. Но вроде так и есть, товары во внешнем, продукция во внутреннем.
---
```1c
    Пока Выборка.СледующийПоЗначениюПоля("Спецификация") Цикл
    СтрокаТЧ = Объект.Товары.Добавить();
    СтрокаТЧ.Номенклатура = Выборка.Номенклатура;
    СтрокаТЧ.Характеристика = Выборка.Характеристика;
    СтрокаТЧ.Спецификация = Выборка.Спецификация;
    СтрокаТЧ.Количество = Выборка.КоличествоУпаковок;
    // здесь убери
    //СтрокаПродукция = Объект.Продукция.Добавить();
    //СтрокаПродукция.НоменклатураВЭтап = Выборка.Номенклатура1;
    //СтрокаПродукция.КоличествоВЭтап = Выборка.КоличествоУпаковок1;
    //СтрокаПродукция.ХарактеристикаВЭтап = Выборка.Характеристика1;
    Пока Выборка.Следующий() Цикл
    СтрокаПродукция = Объект.Продукция.Добавить();
    СтрокаПродукция.НоменклатураВЭтап = Выборка.Номенклатура1;
    СтрокаПродукция.КоличествоВЭтап = Выборка.КоличествоУпаковок1;
    СтрокаПродукция.ХарактеристикаВЭтап = Выборка.Характеристика1;
    КонецЦикла;
```

(9)
---
Действительно, скопировал и забыл удалить. Спасибо)
---
У Вас ссылка явно определена
```1c
    Запрос.УстановитьПараметр("Ссылка", Ссылка);
```
 зачем Вы получаете данные ссылки в запросе если можно это сделать через точку в выборке

```1c
    СтрокаТЧ.Номенклатура = Ссылка.Номенклатура;
    СтрокаТЧ.Характеристика = Ссылка.Характеристика;
    СтрокаТЧ.Спецификация = Ссылка.Спецификация;
```

В запросе просто получите спецификацию без всяких соединений и выводите её!
---
- это данные табчастей, а не ссылок
- объектная модель для мешков :)