Имя: Пароль:
1C
1С v8
корректное заполнение таблицы значений массивами
0 EternalFeitan
 
29.08.21
16:26
Всем привет!
Как правильно в цикле заполнять ТЗ массивом?
то есть у меня цикл по выборке, в итерации заполняю массив по условию, потом этот массив закидываю в новую строчку ТЗ, на след итерации очищаю массив, и заново все. Проблема в том что при очищении массива, очищается и значение в строчке ТЗ, так как я в строчку записывал не само значение массива, а ссылку на массив и он изменился. В С++ можно было обрабатывать такой момент, а как в 1С правильно сделать?
1 youalex
 
29.08.21
16:30
не надо очищать, пересоздавай каждый раз новый.
2 EternalFeitan
 
29.08.21
16:32
(1) Да теперь норм, спасибо
3 серый КТУЛХУ
 
29.08.21
17:06
ну или обращайся напрямую типа СтрокаТаблицыЗначений.ТутуМассив.Добавить.....
4 minsk1s
 
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), которое работает и без ТестТзСтрока.ТестМассив = Новый Массив;
12 VladZ
 
29.08.21
23:38
(0) Зачем это нужно?
Выдавать глобальные идеи — это удовольствие; искать сволочные маленькие ошибки — вот настоящая работа. Фредерик Брукс-младший