Имя: Пароль:
1C
1С v8
Заполнение двухмерного массива в цикле
0 rowflag
 
20.11.12
14:12
Почему двухмерный массив заполняется пустыми значениями?

   Результат = Запрос.Выполнить();  
   ВыборкаДетальныеЗаписи = Результат.Выбрать();
   ДвухменрыйМассив = Новый Массив();
   ОдномерныйМассив = Новый Массив();
   Пока ВыборкаДетальныеЗаписи.Следующий() Цикл
       ОдномерныйМассив.Очистить();    
       ОдномерныйМассив.Добавить(ВыборкаДетальныеЗаписи.Наименование);
       ОдномерныйМассив.Добавить(ВыборкаДетальныеЗаписи.Филиал);
       ДвухменрыйМассив.Добавить(ОдномерныйМассив);  // Почему-то очищается еще и значение двухмерного массива. Он заполняется пустыми элементами.
   КонецЦикла;
   Возврат ДвухменрыйМассив;
1 GLazNik
 
20.11.12
14:15
ОдномерныйМассив.Очистить()

надо бы заново его создавать
2 rowflag
 
20.11.12
14:16
Как
3 zulu_mix
 
20.11.12
14:17
опустить 4 строчку в цикл
4 palpetrovich
 
20.11.12
14:17
(2) так ОдномерныйМассив = Новый Массив(); :)
а зачем здесь двумерный вообще? или показано в (0) упрощенно?
5 rowflag
 
20.11.12
14:37
Получилось. А почему его надо создавать заново?
Почему изменяется двухмерный, если я очищаю только одномерный?
6 rowflag
 
20.11.12
14:37
(4) Двухмерный нужен, чтобы передать на клиент таблицу:
Номенклатура - Владелец
7 GLazNik
 
20.11.12
14:39
(6) а удобно? ключом то число выступает... может проще(удобнее) массив структур?
(5) ну так в "двумерный" массив пишем ссылку на "одномерный". т.е. по факту во всех элементах "двумерного" массива у вас ссылка на один "одномерный" массив
8 leonidkorolev
 
20.11.12
14:40
(5) В переменной ОдномерныйМассив хранится адрес на область памяти. Каждый раз очищается одна и та же область. Создавая новый массив, выделяется новая область памяти.
9 rowflag
 
20.11.12
14:58
(7)
1. Работает. (вроде не удобств нет особых)
2. А как записать не ссылку а значение? (так для справки)
10 eklmn
 
гуру
20.11.12
15:07
имхается мне товарищу ТЗ надо а не маасив )
11 rowflag
 
20.11.12
15:46
(10) может быть. Но массивом тоже получилось передать.
12 anddro
 
20.11.12
15:50
Возврат Запрос.Выполнить().Выгрузить() - тоже получится передать.
13 hhhh
 
20.11.12
17:09
(12) может у него управляемая форма.
14 samozvanec
 
20.11.12
17:12
(0)под двухмерные массивы юзаю табдок
15 samozvanec
 
20.11.12
17:13
(14) ссылочные типы, правда, не пробовал
16 rowflag
 
21.11.12
12:15
(13) Да. Именно УФ. На УФ такое не работает?