подскажите с кд. выгрузка нескольких объектов в 1 объект приемника #670052


#0 by zladenuw
Нужно несколько документов загрузить в 1 документ в приемнике. Есть правило по выгрузке 1 к 1.но не соображу как множество объектов выгружать и что передавать в параметр обработки для выгрузки
#1 by ЧашкаЧая
Можно по разному, смотря как связаны несколько объектов в базе-источнике, какие данные нужно брать из источников в приемник. Вобщем нужно заполнить ВходящиеДанные, и КоллекцииОбъектов для ТЧ. Больше конкретики.
#2 by zladenuw
в базе источник это 1 тип документа, пользователь может выбрать как 1 так и несколько их нужно загрузить в 1 объект приемника.
#3 by ЧашкаЧая
Есть реквизит связи между документами?
#4 by zladenuw
Если которые выгружаются, пользователь сам выбирает список выгрузки. они могут быть не связаны между собой. я буду передавать список для выгрузки
#5 by zladenuw
связи нет. и проверки не надо. шапка заполняется по умолчанию, грубо говоря нужно только табличную часть заполнить.
#6 by zladenuw
Я так понимаю создаю новое пко и в него перед выгрузкой пишу свой запрос по выборке документов, как мне передать в него параметр этот список документов ? и потом достаточно будет вызвать процедуру выгрузитьпоправилу и передать то что мне надо выгружать, уже в готов виде так ?
#7 by ЧашкаЧая
Круто, будет проблема - как передать этот список в обработку выгрузки. Теоретически можно сделать списком значений в параметре, но придется или допиливать обработку V8Exchange.efp или писать свою обетку, возможно здесь другое решение. Во всяком случае, если признака объединяющего несколько объектов в один нет - список объектов придется передать извне в параметры правил (будет выгружаться всегда только один объект по списку или несколько объектов по нескольким спискам?). Тогда писать свое правило выгрузки данных которое соберет нужные данные из табличных частей и передать через входящие данные в ПКО.
#8 by zladenuw
1 список по нескольким объектов, вернее может быть как 1 документ, так и 10. но одного типа. и загружаться всегда в 1 тип документа. ПВД ? выбираю произвольный запрос, там пишу запрос. попробую через параметры обработки. Вот я создам пвд и подготовлю тз, создаю новое правило указываю пвд, указываю приемник и потом описывать каждое пкс ?
#9 by zladenuw
какая должна быть структура вход данных ? такая же как у документа ? и что тогда в ПКО нужно менять для заполнения ?
#10 by ЧашкаЧая
Если не будете писать обертку для УниверсальныйОбменДаннымиXML список нужных документов можно выбрать с помощью подключаемой обработки (добавляется в свойствах самой конфигурации). Во первых шапка - для всех полей заполнение должно происходить алгоритмами или из входящих данных. Табличная часть из входящих данных переданных из ПВД. В ПКО нужно поставить флажек для ТЧ "Получить из входящих данных" Примерный код ПВД событие перед выгрузкой:
#11 by zladenuw
а как заполнить шапку ? создавать все поля в ДанныеВПКО ?
#12 by zladenuw
тут пример такой. только не пойму он просто передает
#13 by zladenuw
ссылка
#14 by zladenuw
и он помещает перед обработкой, в чем разница где выполнять такой запрос ?
#15 by ЧашкаЧая
Можно и так, или напрямую в ПКО для каждого реквизита написать в перед выгрузкой код получения, например: Второй вариант мне больше нравиться - чем меньше Входящих-Исходящих данных - тем легче получается конвертация. Потому что все что идет после "ПередОбработкой" уже работает с отдельным выгружаемым объектом, в общем случае после "ПередОбработкой" должна быть заполнена ВыборкаДанных - тогда обработка сама вызовет ВыгрузитьПоПравилу.
#16 by zladenuw
то так будет работать. в пвд написал запрос     Запрос.УстановитьПараметр("СпЗнСсылки", Параметры.СпЗнДок);
#17 by ЧашкаЧая
Будет работать если сам запрос с шапкой документа как и на инфостарте. У меня без шапки потому что я вручную вызывал  ВыгрузитьПоПравилу (без заполнения ВыборкаДанных) и предполагал что шапка будет заполнятся в самом ПКО данными по понятным правилам, в примере на инфостарте шапка берется из первого попавшегося документа (заметьте возможно и не самого первого в последовательности).
#18 by ЧашкаЧая
Хотя ... получается что ПКО будет вызываться столько раз сколько и строк в объединенных документах, странно что у него работало, я бы так не делал.
#19 by ЧашкаЧая
Нет, все нормально, работать будет :)
#20 by zladenuw
спасиб. пока пробую прикрутить заполнение списка и вызов нужного правила для выгрузки. скоро вернусь
#21 by zladenuw
блин а как выбрать нужное пвд и передать параметр ?
#22 by zladenuw
до этого вызывал настроить построитель и передавал что мне нужно было. но там я явно передавал ссылку. а тут как ?
#23 by zladenuw
как правильно вызывать и заполнить обработку для обмена ?  может где то в типовой можно подсмотреть
#24 by ЧашкаЧая
1. Если планируете использовать стандарную форму обработки без оберки можно сделать подключаемыми обработками с флажком "Это обработка формы настройки". 2. Если с оберкой (теоретически, сам такого не делал) после загрузки правил обмена установить в реквизите Параметры обработки нужный параметр. Видел во всяких выгрузках остатков из бухгалтерии. Поищите по УниверсальныйОбменДаннымиXML.
#25 by zladenuw
хм валится на ошибке. заполнить параметры спзнДок. но вот такая ошибка Ошибка при выгрузке данных: {Обработка.УниверсальныйОбменДаннымиXML.МодульОбъекта(1028)}: Ошибка при вызове метода контекста (XMLСтрока): Ошибка преобразования данных XML в отладчике падает на параметре СпЗнДок
#26 by zladenuw
был флаг передавать при выгрузке в приемник.
#27 by zladenuw
теперь и ошибки нету и данных нету :(
#28 by zladenuw
мда по СОМ, я бы уже сделал. а тут :). что то не нашел в УТП программное заполнение параметров и вызов нужного ПКО для обмена :(
#29 by ЧашкаЧая
> мда по СОМ, я бы уже сделал Это грешные мысли, нельзя так думать когда работаешь с КД. На самом деле прелесть КД осознается когда нужно перетащить кучу разных объектов. Параметры это реквизит обработки который после загрузки правил обменов становится структурой. Так что нужно сначала вызвать загрузку правил.
#30 by ЧашкаЧая
Нашел в УПП обработку ВыгрузкаСпискаОбъектов - как раз то что нужно.
#31 by zladenuw
полез искать упп
#32 by zladenuw
так там просто передали параметр и вызвали выгрузку. я делаю то же самое. только у меня выгрузитьпоправилу и там И не попадает, так как ВыборкаДанных = Неопределено
#33 by zladenuw
и не могу найти где заполняются выборкаданных :(
#34 by zladenuw
вроде нашел проблему нужно было в передобработкой. пока исправляю ошибки
#35 by ЧашкаЧая
Не нашел там такого кода, см. То есть список будет выгружен в параметр СписокСсылок, соответственно нужно подправить установку параметра в запросе.
#36 by zladenuw
получаю пустой запрос. хотя параметр вроде как заполнен. что может быть не так ?
#37 by zladenuw
да этот код который вызывается уже в самой обработке обмена. когда перебирает ПКО. это уже исправил. сейчас другая проблема. пустой запрос. хотя параметр заполнен.
#38 by zladenuw
ура работает. только 1 но. не видит параметров. почему так может быть ?
#39 by zladenuw
смотрю в отладчике. Параметр мой есть и он заполнен. почему в модуле перед обработкой он не видит значений ?
#40 by zladenuw
не все заполнилось. тч пустая хотя вот склад заполнился и дата.
#41 by zladenuw
для ПКО нужно ставить какие то флаги или нет ?
#42 by zladenuw
в хмл все есть. чего пустой документ :(
#43 by zladenuw
А как можно перед выгрузкой заменить значения. например автор стоит 1 пользователь, а мне при выгрузке нужно установить другого ?. так как загрузка выполняется на сервере в фоновом задание
#44 by mxs089
читай книгу по конвертации и жуй кактус
#45 by zladenuw
разобрался. да втыканул. что можно просто написать Значение = Текущийпользователь.
#46 by zladenuw
а книгу читал не раз. и толку. пока не столкнешься с реальной задачей. теория в топку
Тэги: 1С 8
Ответить:
Комментарии доступны только авторизированным пользователям

В этой группе 1С