1.3.1.109: маппинг соглашений комиссии cutover (#24).

Plain dev → individual Поварова; dev GUID marketplace → target;
fallback партнёра из Контрагент.Партнер.

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
mihailkudravcev
2026-09-01 11:33:53 +03:00
parent 1e67e2d135
commit f3e2d7b032
4 changed files with 67 additions and 2 deletions
+9
View File
@@ -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) ## 1.3.1.106 (2026-08-31)
### РК_ЗагрузкаОстатков — ГТД вне ключа схлопывания (#19) ### РК_ЗагрузкаОстатков — ГТД вне ключа схлопывания (#19)
+1 -1
View File
@@ -1 +1 @@
1.3.1.106 1.3.1.109
+1 -1
View File
@@ -62,7 +62,7 @@
<xr:Item xsi:type="xr:MDObjectRef">Role.РК_ОсновнаяРоль</xr:Item> <xr:Item xsi:type="xr:MDObjectRef">Role.РК_ОсновнаяРоль</xr:Item>
</DefaultRoles> </DefaultRoles>
<Vendor/> <Vendor/>
<Version>1.3.1.108</Version> <Version>1.3.1.109</Version>
<DefaultStyle/> <DefaultStyle/>
<DefaultLanguage>Language.Русский</DefaultLanguage> <DefaultLanguage>Language.Русский</DefaultLanguage>
<BriefInformation/> <BriefInformation/>
@@ -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(Справочники.СоглашенияСКлиентами, СтрТ.СоглашениеИдентификатор); Согл = СсылкаПоUUID(Справочники.СоглашенияСКлиентами, СтрТ.СоглашениеИдентификатор);
Если ЗначениеЗаполнено(Согл) И ОбщегоНазначения.СсылкаСуществует(Согл) Тогда Если ЗначениеЗаполнено(Согл) И ОбщегоНазначения.СсылкаСуществует(Согл) Тогда
Возврат Согл; Возврат Согл;
КонецЕсли; КонецЕсли;
ИмяСогл = СокрЛП(СтрТ.СоглашениеНаименование); ИмяСогл = СокрЛП(СтрТ.СоглашениеНаименование);
Если ЗначениеЗаполнено(ИмяСогл) Тогда Если ЗначениеЗаполнено(ИмяСогл) Тогда
// Plain без маппинга: не подставлять типовое продажи 30f0f77b по наименованию.
Если РК_ЭтоPlainСоглашениеКомиссииDev(СтрТ) Тогда
Возврат Справочники.СоглашенияСКлиентами.ПустаяСсылка();
КонецЕсли;
Возврат Справочники.СоглашенияСКлиентами.НайтиПоНаименованию(ИмяСогл, Истина); Возврат Справочники.СоглашенияСКлиентами.НайтиПоНаименованию(ИмяСогл, Истина);
КонецЕсли; КонецЕсли;
Возврат Справочники.СоглашенияСКлиентами.ПустаяСсылка(); Возврат Справочники.СоглашенияСКлиентами.ПустаяСсылка();
@@ -1095,6 +1143,14 @@
КонецЕсли; КонецЕсли;
СтрТ.Контрагент = Контр; СтрТ.Контрагент = Контр;
Если Не ЗначениеЗаполнено(Партнер) И ЗначениеЗаполнено(Контр) Тогда
Попытка
Партнер = ОбщегоНазначения.ЗначениеРеквизитаОбъекта(Контр, "Партнер");
Исключение
КонецПопытки;
СтрТ.Партнер = Партнер;
КонецЕсли;
Договор = СсылкаПоUUID(Справочники.ДоговорыКонтрагентов, СтрТ.ДоговорИдентификатор); Договор = СсылкаПоUUID(Справочники.ДоговорыКонтрагентов, СтрТ.ДоговорИдентификатор);
Если Не (ЗначениеЗаполнено(Договор) И ОбщегоНазначения.СсылкаСуществует(Договор)) Тогда Если Не (ЗначениеЗаполнено(Договор) И ОбщегоНазначения.СсылкаСуществует(Договор)) Тогда
Договор = Справочники.ДоговорыКонтрагентов.ПустаяСсылка(); Договор = Справочники.ДоговорыКонтрагентов.ПустаяСсылка();