Имя: Пароль:
1C
1С v8
Объясните смысл такой записи-->>ПРО.ОтборПоСвойствам= ПРО.ОтборПоСвойств
0 krasnodar95
 
04.06.13
16:34
В типовой БП2 есть запись:
ПравилаРегистрацииОбъекта = ПравилаРегистрацииОбъекта(ИмяПланаОбмена, ОбъектМетаданных.ПолноеИмя()).Скопировать();
   
Для Каждого ПРО Из ПравилаРегистрацииОбъекта Цикл
   
   ПРО.ОтборПоСвойствам        = ПРО.ОтборПоСвойствам.Скопировать();//Зачем копировать из свойства в то же самое свойство?
   ПРО.ОтборПоСвойствамОбъекта = ПРО.ОтборПоСвойствамОбъекта.Скопировать();
   ПРО.СвойстваОбъекта = ОбщегоНазначенияКлиентСервер.СкопироватьСтруктуру(ПРО.СвойстваОбъекта);
   
КонецЦикла;
1 krasnodar95
 
04.06.13
16:39
Нихто не знает?
2 Maxus43
 
04.06.13
16:41
безпонятия. в типовых вобще много чудес, главное что данный код не делает хуже, он незаметен
3 mikecool
 
04.06.13
16:41
я не знаю
4 Desna
 
04.06.13
16:43
видимо оно его в нирвану переводит
5 krasnodar95
 
04.06.13
16:45
Ого, я думал что я не догоняю, пытался найти тут смысл)) Спасибо за разъяснения.
6 hhhh
 
04.06.13
16:46
(1) разгадка на строчку выше. Как ты ловко запрятал это объяснение.

   ПравилаРегистрацииОбъекта = ПравилаРегистрацииОбъекта(ИмяПланаОбмена, ОбъектМетаданных.ПолноеИмя()).Скопировать();
7 krasnodar95
 
04.06.13
16:51
(6) Ни понял, где же тут разгадка?
8 jsmith82
 
04.06.13
16:52
(7) да чо тут непонятного-то
конструктора копирования у класса нет, поэтому приходится отдельно копировать данные в новые ссылки
9 jsmith82
 
04.06.13
16:53
коллекция скопировалась, появилась новая ссылка, но элементы коллекции ссылаются на те же адреса в памяти, что и элементы старой коллекции
10 krasnodar95
 
04.06.13
16:55
А если к ссылке применить метод скопировать() то перенесется объект на который она ссылается? (9)