КД: Выгрузить с произвольным UID #716674


#0 by Ymryn
Мое почтение. Итак, цель: выгрузить объект с заранее установленным UID'ом (отличным от UID'а объекта). Понимаю что лучше всего будет сделать через Структуру, но уже под конец рабочего дня торможу и никак не могу понять какой должен быть параметр. Заранее ответ на вопрос: "А на фейхоа?" Была выгрузка номенклатуры из Базы А в базу Б. Выгрузка шла через ком соединение со связью через регистр соответствий. Сейчас планируется сделать иной обмен из базы А в базу У. Причем в базе У номенклатура из базы А (точнее совпадает по UID'ам). Хочется сделать через xml, подрубаться в базу A получать объект, его UID и выгружать уже номенклатуру из базы Б, с UID'ом базы А. Вот как-то так. Теперь можно возмущаться, писать, что я криворукий прог и пытаюсь выстрелить себе в ногу и прочее. За предложения по оптимизации или непосредственно по решению проблемы - признателен. :)
#1 by Ymryn
поправка. Уже устал и косячу. :(   Причем в базе У номенклатура из базы Б (точнее совпадает по UID'ам). Хочется сделать через xml, подрубаться в базу Б получать объект, его UID и выгружать уже номенклатуру из базы А, с UID'ом базы Б. Вот как-то так.
#2 by Йохохо
пвд произвольная выборка, подключаемся к А из Б и заполняем ссылками КоллекцияОбъектов
#3 by Ymryn
а как выгружать по ссылке?
#4 by Ymryn
а хотя понял, в целом очень хорошая идея. Спасибо, попробую реализовать.
#5 by Ymryn
а я правильно понимаю, получается, что com-объекты можно в качестве источников для выгрузки использовать?
#6 by Йохохо
я не видел) можно ТЗ заполнять структурами идентичными номенклатуре запросом через ком, можно гуид передавать параметром в поляпоиска и создавать объект
#7 by acsent
выгрузить в параметр, установить в передзаписью
#8 by К_Дач
У тебя есть база А. Из нее ты хочешь выгружать номенклатуру в базу У, но так, чтобы при этом ГУИД у элемента подставлялся из базы Б? Верно? Если так, то перед такой выгрузкой заполни сначала в базе А регистр сведений СоответствияОбъектовИнформационныхБаз. Там есть поле УникальныйИдентификаторПриемника. Напиши предварительно загрузку из базы Б в базу А, которая найдет номенклатуру по полям поиска (код, наименование, артикул и т.д.) и заполнит этот регистр, а потом уже из базы А пиши выгрузку в базу У, в обработчике ПКО "после выгрузки" пиши запрос к регистру и подменяй значение ссылки...
#9 by Ymryn
я правильно понимаю, что предложение выгружать в параметр структуру соответсвий uid базы Б - код базы А. И уже перед записью в базе У вычислять по этой таблице необходимый объект?
#10 by Ymryn
я не хочу заполнять регистр в базе А. Он уже заполнен в базе Б и там ведется. Менять место его ведения не хочется, хочется решить вопрос хитрой системой обмена и оставить текущий обмен А - Б неизменным.
#11 by Ymryn
+ но за предложение спасибо, в иной ситуации действительно считал бы самым наилучшим решением.
#12 by Ymryn
вот параметр для полей поиска, если честно не совсем понял. Это закладка "Поиск объектов в приемнике"? (К сожалению мало ей пользовался, поэтому не совсем представляю, как воспользоваться. Если решение именно там, достаточно сказать да, остальную макулатурку на почитать, уже сам найду :) ).
#13 by К_Дач
Ну хорошо, вот тебе еще вариант. Заполни это регистр в базе У и подменяй ссылку на этапе загрузки... Если не хочешь трогать регистр, рассчитывая его задействовать в других ситуациях - то вот еще один вариант (сам как раз сейчас делаю такой обмен). Источник - Приемник. В Приемнике хранится таблица соответствия объектов. Объект А: ссылка, поля поиска ----> Объект Б, ссылка, поля поиска. Таблица хранится в виде таблицы значений в ресурсе любого объекта метаданных с типом ХранилищеЗначения. Модифицируем обработку загрузки, добавляем получение этой таблицы и ее загрузку в ТЗ в оперативную память. Далее во всех обработчиках загрузки можешь обращаться к этой ТЗ по имени объявленной переменной, искать вхождения и делать подмены. Вуаля.
#14 by К_Дач
Обработчик "Поля поиска": СсылкаНаОбъект - ссылка на результирующий объект. Если в обработчике установить данную ссылку (не пустую) то программа ее запомнит и поиск на этом будет считать успешно завершенным
#15 by Ymryn
в У тоже не хочу. Не хочу ничего дополнительно заполнять. Все уже заполнено. Хочу научиться это объединять и использовать в базе А :) Второй вариант мне чем-то . О! Интересно, покопаюсь в этом направлении. Можно ли ссылку на несуществующий объект (т.е сугубо UID) так установить. Спасибо большое.
#16 by Ymryn
чем-то напомнил.
#17 by К_Дач
У меня сейчас аналогичная (только более сложная) задача. Есть Источник и Приемник. В Приемнике есть ряд объектов и элементов, имеющих другие отличные от элементов Источника реквизиты (по которым производится поиск), но имеющие абсолютно тот же самый прикладной и практический смысл. То есть нужно при загрузке научить программу Иванова Иван Иваныча конвертировать в Иванова И.И., а "хлеб мягкий вкусный" в "хлеб свежий вкусный". Сделал так: предварительно выгружаю из Источника все такие объекты, НЕ СОЗДАЮ их в Приемнике, а заполняю ими (всеми, которые не нашлись! по полям поиска) таблицу соответствия. Далее пользователь открывает формочку и проставляет соответствия Иван Иванычей и хлебов, жмет записать и рапортует мне, что все готово. Далее дело техники, загружаем, ловим, подменяем.
#18 by Ymryn
Спасибо еще раз. Завтра на свежую голову попробую это применить на практике.
Тэги: 1С 8
Ответить:
Комментарии доступны только авторизированным пользователям

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