|
КД: перенос справочника в несколько справочников |
☑ |
0
GlebHappy
30.03.15
✎
13:58
|
И снова здраствуйте!
Возникла вновь креативная задача:
В базе-источнике есть справочник, обзовем его для простоты СправочникА
В базе-приемнике есть три справочника - СправочникБ1, СправочникБ2, СправочникБ3
Возникла необходимость при переносе данных раскладывать элементы из СправочникА в элементы справочников СправочникБ1/2/3 в зависимости от значения реквизита ВидОбъекта.
Что я придумал:
1. Нарисовал три ПКО - А_Б1, А_Б2, А_Б3
2. Нарисовал буферное правило А_Б с обработчиком ПередВыгрузкой такого вот вида:
Если Не Источник.Предопределенный Тогда
Если Источник.ВидОбъекта = 1 Тогда
ИмяПКО = "А_Б1";
ИначеЕсли Источник.ВидОбъекта = 2 Тогда
ИмяПКО = "А_Б2";
Иначе
ИмяПКО = "А_Б3";
КонецЕсли;
КонецЕсли;
Маленький нюанс - буферное правило А_Б имеет типы источника и приемника А и Б1 соответственно.
Что получаем в итоге - объекты, соответствующие правилу А_Б1, переносятся нормально; остальные - не переносятся, такое ощущение, что правила А_Б2 и А_Б3 игнорируются.
В чем может быть грабля?
|
|
1
Альбатрос
30.03.15
✎
14:03
|
Может через произвольную выгрузку и выгрузить по правилу?
|
|
2
DrShad
30.03.15
✎
14:04
|
(1) +1
|
|
3
13_Mult
30.03.15
✎
14:05
|
Вместе с КД идет пример, вроде такой есть
|
|
4
GlebHappy
30.03.15
✎
14:23
|
(1) Спасибо за совет, но вот в чем нюанс: выгрузить сам справочник с раскладыванием в три других - нет проблем. Но он ещё по ссылкам выгружается во многих других документах и это нужно именно как-то правилами конвертации объектов разруливать.
Можно, конечно, конструкцию типа приведенной в первом посте рисовать в каждом правиле конвертации свойства, но хотелось бы сделать универсальное правило, которое будет отрабатывать при выгрузке по ссылке любого объекта типа СправочникСсылка.СправочникА
|
|
5
DrShad
30.03.15
✎
14:42
|
(4) и как это противоречит (1)?
|
|
6
GlebHappy
30.03.15
✎
14:45
|
(5) Ну как я понимаю, там идет речь про выгрузку справочника через ПВД - там всё хорошо и нормально работает)
А мне, получается, надо из одного ПКО вызывать на выбор одно из трех других, а по какой-то причине вызывается всегда только одно: не соответствующие ему объекты тупо не выгружаются.
|
|
7
DrShad
30.03.15
✎
14:49
|
(6) в типовых правилах такое реализовано - изучайте, все работает
|
|
8
GlebHappy
30.03.15
✎
14:56
|
(7) А можно более точно меня целеуказать?))) Демо конвертации в наличии имеется.
|
|
9
DrShad
30.03.15
✎
14:58
|
(8) там где по ссылке в перед выгрузкой указываешь ПВД и всего-то делов
|
|
Глупец, лишенный способности посмеяться над собой вместе с другими, не сможет долго выносить программирование. Фредерик Брукс-младший