From f3e2d7b0324937af6affa532a178cfe08d05467d Mon Sep 17 00:00:00 2001 From: mihailkudravcev Date: Tue, 1 Sep 2026 11:33:53 +0300 Subject: [PATCH] =?UTF-8?q?1.3.1.109:=20=D0=BC=D0=B0=D0=BF=D0=BF=D0=B8?= =?UTF-8?q?=D0=BD=D0=B3=20=D1=81=D0=BE=D0=B3=D0=BB=D0=B0=D1=88=D0=B5=D0=BD?= =?UTF-8?q?=D0=B8=D0=B9=20=D0=BA=D0=BE=D0=BC=D0=B8=D1=81=D1=81=D0=B8=D0=B8?= =?UTF-8?q?=20cutover=20(#24).?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Plain dev → individual Поварова; dev GUID marketplace → target; fallback партнёра из Контрагент.Партнер. Co-authored-by: Cursor --- CHANGELOG.md | 9 +++ VERSION | 2 +- src/Configuration.xml | 2 +- .../РК_ЗагрузкаОстатков/Ext/ObjectModule.bsl | 56 +++++++++++++++++++ 4 files changed, 67 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 80efad6..ad42ad0 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -4,6 +4,15 @@ --- +## 1.3.1.109 (2026-09-01) + +### РК_ЗагрузкаОстатков — маппинг соглашений комиссии cutover (#24) + +- Dev GUID → target GUID для marketplace и plain «Основное соглашение по договорам» → individual Поварова (`189cf86f…`, не типовое). +- Plain без маппинга: не подставлять типовое продажи по наименованию. +- Fallback партнёра из `Контрагент.Партнер`, если в API пусто. +- Канон: `docs/transfer/mapping/map_commission_agreements_cutover_20260801.csv`. + ## 1.3.1.106 (2026-08-31) ### РК_ЗагрузкаОстатков — ГТД вне ключа схлопывания (#19) diff --git a/VERSION b/VERSION index 87b0b49..9f0b865 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -1.3.1.106 +1.3.1.109 diff --git a/src/Configuration.xml b/src/Configuration.xml index 2ecf600..0e532cc 100644 --- a/src/Configuration.xml +++ b/src/Configuration.xml @@ -62,7 +62,7 @@ Role.РК_ОсновнаяРоль - 1.3.1.108 + 1.3.1.109 Language.Русский diff --git a/src/DataProcessors/РК_ЗагрузкаОстатков/Ext/ObjectModule.bsl b/src/DataProcessors/РК_ЗагрузкаОстатков/Ext/ObjectModule.bsl index 165f472..e14104e 100644 --- a/src/DataProcessors/РК_ЗагрузкаОстатков/Ext/ObjectModule.bsl +++ b/src/DataProcessors/РК_ЗагрузкаОстатков/Ext/ObjectModule.bsl @@ -1026,14 +1026,62 @@ КонецПроцедуры +// A4a (#24 comment-893/897): plain dev «Основное соглашение по договорам» (продажи) → +// индивидуальное соглашение комиссии Поварова в target (не типовое 1448bf7f: +// ввод на основании типового соглашения в Заказ/Реализация запрещён). +// Канон: docs/transfer/mapping/map_commission_agreements_cutover_20260801.csv +// +Функция РК_ЭтоPlainСоглашениеКомиссииDev(СтрТ) + + GUIDDev = НРег(СокрЛП(Строка(СтрТ.СоглашениеИдентификатор))); + ИмяDev = СокрЛП(СтрТ.СоглашениеНаименование); + Возврат GUIDDev = "8702ba5a-dd07-11e4-881e-0cc47a0dcc93" + Или ИмяDev = "Основное соглашение по договорам"; + +КонецФункции + +Функция РК_GUIDСоглашенияPlainCommissionIndividual() + + // Target: «Поваров Александр Борисович ИП , Передача на комиссию, ФК РАНА, руб. (по умолчанию)». + // Все 35 plain-строк post-collapse трассируются к этому партнёру (commission_plain_partner_map_20260801_dev.csv). + Возврат "189cf86f-792d-11f1-8d1e-0cc47a7d055f"; + +КонецФункции + +Функция РК_МаппингDevTargetСоглашенияКомиссии() + + Маппинг = Новый Соответствие; + Маппинг.Вставить("8702ba5a-dd07-11e4-881e-0cc47a0dcc93", РК_GUIDСоглашенияPlainCommissionIndividual()); + Маппинг.Вставить("d58fdf94-9b6e-11eb-af32-0cc47a0dcc93", "318d4082-73b6-11f1-8d1e-0cc47a7d055f"); + Маппинг.Вставить("39738c81-5d8e-11f0-bb1c-0cc47a7d055f", "318d5e24-73b6-11f1-8d1e-0cc47a7d055f"); + Маппинг.Вставить("38323494-26b0-11f1-803f-0cc47a7d055f", "318d63aa-73b6-11f1-8d1e-0cc47a7d055f"); + Маппинг.Вставить("c5fdca80-531c-11ef-9574-0cc47a7d055f", "319c60c1-73b6-11f1-8d1e-0cc47a7d055f"); + Возврат Маппинг; + +КонецФункции + Функция НайтиСоглашениеСтроки(СтрТ) + // A4a: dev GUID соглашения → target GUID (plain → индивидуальное комиссии Поварова, не типовое). + GUIDDev = НРег(СокрЛП(Строка(СтрТ.СоглашениеИдентификатор))); + GUIDЦель = РК_МаппингDevTargetСоглашенияКомиссии().Получить(GUIDDev); + Если GUIDЦель <> Неопределено И ЗначениеЗаполнено(GUIDЦель) Тогда + Согл = Справочники.СоглашенияСКлиентами.ПолучитьСсылку(Новый УникальныйИдентификатор(GUIDЦель)); + Если ОбщегоНазначения.СсылкаСуществует(Согл) Тогда + Возврат Согл; + КонецЕсли; + КонецЕсли; + Согл = СсылкаПоUUID(Справочники.СоглашенияСКлиентами, СтрТ.СоглашениеИдентификатор); Если ЗначениеЗаполнено(Согл) И ОбщегоНазначения.СсылкаСуществует(Согл) Тогда Возврат Согл; КонецЕсли; ИмяСогл = СокрЛП(СтрТ.СоглашениеНаименование); Если ЗначениеЗаполнено(ИмяСогл) Тогда + // Plain без маппинга: не подставлять типовое продажи 30f0f77b по наименованию. + Если РК_ЭтоPlainСоглашениеКомиссииDev(СтрТ) Тогда + Возврат Справочники.СоглашенияСКлиентами.ПустаяСсылка(); + КонецЕсли; Возврат Справочники.СоглашенияСКлиентами.НайтиПоНаименованию(ИмяСогл, Истина); КонецЕсли; Возврат Справочники.СоглашенияСКлиентами.ПустаяСсылка(); @@ -1095,6 +1143,14 @@ КонецЕсли; СтрТ.Контрагент = Контр; + Если Не ЗначениеЗаполнено(Партнер) И ЗначениеЗаполнено(Контр) Тогда + Попытка + Партнер = ОбщегоНазначения.ЗначениеРеквизитаОбъекта(Контр, "Партнер"); + Исключение + КонецПопытки; + СтрТ.Партнер = Партнер; + КонецЕсли; + Договор = СсылкаПоUUID(Справочники.ДоговорыКонтрагентов, СтрТ.ДоговорИдентификатор); Если Не (ЗначениеЗаполнено(Договор) И ОбщегоНазначения.СсылкаСуществует(Договор)) Тогда Договор = Справочники.ДоговорыКонтрагентов.ПустаяСсылка();