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