From 8af7d4b9278d58484b60a4431ba9b0a393dbdd2f Mon Sep 17 00:00:00 2001 From: mihailkudravcev Date: Wed, 7 Oct 2026 14:20:54 +0300 Subject: [PATCH] =?UTF-8?q?1.3.1.124:=20ED=20=D0=B4=D0=BE=D0=B3=D0=BE?= =?UTF-8?q?=D0=B2=D0=BE=D1=80=D1=8B=20=E2=80=94=20=D0=BF=D0=B0=D1=80=D1=82?= =?UTF-8?q?=D0=BD=D1=91=D1=80=20=D0=BF=D0=BE=20=D0=A0=D0=9A=5F=D0=9A=D0=BE?= =?UTF-8?q?=D0=B4=D0=A1=D1=82=D0=B0=D1=80=D0=BE=D0=B9=D0=91=D0=B0=D0=B7?= =?UTF-8?q?=D1=8B=20(#68).?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit После типовой отложенной обработки договора; fallback Transfer API как у контрагентов. Co-authored-by: Cursor --- CHANGELOG.md | 7 ++++ VERSION | 2 +- .../Ext/Module.bsl | 36 ++++++++++++++++++- src/Configuration.xml | 2 +- 4 files changed, 44 insertions(+), 3 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index dd68453..48e0c60 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -4,6 +4,13 @@ --- +## 1.3.1.124 (2026-10-07) + +### ED договоры: партнёр по РК_КодСтаройБазы ([#68](https://git.p7net.ru/rhana/crm3-migration/issues/68)) + +- Код партнёра из `AdditionalInfo` при получении договора (общий хук `ПриКонвертацииДанныхXDTO`). +- Перед записью и после `ОтложеннаяОбработка_ДоговорыКонтрагентов`: установка `Партнер` по `РК_КодСтаройБазы` (+ Transfer API fallback, как #67). + ## 1.3.1.123 (2026-10-07) ### Fix: журнал при fallback партнёра ED ([#67](https://git.p7net.ru/rhana/crm3-migration/issues/67) comment-1632) diff --git a/VERSION b/VERSION index 9f21e6a..f8edc52 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -1.3.1.123 +1.3.1.124 diff --git a/src/CommonModules/МенеджерОбменаЧерезУниверсальныйФормат/Ext/Module.bsl b/src/CommonModules/МенеджерОбменаЧерезУниверсальныйФормат/Ext/Module.bsl index 4a0dbca..8bfb46b 100644 --- a/src/CommonModules/МенеджерОбменаЧерезУниверсальныйФормат/Ext/Module.bsl +++ b/src/CommonModules/МенеджерОбменаЧерезУниверсальныйФормат/Ext/Module.bsl @@ -656,7 +656,7 @@ КонецФункции // &После ПКО_Справочник_ДоговорыКонтрагентов_Получение_ПередЗаписьюПолученныхДанных. -// Дозаполняет партнёра на договоре из контрагента до записи в ИБ. +// Партнёр договора: сначала по РК_КодСтаройБазы (как #67/#68), иначе из контрагента. // &После("ПКО_Справочник_ДоговорыКонтрагентов_Получение_ПередЗаписьюПолученныхДанных") Процедура РК_ПКО_ДоговорыКонтрагентов_ДозаполнитьПартнера(ПолученныеДанные, ДанныеИБ, КонвертацияСвойств, КомпонентыОбмена) @@ -669,6 +669,8 @@ Возврат; КонецЕсли; + РК_УстановитьПартнераДоговораПоКодуСтаройБазы(ПолученныеДанные, КомпонентыОбмена); + Если Не ЗначениеЗаполнено(ПолученныеДанные.Партнер) И ЗначениеЗаполнено(ПолученныеДанные.Контрагент) Тогда ПолученныеДанные.Партнер = ОбщегоНазначения.ЗначениеРеквизитаОбъекта(ПолученныеДанные.Контрагент, "Партнер"); КонецЕсли; @@ -679,6 +681,31 @@ КонецПроцедуры +// Устанавливает Партнер договора по коду исходной ИБ (AdditionalInfo / кеш / Transfer API). +// Вызов: ПередЗаписью договора и после ОтложеннаяОбработка_ДоговорыКонтрагентов (#68). +// +Процедура РК_УстановитьПартнераДоговораПоКодуСтаройБазы(ОбъектДоговора, КомпонентыОбмена) + + КодПартнера = РК_КодПартнераИсточникаДляКонтрагента(ОбъектДоговора, КомпонентыОбмена); + Если ПустаяСтрока(КодПартнера) Тогда + Возврат; + КонецЕсли; + + ПартнерСсылка = РК_НайтиПартнераПоКодуСтаройБазы(КодПартнера); + Если Не ЗначениеЗаполнено(ПартнерСсылка) Тогда + ПартнерСсылка = РК_ОбеспечитьПартнераЧерезTransferAPI(КодПартнера, КомпонентыОбмена, ОбъектДоговора); + КонецЕсли; + + Если Не ЗначениеЗаполнено(ПартнерСсылка) Тогда + Возврат; + КонецЕсли; + + Если ОбъектДоговора.Партнер <> ПартнерСсылка Тогда + ОбъектДоговора.Партнер = ПартнерСсылка; + КонецЕсли; + +КонецПроцедуры + // &После ОтложеннаяОбработка_СоздатьОбновитьОбъектыРасчетов. // Досоздаёт объекты расчётов по договорам из пакета обмена, если типовой механизм их пропустил. // @@ -836,6 +863,7 @@ Параметры.Свойство("ПолученныеДанные", ПолученныеДанные); РК_СохранитьВидыЦенСтрокИзAdditionalInfo(ДанныеXDTO, ПолученныеДанные, КомпонентыОбмена); РК_СохранитьВидНоменклатурыCRM326ИзAdditionalInfo(ДанныеXDTO, ПолученныеДанные); + РК_СохранитьКодПартнераИзAdditionalInfo(ДанныеXDTO, ПолученныеДанные, КомпонентыОбмена); ИначеЕсли СтрНачинаетсяС(ИмяПроцедуры, "ОтложеннаяОбработка_") Тогда @@ -845,6 +873,12 @@ КонецЕсли; РК_ПрименитьВидыЦенСтрокИзДополнительныхСвойств(Объект, КомпонентыОбмена); + // После типового ЗаполнениеПартнераВШапкеДокумента — партнёр договора по РК_КодСтаройБазы (#68). + Если ИмяПроцедуры = "ОтложеннаяОбработка_ДоговорыКонтрагентов" + И РК_ЭтоОбменС_Crm3Dev(КомпонентыОбмена) Тогда + РК_УстановитьПартнераДоговораПоКодуСтаройБазы(Объект, КомпонентыОбмена); + КонецЕсли; + КонецЕсли; КонецПроцедуры diff --git a/src/Configuration.xml b/src/Configuration.xml index c31df56..854e070 100644 --- a/src/Configuration.xml +++ b/src/Configuration.xml @@ -62,7 +62,7 @@ Role.РК_ОсновнаяРоль - 1.3.1.123 + 1.3.1.124 Language.Русский