У меня есть итоговая таблица значений и в нее я подбираю строки из других ТаблицЗначений с одинаковыми колонками таблиц, полученных по запросам. Нашел два кода с такой реализацией:

1.
```1c
    Стр = ТабВКоде.Добавить();
    Стр.Фрукт = "Яблоко";
    Стр.Цвет = "Зелёный";
    Стр.Вес = 200;
```

2.
```1c
    Скопировать строку таблицы значений 1С, для примера — первую:

    ЗаполнитьЗначенияСвойств(ТаблицаТоваров.Добавить(), ТаблицаТоваров[0]);
```

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

3. Или другой вариант, есть исходная ТаблицаЗначений, в нее нужно добавить все строки из второй ТаблицыЗначений (правда во второй таблице всегда одна строка, так как вторая таблица на этот момент уже свернута)
---
во 2-ом примере можно отказаться от индекса.

Если у вас цикл по 2-ой таблице значений, то

```1c
    Для каждого текстр из Таблица2 цикл
    новстр = Таблица1.Добавить();
    ЗаполнитьЗначенияСвойств(новстр,текстр);
    конецЦикла
```
---
во 2-ом примере можно отказаться от индекса.

Если у вас цикл по 2-ой таблице значений, то

```1c
    Для каждого текстр из Таблица2 цикл
    новстр = Таблица1.Добавить();
    ЗаполнитьЗначенияСвойств(новстр,текстр);
    конецЦикла
```
---
Спасибо интересное решение, возьму на заметку.
---
Сообщение было скрыто модератором.
---
Всё верно, только у меня итоговая таблица всё равно пустая. Надо ли в итоговой таблице колонки создавать всё таки? Или можно новую таблицу только инициализировать?

У меня такой код не отрабатывается:

```1c
    ИтоговаяТЗ = Новый ТаблицаЗначений;

    Для каждого СтрокаТЗ Из ТекущийДокументТЗ Цикл
    НоваяСтрока = ИтоговаяТЗ.Добавить();
    ЗаполнитьЗначенияСвойств(НоваяСтрока, СтрокаТЗ);
    КонецЦикла;
```
---
Надо ли в итоговой таблице колонки создавать всё таки?
Что вы, нет конечно. Надо просто подождать, когда платформа подключится к вашему мозгу, найдет там, какие же колонки должны быть в таблице, чтобы их заполнить.
---
всё так, но вместо
ИтоговаяТЗ = Новый Таблица Значений;
нужно сделать
ИтоговаяТЗ = ТекущийДокументТЗ.СкопироватьКолонки();
и будет работать
---
Сообщение было скрыто модератором.
---
2й вариант рабочий, вот пример. Ошибка просто гдето у вас, отлаживайте, ищите, по тому что вы написали где она непонятно. Может дело в том, что из одной таблицы в нее же добавляете..

```1c
    тзн1 = Новый ТаблицаЗначений;
    тзн1.Колонки.Добавить("Поле1");
    тзн1.Колонки.Добавить("Сумма");
    тзн2 = Новый ТаблицаЗначений;
    тзн2.Колонки.Добавить("Поле1");
    тзн2.Колонки.Добавить("Сумма");
    стртзн1 = тзн1.Добавить();
    стртзн1.Поле1 = "Кря";
    стртзн1.Сумма = 1;
    стртзн1 = тзн1.Добавить();
    стртзн1.Поле1 = "Ква";
    стртзн1.Сумма = 2;
    стртзн2 = тзн2.Добавить();
    стртзн2.Поле1 = "Хрю";
    стртзн2.Сумма = 3;
    ЗаполнитьЗначенияСвойств(тзн2.Добавить(), тзн1[0]);
    ЗаполнитьЗначенияСвойств(тзн2.Добавить(), тзн1[1]);
    ЗаполнитьЗначенияСвойств(тзн2.Добавить(), тзн1[1]);

    ОткрытьЗначение(тзн2);
```
---
спасибо, тоже интересно. Ошибку у себя нашел, иногда были пустые запросы и таблица значений тоже соответственно пустая и нулевого индекса конечно не было.
---
вот еще вариант нашел на курсах у Павла Чистова