|
Конвертация данных - один в несколько | ☑ | ||
---|---|---|---|---|
0
Gangar
20.12.18
✎
21:38
|
Вечер добрый, уважаемые.
Имею вопрос и прошу помощи в решении. Дано: -некий документ в источнике, например "ВозвратОтПокупателя"; -у этого документа есть некий реквизит, например "ДокументОтгрузки", который находится в табличной части; -в приемнике есть такой же документ, но у него реквизит "ДокументОтгрузки" не в табличной части, а в реквизитах самого документа; -в конвертации данных, в ПВД, в обработчике ПередВыгрузкой запросом формируются структуры, которые передаются в ПКО через ВыгрузитьПоПравилу; Вопрос: как можно в ПКО, в обработчике ПриЗагрузке получить информацию из структуры, которая сформировалась в ПВД? Пока нашел решение через чтение файла выгрузки, но, по моему мнению, оно не очень красивое. |
|||
1
Черный маклер
20.12.18
✎
21:51
|
двигайся в направлении
-в конвертации данных, в ПВД, в обработчике ПередВыгрузкой запросом формируются структуры, которые передаются в ПКО через ВыгрузитьПоПравилу; т.е. в одном ПВД можно ВыгрузитьПоПравилу(Выборка.Ссылка, ,ВходящиеДанные1 , , "Документ1") ВыгрузитьПоПравилу(Выборка.Ссылка, ,ВходящиеДанные2 , , "Документ2") |
|||
2
Gangar
20.12.18
✎
21:59
|
(1) и зачем? тип источника - один, приемника - тоже один.
в ПВД у меня: Пока ВыборкаПоДокументу.Следующий() Цикл ...//тут формируется структура ИсходящиеДанные ВыггрузитьПоПравилу(,,ИсходящиеДанные,,"ДокументПриемник"); КонецЦикла; |
|||
3
Fragster
гуру
20.12.18
✎
22:01
|
самый простой вариант сделать при выгрузке
|
|||
4
Gangar
20.12.18
✎
22:04
|
(3) есть нужда в приемнике перед загрузкой проверять наличие записей в Регистре сведений, на предмет загруженных ранее документов, по связке УИДИсточкика + УИДДокументОтгрузки
|
|||
5
Черный маклер
21.12.18
✎
00:12
|
(0) ...как можно в ПКО, в обработчике ПриЗагрузке получить информацию из структуры, которая сформировалась в ПВД?
можно получать параметр, который мб массивом |
|||
6
Gangar
21.12.18
✎
00:24
|
(5) я в КД не силен, но СП читать умею
Обработчики "Правила конвертации объектов" При загрузке Параметры: ОбъектНайден - Булево. Объект - Произвольный. НеЗамещатьОбъект - Булево. ОбъектМодифицирован – Булево. КАК?! |
|||
7
Черный маклер
21.12.18
✎
09:32
|
(6) в ПВД
ВыгрузитьПоПравилу(Выборка.Ссылка, ,ВходящиеДанные1 , , "Документ1") в структуру ВходящиеДанные1 что-то кладешь а в ПКО это что-то передаешь в свой Параметр |
|||
8
Gangar
21.12.18
✎
09:53
|
(7) я же в (2) об этом писал, а в (4) написано зачем мне это надо
|
|||
9
Optan
21.12.18
✎
09:58
|
(0) В ПКС заводишь параметр. В нем в событии перед выгрузкой его заполняешь по Источнику (ПКО которое получило данные из ПВД)
Например:
А в событии ПКО при загрузке разбираешь:
|
|||
10
Gangar
21.12.18
✎
10:10
|
(9) в событии ПриЗагрузке в ПКО ПараметрыОбъекта недоступно (6)
|
|||
11
Optan
21.12.18
✎
10:17
|
(10) Ошибся - ПослеЗагрузки конечно же.
|
|||
12
Gangar
21.12.18
✎
10:22
|
(11) зачем мне это надо я писал в (4). ПослеЗагрузки не подходит
|
|||
13
Optan
21.12.18
✎
10:30
|
(12) Отказ же там еще срабатывает. Не хочешь не записываешь или записываешь как тебе надо.
|
|||
14
Черный маклер
21.12.18
✎
10:35
|
(10) видимо мы про разные параметры говорим
открой любое ПКС и смотри - ПолучитьЗначениеИзВходящихДанных - ПередаватьДанныеВПараметр |
|||
15
Gangar
21.12.18
✎
11:07
|
(14) В базе приемнике есть РС, с измерениями GUIDИсточкика (где хранится GUID документа из источника), УИДИсточника_расш (где хранится дополнительный GUID документа из источника, в данном случае это GUID ДокументаОтгрузки), СсылкаНаОбъект (где хранится ссылка на созданный документ).
В источнике документ один, а в приемнике их должно быть столько, сколько в источнике различных значений ДокументОтгрузки в табличной части. Если выгружается документ, уже раннее выгруженный, то надо найти в приемнике созданные документы и обновить их. Логично? |
|||
16
Optan
21.12.18
✎
11:29
|
(15) Не пойму в чем проблема. Выгружаешь что тебе надо параметром. В приемнике ПриЗагрузке анализируешь обновлять/создавать/не трогать свои записи РС и управляешь записью (например, обходишь в событии ПриЗагрузке все ДокументыОтгрузки из ТЧ документа-источника и записываешь свой РС).
|
|||
17
Gangar
21.12.18
✎
12:08
|
(16) Возможно, я неправильно подошел к вопросу и решил его не так, как надо.
В целом ситуация такая: - в базе упр. учета Возврат от покупателя делается один по нескольким Реализациям, в разрезе одного контрагента/договора, т.е. реквизит Реализация находится в табличной части; - в базе бух. учета на каждую Реализацию делается свой Возврат; - как синхронизировать данные, с учетом того, что они должны, в случае надобности, в бух. учете обновляться из упр. учета? |
|||
18
Optan
21.12.18
✎
12:20
|
(17) Из базы Упр.Учета (УУ) ты выгружаешь документ Возврат вместе с ТЧ (т.е., по сути, список доков для базы БУ). Если нужно, то впридачу передаешь параметром дополнительные данные (массив GUIDов и т.д.).
В приемнике, в событии ПриЗагрузке ты обходишь табличную часть. По каждой строке принимаешь решение и записываешь/не записываешь. При этом, сам исходный объект можно и не записывать, проставив Отказ = Истина. |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |