Добрый день. Заполняю циклом строки ТЧ Продукция по данным ТЧ Товары.Спецификация. Необходимо после обхода всей спецификации вставлять пустую строку разделитель.
Попробовал так

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

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

```1c
    Для Каждого ТекущаяСтрока Из Объект.Товары Цикл
    ПустаяСтрокаПродукции = Объект.Продукция.Добавить();
    ЕстьСпецификация = Ложь;
    Пока Выборка.Следующий() Цикл
    Если Выборка.СпособПолученияМатериала = Перечисления.СпособыПолученияМатериаловВСпецификации.ПроизвестиПоСпецификации Тогда
    ЕстьСпецификация = Истина;
    СтрокаПродукция = Объект.Продукция.Добавить();
    СтрокаПродукция.НоменклатураВЭтап = Выборка.Номенклатура1;
    СтрокаПродукция.КоличествоВЭтап = Выборка.КоличествоУпаковок1;
    СтрокаПродукция.ХарактеристикаВЭтап = Выборка.Характеристика1;
    КонецЕсли;
    КонецЦикла;
    Если Не ЕстьСпецификация Тогда
    Объект.Продукция.Удалить(ПустаяСтрокаПродукции);
    КонецЕсли;
    КонецЦикла;
```
---
Отладкой пройдите и посмотрите, когда она начинает задваиваться, затраиваться и тд
---
На сервере в данный момент нет возможности включить отладку
---
Скорее всего по этому условию:
Если Выборка.СпособПолученияМатериала = Перечисления.СпособыПолученияМатериаловВСпецификации.ПроизвестиПоСпецификации Тогда
В том случае, если ничего не добавлено, отрабатывает только строка из начала цикла всегда безусловно
СтрокаПродукция = Объект.Продукция.Добавить();
Вот тут вообще непонятно:
Пока Выборка.Следующий()
Выборка для каждой строки товара не меняется, а обходится до конца.
Весь код?
---
```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;
    Иначе
    КонецЕсли;
    КонецЦикла;
    КонецЦикла;

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

А вот тут обходим все строки - с первой добавленной и до последней
Для Каждого ТекущаяСтрока Из Объект.Товары

Т.е. в выборке первая строка - добавили строки в товары, обходим эту одну строку.
В выборке вторая строка - добавили её и обходим первую и вторую строки.

Кажется, что цикл Для Каждого ТекущаяСтрока Из Объект.Товары вообще лишний.
---
Товары и продукция это две разных ТЧ.