|
Как сопоставить один документ нескольким в конвертации данных. | ☑ | ||
---|---|---|---|---|
0
Bodrug
29.10.15
✎
15:38
|
Добрый день. Настраиваю обмен данными между двумя разными конфигурациями. В базе-источнике есть документ "Платежное поручение исходящее", в котором есть ссылка на документ "Договор контрагента"(типа Справочник). В базе есть аналогичный документ "Оплата договора", в котором есть ссылка "Договор контрагента". Эта ссылка имеет составной тип данных (может иметь ссылку на 6 документов). Вот мне нужно в ПКО в конвертации как-то дать программе что, что один документ в источнике соответствует нескольким документам в приемнике, и чтоб найти нужный документ, надо его искать по реквизиту "Номер договора".
Надеюсь, объяснил доступно. =) |
|||
1
MadJhey
29.10.15
✎
15:42
|
есть ссылка на документ "Договор контрагента"(типа Справочник)?
|
|||
2
Bodrug
29.10.15
✎
15:43
|
(1) да. это элемент справочника, типовая Бухгалтерия для Украины.
|
|||
3
MadJhey
29.10.15
✎
15:44
|
Договор контрагента в приемнике какой тип имеет? 6 типов документов или справочников?
|
|||
4
Bodrug
29.10.15
✎
15:44
|
"есть ссылка на документ "Договор контрагента"(типа Справочник)" - читать как "есть ссылка на справочник "Договор контрагента"
|
|||
5
Bodrug
29.10.15
✎
15:44
|
сорри, очепятка
|
|||
6
Bodrug
29.10.15
✎
15:45
|
(3) в приемнике 6 типов документов, в источнике - 1 типа справочник
|
|||
7
MadJhey
29.10.15
✎
15:46
|
думаю вы используете только один тип документа, а не все 6.
|
|||
8
Bodrug
29.10.15
✎
15:46
|
(7) Да, но это разные документы
|
|||
9
MadJhey
29.10.15
✎
15:47
|
переносить в разных условиях надо в разные типы документов?
|
|||
10
MadJhey
29.10.15
✎
15:48
|
ПКО ДоговорыКонтаргентов в ДоговорыКонтрагентов (документ).
Поля поиска Номер договора в Номер документа. В дату документа можно какую-нибудь константу засунуть. |
|||
11
MadJhey
29.10.15
✎
15:49
|
если (9) то переопределить ИмяПКО
|
|||
12
Bodrug
29.10.15
✎
15:52
|
(9) нужно по по значению "Номер договора" из источника искать документ с таким же значением этого реквизита в приемнике в 6-ти документах.Если не нашли договора с таким номером, то новый НЕ создаем.
|
|||
13
MadJhey
29.10.15
✎
16:02
|
(12) о как
|
|||
14
Bodrug
29.10.15
✎
16:04
|
(12) а если нашли, то его подставлять в поле "Договор контрагента".
|
|||
15
MadJhey
29.10.15
✎
16:04
|
тогда в "после загрузки" договоров, делаешь запрос к 6 типа документов, если нашли то подставляем.
|
|||
16
MadJhey
29.10.15
✎
16:05
|
типа=типов
|
|||
17
Bodrug
29.10.15
✎
16:06
|
(16) А как там в запрос передать параметр?
|
|||
18
MadJhey
29.10.15
✎
16:08
|
(15) не правильно - в "после загрузке" документа, а не договора.
номер можно в комментарии передать |
|||
19
MadJhey
29.10.15
✎
16:09
|
ну или сделать доп. узел XML.
|
|||
20
Bodrug
29.10.15
✎
16:41
|
(18) Буду пробовать, спасибо
|
|||
21
Bodrug
29.10.15
✎
17:42
|
Теперь другой вопрос. Я пытаюсь сделать следующее: в обработчике "При выгрузке" прописал:
Попытка Параметры.Вставить("НомерДок",Источник.Состав[0].ДоговорКонтрагента.Номер); Исключение КонецПопытки; В обработчике "После загрузки" формирую запрос с отбором по коду и в этот запрос передаю параметр: Запрос = Новый Запрос(); Запрос.Текст = "ВЫБРАТЬ | ДоговорАвто.Ссылка |ИЗ | Документ.ДоговорАвто КАК ДоговорАвто |ГДЕ | ДоговорАвто.Номер = &Номер | |ОБЪЕДИНИТЬ ВСЕ | |ВЫБРАТЬ | ДоговорНС.Ссылка |ИЗ | Документ.ДоговорНС КАК ДоговорНС |ГДЕ | ДоговорНС.Номер = &Номер | |ОБЪЕДИНИТЬ ВСЕ | |ВЫБРАТЬ | ДоговорВЗР.Ссылка |ИЗ | Документ.ДоговорВЗР КАК ДоговорВЗР |ГДЕ | ДоговорВЗР.Номер = &Номер | |ОБЪЕДИНИТЬ ВСЕ | |ВЫБРАТЬ | ДоговорОСАГО.Ссылка |ИЗ | Документ.ДоговорОСАГО КАК ДоговорОСАГО |ГДЕ | ДоговорОСАГО.Номер = &Номер | |ОБЪЕДИНИТЬ ВСЕ | |ВЫБРАТЬ | ДоговорЗК.Номер |ИЗ | Документ.ДоговорЗК КАК ДоговорЗК |ГДЕ | ДоговорЗК.Номер = &Номер | |ОБЪЕДИНИТЬ ВСЕ | |ВЫБРАТЬ | ДоговорПроизвольный.Ссылка |ИЗ | Документ.ДоговорПроизвольный КАК ДоговорПроизвольный |ГДЕ | ДоговорПроизвольный.Номер = &Номер | |ОБЪЕДИНИТЬ ВСЕ | |ВЫБРАТЬ | ДоговорКвартираЭксперт.Ссылка |ИЗ | Документ.ДоговорКвартираЭксперт КАК ДоговорКвартираЭксперт |ГДЕ | ДоговорКвартираЭксперт.Номер = &Номер"; Запрос.УстановитьПараметр("Номер",ПараметрыОбъекта.НомерДок); Рез = Запрос.ВыполнитьВыгрузить(); Если Рез.Количество()<>0 Тогда Объект.Состав[0].Договор = Рез[0].Ссылка; КонецЕсли; Запускаю обмен через стандартную обработку "Универсальный обмен в формате ХМЛ", и выдается мне такое сообщение "Ошибка в обработчике После загрузки объекта...Значение не является значением объектного типа НомерДок". Подскажите, что я не так делаю? |
|||
22
Bodrug
29.10.15
✎
17:43
|
Пробовал Запрос.УстановитьПараметр("Номер",Параметры.НомерДок)
Тоже не помогло. |
|||
23
Bodrug
29.10.15
✎
17:47
|
Может, я как-то неверно передал параметр?
|
|||
24
hhhh
29.10.15
✎
17:53
|
параметры не передаются просто так из выгрузки в загрузку
|
|||
25
Bodrug
29.10.15
✎
17:54
|
(24) может есть какой-нибудь другой способ?
|
|||
26
MadJhey
29.10.15
✎
17:56
|
Попытка
Параметры.Вставить("НомерДок",Источник.Состав[0].ДоговорКонтрагента.Номер); Исключение КонецПопытки; это нафига? сделай как я уже писал через комментарий: там же где запрос Запрос.УстановитьПараметр("Номер",j,Объект.Комментарий) |
|||
27
MadJhey
29.10.15
✎
17:56
|
Запрос.УстановитьПараметр("Номер",Объект.Комментарий)
|
|||
28
MadJhey
29.10.15
✎
17:57
|
Объект.Состав[0].Договор = Рез[0].Ссылка;
В табличной части "Состав" строки точно есть? |
|||
29
Bodrug
29.10.15
✎
18:00
|
(27) Дело в том, что Комментарий уже занят, да и конфа типовая - не хочется снимать с поддежки и "допиливать".
|
|||
30
Bodrug
29.10.15
✎
18:02
|
(28) Это я не предусмотрел, сделаю проверку
|
|||
31
MadJhey
29.10.15
✎
18:14
|
новый реквизит при обновлении мешать не будет. минус - не получится самостоятельно пользователям обновлять конфу.
других реквизитов нет? тогда кури Бояркова передача произвольного значения в приемник через доп. узел XML. |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |