Выгрузка загрузка данных XML, отключить перенос внутренних идентификаторов. #533762


#0 by DimaWert
Требуется осуществить перенос между 2-мя идентичными базами, 2 узла распределенки, причем в центральной базе элементы должны удвоиться, по стандарту обработка создает элементы с одинаковыми ссылками, а надо что бы в базе получателе создавался новый элемент, есть предложения?
#1 by Живой Ископаемый
есть, не использовать эту обработку, нарисвать правила в КД.
#2 by DimaWert
согласен, это вариант, хочется попроще, если ничего не придумается так и поступлю
#3 by sda553
Надо перенести только один вид метаданных таким способом - один какой то справочник? Или в переносе должна задвоится вся база, т.е. задвоится все справочники, документы, регистры и т.п.все что там есть в xml?
#4 by DimaWert
надо перенести операции сверки базы со всеми справочниками получается что заводиться должно все.
#5 by DimaWert
может быть взять копию узла 1, и поменять ему все ссылки
#6 by DimaWert
только как?
#7 by sda553
Тогда это нереально, не забывайте что вам нужно не только id заменить, но и всю релевантность где этот id встречается в xml
#8 by sda553
Аналогично, надо не только все ссылки поменять но и релевантность их
#9 by DimaWert
кста, а что если в самом XML сделать замену префикса в ссылках?
#10 by DimaWert
найти в ссылке кусок отвечающий за базу, и заменить его
#11 by Живой Ископаемый
2 Попробуй, расскажешь. Действительно интересно..
#12 by sda553
Опять то же самое, вы поймите что есть у вас справочник с ИД =1, и далее в xml идет документ где этот справочник упоминается в качестве реквизита с ИД=1. Получается вам не только префикс у справочника заменить но и этот документ выискивать где этот ИД встретился и там тоже поменять на новый
#13 by DimaWert
хотя, не получится, так как в 8 нет такого участка
#14 by Живой Ископаемый
2 нету в ссылке куска отвечающего за базу, Можно просто какую-то часть уида позаменять. Нужно только придумать как ты эту часть уида будешь выцеплять.
#15 by DimaWert
в 7.7. был метод ИБ создания, а в 8, по ссылке нельзя понять ИБ создания, соотвественно и префикса там нет
#16 by Живой Ископаемый
2 все верно... Но задача не то чтобы космических масштабов
#17 by sda553
Хотя вот пришла мысль: Сделать таблицу из колонок СтарыйГУИД и НовыйГУИД 1. загрузить xml как текст 2. Найти все различные ГУИД упоминающиеся в тексте и записать их в таблицу в колонку СтарыйГУИД 3. Каждой строке этой таблице присвоить в колонку НовыйГУИД какой то новый ГУИД 4. Сделать текстовую замену по всей XML для каждой строки таблицы старого ГУИДа новым ГУИДом
#18 by DimaWert
да наверное придется через  конвертацию, если нет способа изменить одним махом все ссылки в базе, то ничего дельного не получится
#19 by Живой Ископаемый
да короче: a763cfbb-f94f-4c67-8e13-0e96a3a7f353 пример уида. если ты заменишь во всех уидах вторую группу, какой бы она ни была на например ffff - то все прокатит. Вопрос только в том, что в разных ссылках эта группа разная, поэтому у тебя должно быть что-то более интелектуальное чем просто найти и заменить.
#20 by sda553
+ На всякий случай сохранить таблицу соответствия ГУИДа для возможного последующего отката
#21 by DimaWert
вопрос в том за что отвечает эта вторая группа, это может быть другой элемент,а может быть и другой вид справочника., спасибо за обсуждение, буду делать всетаки через КД
#22 by Живой Ископаемый
вот например: то есть обращай внимание - в кассах есть ссылка на валюту(валюаденежныхсредств) - объект, который идет первым Если ты сделаешь то есть вторую группу во всех УИДах ты заменишь на "ffff" - они по прежнему останутся уникальными, но ссылочная связь при этом не потеряется...
#23 by Живой Ископаемый
2 она АБСОЛЮТНО НИ ЗА ЧТО НЕ отвечает. серьезно.
#24 by Живой Ископаемый
короче, слабак... спустя где-то час сам попробую
#25 by Axel2009
а что там сложного в КД?
#26 by DimaWert
почему сразу слабак?, просто сделал выбор, я пока не вижу алгоритма как заменять этот кусок, если он ни за что не отвечает это конечно меняет дело, но вот как его заменить я пока придумать не могу.
#27 by Живой Ископаемый
2 попробовал бы на каком-то одном объекте. алгоритм по замене будет несложный, но к сожелению придется заюзать РегЭксп... другого способа не вижу. :) но я могу и ошибаться
#28 by DimaWert
вот я и прикинул , куда я больше времени угрохаю, вариант с КД мне кажется попроще будет.
#29 by Живой Ископаемый
конечно проще, мы тебе это сразу сказали. :)
#30 by DimaWert
так я сразу и согласился
#31 by DimaWert
;-)
#32 by sda553
#33 by Живой Ископаемый
Ну... короче получается, но больно уж кропотливая работа: может и сгодится, но если объектов много, и какие-то нужно дублировать, а какие-то нет (счета Плана Счетов, субконты), то тоже дофига работы... Так что КД проще. :)
Тэги:
Ответить:
Комментарии доступны только авторизированным пользователям

В этой группе 1С