Имя: Пароль:
1C
1С v8
Копирование Массива
0 zhukovia
 
11.04.14
11:56
Есть задача скопировать один массив в другой, но не так как делает 1С (путем копирования ссылки), а создать Независимую копию и без перебора в цикле элементов. Отсюда вопрос. Пойдет ли такая конструкция?
<CODE>
Массив = Новый Массив();
Массив.Добавить(1);
Массив.Добавить(2);
фМвссив = Новый ФиксированныйМассив(Массив);
Массив2 = Новый Массив(фМассив);
</CODE>
1 Wobland
 
11.04.14
11:57
ща, минуту, кофе допью и буду проводить испытания
2 Господин ПЖ
 
11.04.14
11:57
передать в функцию по значению
3 Ненавижу 1С
 
гуру
11.04.14
12:00
(0) в последнем операторе ошибка
4 zhukovia
 
11.04.14
12:00
(2) А это как?
5 zhukovia
 
11.04.14
12:00
(3) Орфографическая?
6 Ненавижу 1С
 
гуру
11.04.14
12:01
(2) не взлетит
(5) смысловая, конструктор массива принимает в качестве аргументов только целые числа
7 zhukovia
 
11.04.14
12:02
(6) У меня работает. Может это из за 8.3? Забыл про это написать.
8 Господин ПЖ
 
11.04.14
12:02
(4) функция блабла(Знач массив)
9 zhukovia
 
11.04.14
12:03
Вот так у меня
Массив = Новый Массив();
Массив.Добавить(1);
Массив.Добавить(2);
фМассив = Новый ФиксированныйМассив(Массив);
Массив2 = Новый Массив(фМассив);
10 zhukovia
 
11.04.14
12:04
(8) А как это поможет копию создать? Мне не передать а скопировать надо. В текущей Прцедуре.
11 zhukovia
 
11.04.14
12:06
(9) Вроде работает. Вот только как проверить не ссылка ли копируется и не становится ли исходный массив неизменяемым?
12 Ненавижу 1С
 
гуру
11.04.14
12:06
(10) никак не поможет
(10) можно еще в список значений загрузить, а потом выгрузить

ВыгрузитьЗначения()
Возвращаемое значение:

Тип: Массив.

Описание:

Создает массив и копирует в него значения элементов списка значений.

Доступность
13 Господин ПЖ
 
11.04.14
12:06
(10) ну если прямо копия тогда конечно нет
14 Господин ПЖ
 
11.04.14
12:07
(11) удали элемент в одном, проверь кол-во в другом
15 zhukovia
 
11.04.14
12:07
(12) Выгрузить-Загрузить мне кажется по времени дольше будет чем перебор.
16 Ненавижу 1С
 
гуру
11.04.14
12:07
(11) наверное попробовать изменить элемент массива и проверить

Массив[0] = 100;
Если Массив[0]=Массив2[0] Тогда
  //ссылаются на одно и тоже
Иначе
  //разные объекты
17 zhukovia
 
11.04.14
12:07
(14) Я изменял и вроде все хорошо.
18 Господин ПЖ
 
11.04.14
12:09
(17) ну тогда радуйся
19 zhukovia
 
11.04.14
12:10
(16) А это разве не значения сравниваться будут?
20 zhukovia
 
11.04.14
12:14
(18) Т.е. получается такая недокументированная особенность. Так гораздо быстрее большие массивы копировать.