Конвертация: подмена уникального идентификатора #685292


#0 by Pro_1c_podcast
Друзья, всем привет. Если я не нашел уже существующую ветку по данному вопросу, прошу прощения и заранее благодарен за ссылку. Ситуация следующая: в конвертации данных при загрузке при поиске объекта  по УИДу нужно подменить УИД идентификатора. Кто-то сталкивался с таким? Как решали?
#1 by Pro_1c_podcast
*не идентификатора, а источника.
#2 by kosts
А новый идентификатор в какой базе становиться известен в источнике или в приемнике?
#3 by Pro_1c_podcast
в источнике уже все информация есть.
#4 by NcSteel
#5 by Aleksey
Бред какой то, что значит менять УИД? Т.е. был уид  22345200-abe8-4f60-90c8-0d43c5f6c0f6, по какому правилу он должен поменяться?
#6 by Pro_1c_podcast
Нет, в источнике УИД менять не нужно. Но нужно в приемник передать другой УИД,  отличный от источника. Спасибо. Судя по той ветке, простого решения нет.
#7 by echo77
Другой - это какой другой? У вас в источнике есть другой? Обмен V8 => V8 ?
#8 by Aleksey
да пофиг, откуда "другой" возъмётся? А по сабжу, юзай поля поиска, в  них сила
#9 by Pro_1c_podcast
, В источнике есть поле УИДПриемника. Там содержится УИД, который должен передаваться в приемник и устанавливаться в качестве уникального идентификатора для создаваемого объекта. Не очень понимаю, как поля поиска помогут мне создать новый объект по этой ссылке, а при повторной выгрузке найти объект.
#10 by Aleksey
легко и непренуждено 1. передавай значение в качестве параметра или в качестве поля комментарий 2. В полях поисках вручную ищи свой объект, и если не нашел сам создавай нужный с нужным УИД 3. ... 4. Profit!!!
#11 by Pro_1c_podcast
Должно прокатить. По результатам отпишусь.
#12 by Pro_1c_podcast
Кажется, получилось. Логика такая: 1. В параметр передаем УИД. Ставим ему флаг Поиск. Больше поиска нигде не стоит - по логике моей задачи синхрониззация только по УИД Если Не ОбъектНайден Тогда
#13 by Aleksey
Нет не так
#14 by Pro_1c_podcast
Ваше сообщение не полностью дошло. =) только "Нет не так".
#15 by Aleksey
Да сначало подумал что можно проще, а потом вспомнил, что не получится А по факту запрос лишний СсылкаНаОбъект = Справочники.КонтДоговораСтрахования.ПолучитьСсылку(УИД);
#16 by Pro_1c_podcast
А как проверить что по ссылке я получил именно Элемент, а не новую ссылку?
#17 by Aleksey
Либо как вариант И тогда не надо при загрузки ичего искать
#18 by Aleksey
а тебе не пофиг? СсылкаНаОбъект - ссылка на результирующий объект. Если в обработчике установить данную ссылку (не пустую) то программа ее запомнит и поиск на этом будет считать успешно завершенным Получается что он будет считать что объект не найден, если он ничего не нашел. Ну а далее твой код Если Не ОбъектНайден Тогда
#19 by Pro_1c_podcast
Ну с одной стороны согласен. Но все же мне больше нравится проверку делать и ПриЗагрузке создавать. Не люблю записывать документ а) пустой б) два раза Сам запрос кстати из обработки обмена и выдрал.
#20 by Aleksey
СправочникСсылка.<Имя справочника> (CatalogRef.<Имя справочника>) Пустая (IsEmpty) Синтаксис: Пустая Возвращаемое значение: Тип: Булево. Истина - ссылка не указывает ни на какой объект (пустая ссылка); Ложь - в противном случае. Описание: Определяет, является ли ссылка пустой или нет. Доступность: Тонкий клиент, веб-клиент, сервер, толстый клиент, внешнее соединение, мобильное приложение(сервер). СтрокаУИД = ПараметрыОбъекта["УИДПриемника"];
#21 by Pro_1c_podcast
Хороший вариант. Только он не работает. Если создавать объект с помощью УИД: То метод Пустая возвращает ЛОЖЬ
Тэги: 1С 8
Ответить:
Комментарии доступны только авторизированным пользователям