|
Конвертация данных, изменение GUID-а. | ☑ | ||
---|---|---|---|---|
0
бомболюк
17.01.12
✎
14:54
|
Добрый день.
Подскажите пожалуйста, как то можно при выгрузке данных подменить значение уникального идентификатора на свой? |
|||
1
ЧеловекДуши
17.01.12
✎
14:55
|
Можно, во время, когда еще не загрузил файл, а он уже выгружен :)
|
|||
2
ЧеловекДуши
17.01.12
✎
14:55
|
+ Ну или при формировании файлов подменяешь ГУИД на свой.
|
|||
3
ЧеловекДуши
17.01.12
✎
14:55
|
+ И так же можно это делать во время загрузки.
|
|||
4
бомболюк
17.01.12
✎
14:56
|
да мне бы обойтись возможностями конвертации хотелось бы
|
|||
5
ЧеловекДуши
17.01.12
✎
14:56
|
Вот только беда в том, что как ты сопоставишь гуиды?
|
|||
6
бомболюк
17.01.12
✎
14:56
|
что то там подменять в xml-файле после выгрузки не охота
|
|||
7
бомболюк
17.01.12
✎
14:56
|
(5) а у меня есть табличка ;-)
|
|||
8
ЧеловекДуши
17.01.12
✎
14:57
|
(4)Тогда какая разница, какой Гуид?
|
|||
9
бомболюк
17.01.12
✎
14:58
|
предыстория: 2 базы сливаются в одну. Эти 2 базы раньше были одной, потом одну скопировали и начали вторую. В итоге гуиды в основном одни и теже, а на разные гуиды есть таблица соответствия элементов в разных базах.
|
|||
10
ЧеловекДуши
17.01.12
✎
14:59
|
Бред несу. Гуид же присваивается объекту во время его создания.
Т.е. по сути он системный. |
|||
11
бомболюк
17.01.12
✎
14:59
|
(10) ну нет, его можно назначит для нового объекта
|
|||
12
ЧеловекДуши
17.01.12
✎
15:00
|
||||
13
бомболюк
17.01.12
✎
15:01
|
+(9) ну и значит сначала выгружается инфа из одной базы, а потом из другой. и чтоб правила не менять для второй выгрузки мне только и надо решить задачу в сабже, иначе надо правила менять а лень.
|
|||
14
Aleksey
17.01.12
✎
15:01
|
Штатно - нет
|
|||
15
ЧеловекДуши
17.01.12
✎
15:01
|
||||
16
cw014
17.01.12
✎
15:02
|
(13) Кури в сторону обработчиков
|
|||
17
бомболюк
17.01.12
✎
15:02
|
(16) курил уже, может подскажешь каких?
|
|||
18
cw014
17.01.12
✎
15:02
|
(13) Как вариант отключаешь поиск и подменяешь УзелСсылки
|
|||
19
бомболюк
17.01.12
✎
15:03
|
(18) есть пример?
|
|||
20
Рэйв
17.01.12
✎
15:05
|
(0)А зачем?
|
|||
21
cw014
17.01.12
✎
15:05
|
(20) смотри (9)
|
|||
22
cw014
17.01.12
✎
15:06
|
(19) Если дождешься - попробую накинуть
|
|||
23
бомболюк
17.01.12
✎
15:07
|
я тута долго ;-) спасибо тебе добрый человек
|
|||
24
Aleksey
17.01.12
✎
15:08
|
(17)
Обработчики "Правила конвертации объектов" При загрузке Событие выполняется после попытки идентификации. В случае успешной синхронизации доступен найденный объект. В противном случае его значение Неопределено. Можно произвести произвольную инициализацию, заполняемого данными объекта. Параметры: ОбъектНайден - Булево. Если значение параметра равно Ложь, то объект не идентифицирован, то есть не найден в информационной базе Объект - Произвольный. Загружаемый, модифицируемый объект, созданный по ссылке или найденный в информационной базе. Если способ идентификации объекта в файле не указан (т.е. отсутствует узел "Ссылка"), то параметр содержит значение Неопределено. В этом случае в обработчике возможна произвольная инициализация загружаемого объекта, в противном случае, объект будет создан автоматически. |
|||
25
бомболюк
17.01.12
✎
15:12
|
(24) да, судя по описанию это решит проблему. Спасибо за наводку.
|
|||
26
cw014
17.01.12
✎
16:53
|
(23) Если еще тут, то лови:
1. Отключаешь все ключи поиска 2. "При выгрузке" объекта ставишь такой примерно код: УзелСсылкиXML = СоздатьУзел("Ссылка"); УстановитьАтрибут(УзелСсылкиXML,"Нпп",УзелСсылки); УзелГуид = ДобавитьУзел(УзелСсылкиXML,"Свойство"); УстановитьАтрибут(УзелГуид,"Тип","Строка"); УстановитьАтрибут(УзелГуид,"Имя","{УникальныйИдентификатор}"); одЗаписатьЭлемент(УзелГуид,"Значение", "00000000-0000-0000-0000-000000000000"); УзелСсылкиXML.ЗаписатьКонецЭлемента(); // тут можно записать дополнительные поля поиска кроме гуида УзелСсылкиXML.ЗаписатьКонецЭлемента(); УзелСсылки = УзелСсылкиXML.Закрыть(); ДобавитьПодчиненный(Приемник,УзелСсылки); 3. "После выгрузки" объекта ставишь код: ВыгруженныеОбъекты[КлючВыгружаемыхДанных] = УзелСсылки; И будет тебе счастье |
|||
27
бомболюк
18.01.12
✎
09:17
|
(26) спасибо, попробую. что то первый вариант у меня не заладился. не понял, как в ПриЗагрузке получить старый ГУИД, который надо заменить на другой из таблицы соответствия.
|
|||
28
Aprobator
18.01.12
✎
09:28
|
(27) дык куда нить записать его при выгрузке и ключик придумать для поиска.
|
|||
29
GenV
18.01.12
✎
09:30
|
||||
30
cw014
18.01.12
✎
09:32
|
(27) В xml объект можно вставить произвольную ветку. Главное ее отработать при загрузке, что бы не отвалилась на загрузке (простите мой каламбур)
|
|||
31
Aprobator
18.01.12
✎
09:35
|
+(30) кстати - если из 8 ки выгрузка то элементарно. В КД есть передача значения в параметр. Лепишь там значение = Твой ГУИД, имя праметра. При загрузке можно достать из ПараметрыОбъекта[ИмяПараметра]. Из 7 - ки придется прописывать руками.
|
|||
32
GenV
18.01.12
✎
09:38
|
(31) Все можно сделать проще )
|
|||
33
ЧеловекДуши
18.01.12
✎
09:38
|
Больше всего поражает, а накой, Автору, нужен старый гуид, если он по сути только идентифицирует загружаемые данные.
При этом гуид может и совпасть, т.к. автор уже писал, что базы раньше были общими. Т.е. ему надо чисто подставить элементы по определенному признаку + Создать новые обекты и соответственно у нового будет новый гуид, и далее только нужно помнить о новом и создать где нить таблицу соответствия :) ...но автор истинный программист, он пойдет по граблям через гору :) |
|||
34
GenV
18.01.12
✎
09:40
|
(33) Правильно. Ему просто сразу нужно указывать для элементов новый УИД. А КД сама должна или найти или создать элемент.
|
|||
35
Aprobator
18.01.12
✎
09:47
|
(33) дык таблица ж соответствия для поиска. Не хочется ему использовать стандартные поля поиска. Поскольку после того как базы разъехались мало ли что там происходило с теми же ключевыми полями код и наименование (у справочников например), а свести все хочется в то, что было.
(32) может быть ) Я се вооще на КД сваял загрузку из экселя ))) |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |