|
Конвертация данных: Установка основного договора в приемнике, если есть | ☑ | ||
---|---|---|---|---|
0
OldmaN2
05.10.17
✎
11:53
|
Всем салют!
Есть задача, на которую пока не нашёл решения: Рисую правила обмена в КД. Заказчик хочет, чтобы реквизиты договоров в объектах в приемнике (кроме владельца-контрагента) - заполнялись из контрагента (Контрагент.ОсновнойДоговор). А создавать и подставлять договор из данных источника только в том случае, если был создан новый контрагент в процессе конкретного обмена. Опыта работы в КД маловато, хотелось бы получить совет, как это можно грамотнее реализовать. |
|||
1
Йохохо
05.10.17
✎
11:56
|
(0) через план обмена или как?
|
|||
2
OldmaN2
05.10.17
✎
11:56
|
(1) через универсальную выгрузку.
|
|||
3
Йохохо
05.10.17
✎
11:58
|
(2) тогда оно само так и сделает, если нет пвд на договоры и стоят галки выгружать подчиненные что ли. Только по второму пункту надо добавить галку не замещать реквизиты
|
|||
4
Йохохо
05.10.17
✎
11:59
|
с универсальной выгрузкой запутался с подчиненными, в общем оно само
|
|||
5
OldmaN2
05.10.17
✎
12:07
|
Забыл упомянуть, идентификация происходит только контрагентов по коду (источник=приемник). Идентифицировать договора в нашем случае необходимо как раз через (0)
(3) Как найдёт? К примеру есть документ. Имеет реквизиты контрагент и договор. Контрагент в приемнике нашелся, а по договору из источника соответствий с приемником по реквизитам поиска нет. Создастся ещё один договор, который подставится в документ. А мне нужно чтобы в этом случае договор подставился из Контрагент.ОсновнойДоговор и не создавался новый договор. А если контрагент был создан новый, то тогда мы создаем и договор, назначаем основным и затем подставляем в документ. Как то так.... |
|||
6
Альбатрос
05.10.17
✎
12:10
|
(5) Не передавай договор как реквизит, а запихай его в параметры. В послеЗагрузки проверяй на ЭтоНовый() и подставляй основной если нет или создавай новый договор из параметров.
|
|||
7
ТогдаКонецЕсли
05.10.17
✎
12:11
|
При выгрузке документа нужно в параметры сохранить данные основного договора контрагента, И если договор не найден, брать оттуда.
|
|||
8
Йохохо
05.10.17
✎
12:20
|
(5) т.е. это не работает? https://cdn1.savepice.ru/uploads/2017/10/5/2870b0dbfd1ccb0527a8ae4fd9cfebbe-full.png
|
|||
9
Альбатрос
05.10.17
✎
12:22
|
(8) Будут создаваться лишние договора, что противоречит (0)
|
|||
10
Йохохо
05.10.17
✎
12:28
|
(9) по первой галке точно не будут, по второй не помню, но скорее нет
|
|||
11
Ёпрст
05.10.17
✎
14:01
|
(9) не будут
|
|||
12
OldmaN2
05.10.17
✎
15:02
|
(6) Не могу понять, чего не так делаю.... Отправляется один документ. В нем передаю в параметр договор. В ПКО контрагента отключил реквизит "ОсновнойДоговорКонтрагента".
Контрагент должен записаться новый, следовательно договор создаться не должен. В отладчике после загрузки проверяю Объект, в нем договора нет, это круто. А вот в ПараметрахОбъекта договор уже сидит, записанный в базу.... как он туда попадает.... Пробовал в ПКО договора ставить "Не создавать новый объект в приемнике, если не найден", тогда договор в параметры не падает, отражается как неопределено.... чего ему надо, интересно? |
|||
13
Йохохо
05.10.17
✎
15:06
|
(12) сделай просто. А договор понятно что из дока летит
|
|||
14
OldmaN2
05.10.17
✎
15:19
|
(13) А разве когда реквизит в параметр передаёшь он всё равно в базу пишется?
Мне в сам документ в на стороне приемника нужно подставлять основной договор контрагента. При этом создавать договор из источника нужно только тогда, когда заходит новый контрагент. Если я воспользуюсь твоим вариантом, то договора к существующему контрагенту будут создаваться новые, т.к. поиск по ним возможен только по идентификатору, остальные поля в поиске не участвуют и не соответствуют равным значениям поиска, кроме владельца. |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |