Как строку из одной ТаблицыЗначений довавить в другую таблицу?
У меня есть итоговая таблица значений и в нее я подбираю строки из других ТаблицЗначений с одинаковыми колонками таблиц, полученных по запросам. Нашел два кода с такой реализацией:
1.
2.
1й код рабочий, я его уже ранее использовал в программе, но когда много полей, надо все перебирать, не очень удобно и громоздко. 2й код более простой, но выходит ошибка индекс ушел за пределы границы (это я в цикле добавляю значения).
Может еще существуют другие методы? Если есть индекс строки таблицы, данные которой нужно передать в первую таблицу значений.
3. Или другой вариант, есть исходная ТаблицаЗначений, в нее нужно добавить все строки из второй ТаблицыЗначений (правда во второй таблице всегда одна строка, так как вторая таблица на этот момент уже свернута)
1.
Стр = ТабВКоде.Добавить();
Стр.Фрукт = "Яблоко";
Стр.Цвет = "Зелёный";
Стр.Вес = 200;
2.
Скопировать строку таблицы значений 1С, для примера — первую:
ЗаполнитьЗначенияСвойств(ТаблицаТоваров.Добавить(), ТаблицаТоваров[0]);
1й код рабочий, я его уже ранее использовал в программе, но когда много полей, надо все перебирать, не очень удобно и громоздко. 2й код более простой, но выходит ошибка индекс ушел за пределы границы (это я в цикле добавляю значения).
Может еще существуют другие методы? Если есть индекс строки таблицы, данные которой нужно передать в первую таблицу значений.
3. Или другой вариант, есть исходная ТаблицаЗначений, в нее нужно добавить все строки из второй ТаблицыЗначений (правда во второй таблице всегда одна строка, так как вторая таблица на этот момент уже свернута)
Найденные решения
Остальные ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
во 2-ом примере можно отказаться от индекса.
Если у вас цикл по 2-ой таблице значений, то
Если у вас цикл по 2-ой таблице значений, то
Для каждого текстр из Таблица2 цикл
новстр = Таблица1.Добавить();
ЗаполнитьЗначенияСвойств(новстр,текстр);
конецЦикла
(2) Всё верно, только у меня итоговая таблица всё равно пустая. Надо ли в итоговой таблице колонки создавать всё таки? Или можно новую таблицу только инициализировать?
У меня такой код не отрабатывается:
У меня такой код не отрабатывается:
ИтоговаяТЗ = Новый ТаблицаЗначений;
Для каждого СтрокаТЗ Из ТекущийДокументТЗ Цикл
НоваяСтрока = ИтоговаяТЗ.Добавить();
ЗаполнитьЗначенияСвойств(НоваяСтрока, СтрокаТЗ);
КонецЦикла;
2й вариант рабочий, вот пример. Ошибка просто гдето у вас, отлаживайте, ищите, по тому что вы написали где она непонятно. Может дело в том, что из одной таблицы в нее же добавляете..
тзн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);
Показать
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот