Странное поведение поиска по УИДу через ОЛЕ. Добрый день. Делаю так: строкаТип = АОбъект.Метаданные().ПолноеИмя(); поз = Найти(строкаТип, "."); типСтрокой = мСоответствияЕдЧМнЧ[Лев(строкаТип, поз - 1)]; лЗнач=мБаза[типСтрокой][Сред(строкаТип, поз +1)].ПолучитьСсылку(мБаза.NewObject("УникальныйИдентификатор", Сокрлп(Выборка.УИД))); лПредставление=мБаза.String(лЗнач); если Найти(нрег(лПредставление),"объект не найден")>0 тогда сообщить("для "+строкаТип+" "+строка(АОбъект)+" кривое соотвествие "+лПредставление,СтатусСообщения.Важное); сообщить("ИБ="+строка(мВнешняяБаза),СтатусСообщения.Внимание); сообщить("УИД="+Выборка.УИД,СтатусСообщения.Внимание); возврат Неопределено; конецесли; и почему то для существующих объектов возвращает ненайденные ссылки типа ""<Объект не найден> (62:be7fbcee7b4e9a0c11e3840e470b6b86)"" То что реально объект в базе есть видно по другому участку кода: Запись=РегистрыСведений.шапСоответствиеВыгружаемыхОбъектов.СоздатьМенеджерЗаписи(); Запись.ИБ=мВнешняяБаза; Запись.Объект=АОбъект; Запись.УИД=лОбработка.УИД; Запись.НазваниеОбъектаВПриемнике=лОбработка.ОбъектВБазе; Запись.Записать(); строкаТип = АОбъект.Метаданные().ПолноеИмя(); поз = Найти(строкаТип, "."); типСтрокой = мСоответствияЕдЧМнЧ[Лев(строкаТип, поз - 1)]; лЗнач=мБаза[типСтрокой][Сред(строкаТип, поз +1)].ПолучитьСсылку(мБаза.NewObject("УникальныйИдентификатор", лОбработка.УИД)); возврат лЗнач; в этом случае возвращает нормальное значение при том же УИД-е (конкретно проверил в отладчике и сравнил их). Подскажите пожалуйста, как лечить? |
Да кто же тебя знает чего там у тебя живёт, например, в Выборка.УИД ЗЫ А чего так сложно-то? Базы совпадают по именам объектов метаданных, но идентификаторы этих объектов отличаются? Если базы совпадают с точностью до метаданных мБаза.ЗначениеИзСтрокиВнутр(ЗначениеВСтрокуВнутр(СсылкаЗдесь)) |
раньше префиксИБ ещё вроде был из кода не понятно что за платформа |
Текущее время: 23:36. Часовой пояс GMT +3. |