|
Формирование объекта по UUID | ☑ | ||
---|---|---|---|---|
0
OnCheck
16.04.12
✎
08:33
|
Выгрузил объект из одной БД, загружаю в другую. Для создания объекта по UUID написал функцию:
Функция ПолучитьОбъектПоUUID(UUIDСтрока, Тип, Создавать = Ложь) Перем Ссылка; МетаОбъект = Метаданные.НайтиПоТипу(Тип); ПолноеИмяОбъекта = МетаОбъект.ПолноеИмя(); ТипОбъекта = Лев(ПолноеИмяОбъекта,Найти(ПолноеИмяОбъекта,".")-1); ИмяОбъекта = МетаОбъект.Имя; Если Не UUIDСтрока = "" Тогда UUID = Новый УникальныйИдентификатор(UUIDСтрока); Если ТипОбъекта = "Справочник" Тогда Ссылка = Справочники[ИмяОбъекта].ПолучитьСсылку(UUID); КонецЕсли; Иначе Возврат Справочники[ИмяОбъекта].ПустаяСсылка(); КонецЕсли; Если ОбъектБДСуществует(Ссылка) Тогда Возврат Ссылка; КонецЕсли; Если Создавать Тогда Если ТипОбъекта = "Справочник" Тогда НоваяСсылка = Ссылка; НовыйОбъект = Справочники[ИмяОбъекта].СоздатьЭлемент(); КонецЕсли; НовыйОбъект.УстановитьСсылкуНового(НоваяСсылка); Возврат НовыйОбъект; КонецЕсли; Возврат Неопределено; КонецФункции // ПолучитьОбъектПоUUID но в БД источнике UUID = 5e600601-844f-11e1-9cff-000a5e4479d7 а в БД приемнике UUID = 3ea3592b-8776-11e1-afb7-000a5e4479d7 Поясните, пожалуйста, причину? |
|||
1
Рэйв
16.04.12
✎
08:35
|
UUIDСтрока пустая
|
|||
2
Рэйв
16.04.12
✎
08:35
|
оно тогда создает уид по собсвенному разумению
|
|||
3
OnCheck
16.04.12
✎
08:36
|
нет
|
|||
4
Лефмихалыч
16.04.12
✎
08:36
|
(3) да
|
|||
5
Лефмихалыч
16.04.12
✎
08:37
|
+(4) или UUIDСтрока не равна "", но и не содержит ГУИДа
|
|||
6
OnCheck
16.04.12
✎
08:37
|
(2)(4) проверяю :-)
|
|||
7
OnCheck
16.04.12
✎
08:39
|
(5) UUIDСтрока = 5e600601-844f-11e1-9cff-000a5e4479d7
она же и не должна содержать GUID, она же UUID строка! |
|||
8
OnCheck
16.04.12
✎
08:39
|
+(7) UUIDСтрока = "5e600601-844f-11e1-9cff-000a5e4479d7"
|
|||
9
OnCheck
16.04.12
✎
08:40
|
любопытен тот факт, что совпадают только 3 и 5 подстроки.
|
|||
10
Рэйв
16.04.12
✎
08:40
|
(8)что ты тут воздух темпиратуришь?
ты проверь отладчиком, у тебя вообще на UUID = Новый УникальныйИдентификатор(UUIDСтрока); заходит? |
|||
11
OnCheck
16.04.12
✎
08:42
|
(10) я же говорю что заходит!
|
|||
12
Рэйв
16.04.12
✎
08:43
|
(11) тогда диагноз ясен.
твоя сстрока в UUIDСтрока - не съедобна для создания нового объекта. Разбирайся |
|||
13
OnCheck
16.04.12
✎
08:44
|
(12) UUID же тоже создается!
и Ссылка = Справочники[ИмяОбъекта].ПолучитьСсылку(UUID) отрабатывает |
|||
14
Рэйв
16.04.12
✎
08:47
|
(13)она отрабатывает ВСЕГДА. Только вот если правильно, то на текущую ссылку позиционируеися. а если не правильно - считает это новой ссылкой.
|
|||
15
Лефмихалыч
16.04.12
✎
08:54
|
Кэш конфигурации продуй
|
|||
16
OnCheck
16.04.12
✎
09:19
|
(15) продул - не помогло
|
|||
17
OnCheck
16.04.12
✎
09:40
|
вот еще что:
встаю отладчиком на НовыйОбъект.УстановитьСсылкуНового(НоваяСсылка) смотрю что в НоваяСсылка, там НоваяСсылка |<Объект не найден> (94:9cff000a5e4479d711e1844f5e600601) |СправочникСсылка.ПодразделенияОрганизаций но в НовыйОбъект.Ссылка пусто, а в НовыйОбъект.Ссылка.УникальныйИдентификатор() |00000000-0000-0000-0000-000000000000 |УникальныйИдентификатор но ГУИД тот что нужно, затем для полученного объекта заполняю реквизиты, а так же владельца и родителя, сохраняю, тут генерится новый ГУИД интересен тот факт, что 3 и 5 подстроки равнй исходному UUID. |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |