|   |   | 
| 
 | Конвертация данных - один в несколько | ☑ | ||
|---|---|---|---|---|
| 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ов и т.д.).
 В приемнике, в событии ПриЗагрузке ты обходишь табличную часть. По каждой строке принимаешь решение и записываешь/не записываешь. При этом, сам исходный объект можно и не записывать, проставив Отказ = Истина. | 
 
 | Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |