Вход | Регистрация
 
1С:Предприятие :: 1С:Предприятие 8 общая

корректное заполнение таблицы значений массивами

корректное заполнение таблицы значений массивами
Я
   EternalFeitan
 
29.08.21 - 16:26
Всем привет!
Как правильно в цикле заполнять ТЗ массивом?
то есть у меня цикл по выборке, в итерации заполняю массив по условию, потом этот массив закидываю в новую строчку ТЗ, на след итерации очищаю массив, и заново все. Проблема в том что при очищении массива, очищается и значение в строчке ТЗ, так как я в строчку записывал не само значение массива, а ссылку на массив и он изменился. В С++ можно было обрабатывать такой момент, а как в 1С правильно сделать?
   youalex
 
1 - 29.08.21 - 16:30
не надо очищать, пересоздавай каждый раз новый.
   EternalFeitan
 
2 - 29.08.21 - 16:32
(1) Да теперь норм, спасибо
   серый КТУЛХУ
 
3 - 29.08.21 - 17:06
ну или обращайся напрямую типа СтрокаТаблицыЗначений.ТутуМассив.Добавить.....
   minsk1s
 
4 - 29.08.21 - 18:27
// Выгружаем колонку названий таблицы значений в массив

   МассивОвощей = ТЗ.ВыгрузитьКолонку("Овощь");
   серый КТУЛХУ
 
5 - 29.08.21 - 18:46
(4): идиосикразия или альтернативность когнитивной одаренности?
   ДенисЧ
 
6 - 29.08.21 - 18:48
(3) Ага. "Значение не является объектным типом..."
   серый КТУЛХУ
 
7 - 29.08.21 - 19:05
(6): или вы врете или у вас просто где-то в коде ошибка. потому что вотето - работает:
    ТестТз = Новый ТаблицаЗначений;
    ТестТз.Колонки.Добавить("ТестМассив",Новый ОписаниеТипов("Массив"));
    ТестТзСтрока = ТестТз.Добавить();
    ТестТзСтрока.ТестМассив = Новый Массив;
    ТестТзСтрока.ТестМассив.Добавить(1);
    ТестТзСтрока.ТестМассив.Добавить(2);
    ТестТзСтрока.ТестМассив.Добавить(3);
    ТестТзСтрока = ТестТз.Добавить();
    ТестТзСтрока.ТестМассив = Новый Массив;
    ТестТзСтрока.ТестМассив.Добавить(4);
    ТестТзСтрока.ТестМассив.Добавить(5);
    ТестТзСтрока.ТестМассив.Добавить(6);
    ТестТзСтрока.ТестМассив.Добавить(7);
    Возврат;    // тут брейкпойнт, и по Shift+F9:

    //ТестТз[0].ТестМассив.Количество() = 3

    //ТестТз[1].ТестМассив.Количество() = 4
   ДенисЧ
 
8 - 29.08.21 - 19:07
(7) У чёрту перья, я должен видеть в (3) "Новый Массив"
   серый КТУЛХУ
 
9 - 29.08.21 - 20:23
(8): ты удивишься, но (7) работает и без "ТестТзСтрока.ТестМассив = Новый Массив;"
   ДенисЧ
 
10 - 29.08.21 - 20:34
(9) Меня не интересует (7) 
Меня интересует (3)
   серый КТУЛХУ
 
11 - 29.08.21 - 20:35
(10): так (3) это фактически фрагмент (7), которое работает и без ТестТзСтрока.ТестМассив = Новый Массив;
   VladZ
 
12 - 29.08.21 - 23:38
(0) Зачем это нужно?

Список тем форума
 
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.