Имя: Пароль:
1C
 
Колюсь оригинальным способом замены ссылок в документе
0 Гений 1С
 
гуру
19.06.07
16:16
Если вам нужно заменить ссылки в объекте или наборе записей, можно выгрузить его в XML и там в виде строки заменить GUID первой ссылки на GUID второй ссылки. ;-)

Функция обЗаменаСсылки(Объект, ИсхСсылка, РезСсылка)
   ХМЛ=обОбъектВXML(Объект);
   ИсхГУИД=ИсхСсылка.УникальныйИдентификатор();
   РезГУИД=РезСсылка.УникальныйИдентификатор();
   Если Найти(ХМЛ, ИсхГУИД)=0 Тогда
       Возврат Неопределено;
   Иначе
       ХМЛ=СтрЗаменить(ХМЛ, ИсхГУИД, РезГУИД);
       Возврат обОбъектИзXML(ХМЛ);
   КонецЕсли;
КонецФункции


Юзайте, пока я добрый!
1 pajaro
 
19.06.07
16:18
кто-то бухает, а кто-то колется(с)
2 Terv
 
19.06.07
16:19
и какой практический смысл?
3 Господин ПЖ
 
19.06.07
16:19
Думаю - чего не хватает?...
4 Asmody
 
19.06.07
16:20
ты это... завязывай колоться... до добра не доведет
5 asady
 
19.06.07
16:21
(0) так можно что хошь менять кстати. Я так условия взаиморасчетов по договорам менял при переносе данных из УТ в БП - парсил XMLфайл и менял.

в твоем случае надо будет где-то хранить таблицу соответствия GUIDов.
6 Гений 1С
 
гуру
19.06.07
16:44
(5) да ничего хранить не надо.
Просто это более простой аналог обработки поиск и замена ссылок.
То бишь на вход подаешь объект  и две ссылки, а она сама их в XML конвертит и обратно и в ГУИДы и обратно. Элегантно. ;-) Не нужно перебирать ссылки во всех реквизитах и т.п.

Правда, если юзверь в строке хранит гуид ссылки, может ошибочку дать, хотя с другой стороны все праильно - это же ГЛОБАЛЬНАЯ ЗАМЕНА ССЫЛОК!!!
7 pajaro
 
19.06.07
17:02
(6)замена да, но каким образом эта процедура заменяет поиск, если на входе она получает готовый объект?
8 simol
 
19.06.07
18:26
А регистры, или предлагаешь всю базу выгружать?
9 Immortal
 
19.06.07
21:21
best!
5 баллов. даже обидно чтосам не дотукал=)
10 asady
 
19.06.07
21:47
(9) теперь остается выяснить насколько это дольше типового способа.
11 Immortal
 
19.06.07
21:53
(10)мм.. есть отвественный..в куче доков. сколько его поиск и замена значений менять будет?
12 Neco
 
19.06.07
22:51
(0) Вау! Новый способ копирования элементов и документов.
13 Гений 1С
 
гуру
20.06.07
09:32
(7) Найти по ссылкам!!! ;-)
(9) Спасибо.
(10) По скорости или по объему кода? По объему кода меньше значительно. По скорости вряд ли медленнее, т.к. юзается типовая серилизация.
(11) Столько же сколько и в типовой, это не метод поиска, это метод написания кода по замене ссылок в отдельно взятом объекте - дешевый и сердитый!
(12) ыгы...
Функции в ХМЛ и из ХМЛ в моей библиотеке функций или на книге знаний.
Независимо от того, куда вы едете — это в гору и против ветра!