|
Конвертация |
☑ |
0
repin_mike
18.12.18
✎
09:15
|
В базе-источнике есть Документ, в ПВД описаны только эти документы без справочников.
У Документа один-единственный реквизит Справочник А с одним реквизитом, тип у этого реквизита - справочник Б.
Справочник Б имеет много реквизитов, в том числе ссылочных, и много табличных частей.
В базе-приёмнике есть такой же самый документ, и у него тоже один реквизит-справочник, который полностью повторяет справочник Б из источника.
Задача: нужно чтобы перегрузились документы, и в документах базы-приёмника у всех элементов справочника Б был такой же гуид, как и у справочника А в документе из источника.
Пожалуйста подскажите как бы вы решали такую задачу, на уровне детсада, я в КД не особо. Промучался вчера весь день. Если конвертировать из Б в Б, то всё замечательно, но я не нашёл способа подменить уникальный идентификатор на нужный из А. Если конвертировать из А в Б, то гуид правильный, но непонятно откуда взять данные.
|
|
1
Glup0sti
18.12.18
✎
11:20
|
Способ 1
В единственном ПКС (ПКО СправочникаБ - СправочникаБ) документа Перед выгрузкой:
Значение = Источник.РеквизитСправочникаА.РеквизитСправочникаБ;
В ПКО СправочникаБ - СправочникаБ снимаешь все поля поиска и поиск делаешь только по полям поиска:)(узел ссылки создаешь самостоятельно в обработчике Перед выгрузкой):
УзелКоллекцииСвойств.ЗаписатьНачалоЭлемента("Свойство");
УстановитьАтрибут(УзелКоллекцииСвойств, "Имя", "{УникальныйИдентификатор}");
Если НЕ ВыполнитьОбменДаннымиВОптимизированномФормате Тогда
УстановитьАтрибут(УзелКоллекцииСвойств, "Тип", "Строка");
КонецЕсли;
одЗаписатьЭлемент(УзелКоллекцииСвойств, "Значение", ГУИД_А);
УзелКоллекцииСвойств.ЗаписатьКонецЭлемента();
Способ 2:
делаешь ПКО СправочникаА - СправочникаБ
Добавляешь все нужные ПКС и в обработчик перед выгрузкой:
Значение = Источник.РеквизитСправочникаБ[ИмяРеквизита];
|
|
2
repin_mike
18.12.18
✎
11:43
|
(1) Спасибо
Я сейчас пытаюсь сделать по способу
В ПКО справочникБ-СправочникБ добавил параметр, в него при выгрузке пишу уникальный идентификатор справочника А. А после загрузки соответственно пытаюсь у созданного Объект подменить уникальный идентификатор из параметра. Такая схема жизнеспособна? У меня как раз подмена гуида не получается пока.
|
|
3
Glup0sti
18.12.18
✎
11:43
|
Стоп, самый главный вопрос КД 2 или 3?
я написал для кд 2
|
|
4
Glup0sti
18.12.18
✎
11:47
|
(2) подменять ты должен узел ссылки в xml, либо
способ 3:
с параметром в обработчике "поля поиска" искать по гуид и после загрузки устанавливать гуид для новых
|
|
5
repin_mike
18.12.18
✎
11:50
|
(4) КД2
Метод в (2) нерабочий, у справочника Б уид подменился, но в самом документе ссылки стоят неправильные
|
|
6
Glup0sti
18.12.18
✎
11:58
|
(5) Прочитай внимательнее, какие действия нужно сделать, чтобы в ПКО СправочникБ - СправочникБ подменить ссылку на справочник А (способ 1)
|
|
Требовать и эффективности, и гибкости от одной и той же программы — все равно, что искать очаровательную и скромную жену... по-видимому, нам следует остановиться на чем-то одном из двух. Фредерик Брукс-младший