Имя: Пароль:
1C
1С v8
Настройка обмена между УТ и БП
0 KentYo
 
29.11.18
07:31
Здравствуйте. Изменяю обмен между конфигурациями УТ для Казахстана 2.2.15.14 (очень схожа с УТ10 российской) и БП для Казахстана 3.0.23.3 (последняя версия).
В УТ заведено несколько организаций, соответственно договоров с контрагентами тоже несколько, со всеми организациями. Нужно чтобы при выгрузке в БП выгружались все эти договоры в один определенный. Для этого в УТ в справочнике ДоговорыКонтрагентов добавлен реквизит КодЭлементаБУ, который содержит код договора, в который по итогу должны выгружаться все договоры этого контрагента.
В КонвертацииДанных перепробовал уже кучу вариантов:
1. Отключал поиск по УИД, добавлял в поля поиска свой КодЭлементаБУ. Прописывал просто запрос на поиск нужного мне договора в обработчике ПоляПоиска и подставлял результат в СсылкаНаОбъект
2. Сопоставлял в конвертации свойств КодЭлементаБУ в источнике и Код в приемнике.
3. В обработчике ПередВыгрузкой пробовал запросом получить ссылку на нужный мне договор и подставить эту ссылку в Источник.

В итоге получаю либо все три договора как есть в БП, либо перегружается все в один, но не в тот, который указан в реквизите КодЭлементаБУ, а в созданный последним. Идеи кончились,  в каком направлении идти дальше.
1 Мелифаро
 
29.11.18
07:34
>Нужно чтобы при выгрузке в БП выгружались все эти договоры в один определенный.

Не очень понятно, это как? У, например, трёх договоров с разными организациями разные номера и реквизиты, как их объединять в один?
2 KentYo
 
29.11.18
07:36
(1) Нужно чтобы все подставлялось из договора, который указан в КодЭлементаБУ
3 KentYo
 
29.11.18
07:37
Другие договоры вообще не должны выгружаться
4 Мелифаро
 
29.11.18
07:38
А, понял.
Перед выгрузкой проверять на заполненность КодЭлементаБУ не пробовал?
5 Мелифаро
 
29.11.18
07:38
Т.е. если не заполнено или равно "" - отказ.
6 KentYo
 
29.11.18
07:39
(4) Не пробовал, но таких договоров нет, так как заполнял этот реквизит обработкой, точно во всех есть
7 Мелифаро
 
29.11.18
07:40
(6) Тогда фигня получается.
У тебя, скажем, три элемента в источнике с одинаковыми кодами БУ, но разными реквизитами. Как ты их выгрузишь в один договор в приёмнике?
8 KentYo
 
29.11.18
07:43
(7) Вот фигня и получается, что-то неверно с логикой. Получается, что должен выгрузиться только тот, который указан в КодеБУ, а остальные должны его найти и заместо себя подставить)
9 Мелифаро
 
29.11.18
07:45
(8) Эмм.
Ну вот смотри.
Номер1 Организация1 КодБУ=001
Номер2 Организация2 КодБУ=001

Как это должно выгрузиться в приёмник?
10 KentYo
 
29.11.18
07:47
(9) Код=001 Номер1 Организация1 КодБУ=001
Код=002 Номер2 Организация2 КодБУ=001

Все это должно выгрузиться в приемнике в Код=001 Номер1 Организация1
11 Мелифаро
 
29.11.18
07:51
(10) Тогда выкинь обработкой же все КодыБУ из остальных объектов и тупо проверяй на заполненность.
Иначе оно так и будет у тебя
>либо перегружается все в один, но не в тот, который указан в реквизите КодЭлементаБУ, а в созданный последним
12 Мелифаро
 
29.11.18
07:52
Т.е. изначально не надо было в договорах
Номер2 Организация2 вообще КодБУ проставлять. Зачем?

Я вообще так понимаю, что тебе надо по одной организации договора выгрузить? Может, просто проверять перед выгрузкой реквизит "Организация" на определённое значение без всяких кодовБУ и прочей ереси?
13 KentYo
 
29.11.18
07:59
(12) Штука тут интересная, документы есть по всем, например, двум договорам. Эти документы должны выгрузиться все, по всем договорам, но чтобы во все документы подставился договор с одной организацией. Не спрашивайте зачем))
14 KentYo
 
29.11.18
08:05
Спасибо, попробую с проверкой на заполненность что-нибудь сделать
15 Мелифаро
 
29.11.18
08:06
Вечер перестаёт быть томным, однако.
В таком случае нужно документы обрабатывать.
Ибо логика выгрузки договоров тут вообще сама себя исключает. Нужно выгрузить один договор, как указано в (10), но мы зачем-то выгружаем все, делая из них (ТАДАММ!) тупо один, по одной организации.
В обработку ПередВыгрузкой документов надо впихнуть проверку реквизита "Договор", если в нём не заполнен КодБУ - делаем поиск по договорам с этим КодБУ и подставляем в документ.
Ессно, лишние КодБУ всё равно сначала надо вычистить.
16 KentYo
 
29.11.18
08:11
(15) Опыта с работой в КД мало, поэтому нахожусь на этапе понимания вообще логики как все работает в обмене. Я думал, что все нужно наоборот делать на этапе выгрузки элементов справочника договоры, а документы уже, пользуясь правилом из справочника, будут подставлять то что нужно
17 Мелифаро
 
29.11.18
08:12
(16) А, понятно. Не, такой фокус не прокатит. Выгружать только нужные элементы справочника договоры и обрабатывать документы, подставляя эти нужные элементы.
18 KentYo
 
29.11.18
08:36
(17) Только еще один момент не до конца понятен, что будет с договорами и документами прошлых периодов, которые уже выгрузились, ведь в БП есть уже записи в регистре сведений СопоставлениеОбъектовИнформационныхБаз, как будет все выгружаться? Старые документы останутся без изменений, а новые будут выгружаться уже по-новому? Или он в старых документах тоже везде переподставит договора?
19 KentYo
 
29.11.18
08:37
(18) Пардон, СоответствиеОбъектовИнформационныхБаз
20 Мелифаро
 
29.11.18
08:43
(18) Дык регистрацией изменений для обмена пометь все доки, поменяет и в старых, делов-то.
Сам собой не перевыгрузит, ессно.
21 Мелифаро
 
29.11.18
08:47
Вообще, конечно, задачка странноватая как с юридической, так и с учётной точки зрения.
Фактически в базе изменяются данные по всей выданной контрагентам первичке.
А если на контрагенте было два договора в разное время по одной организации? К примеру, заключили один в 2014, потом ещё один в 2015 по истечению срока первого договора на новых условиях?
22 KentYo
 
29.11.18
09:18
(20) Мне как раз надо, чтобы он в старых ничего не трогал, а в новых выгружал по-новому.
23 KentYo
 
29.11.18
09:19
(21) Там такого нет, есть только один договор и чтобы по нему надо выгружалось