Обмен — этапы графика оплаты ЗаказКлиента (Д1.2) 1.3.0.42

This commit is contained in:
mihailkudravcev
2026-07-15 09:35:56 +03:00
parent eb097a8078
commit a83f23d16c
4 changed files with 101 additions and 2 deletions
+17
View File
@@ -4,6 +4,23 @@
--- ---
## 1.3.0.42 (2026-07-15)
### Обмен — этапы графика оплаты ЗаказКлиента (Д1.2)
База: **1.3.0.41** (ws-rhana + объекты расчётов 1.3.0.40).
Модуль: `МенеджерОбменаЧерезУниверсальныйФормат`.
- `&После("ОтложеннаяОбработка_ЗаказыПоставщикуКлиента")``РК_ОтложеннаяОбработка_ЗаказыПоставщикуКлиента_ЭтапыОплаты`.
- При «бедных» этапах из XDTO (пустые `ДатаПлатежа` / `ВариантОтсчета`) ТЧ очищается и перезаполняется типовым `ЭтапыОплатыСервер.ПроверитьЗаполнитьЭтапыГрафикаОплаты` по соглашению / графику оплаты / договору.
- При пустых реквизитах шапки из соглашения подставляются `ГрафикОплаты`, `ФормаОплаты`.
- Только для узла **«Рабочая CRM3»** (`РК_ЭтоОбменС_Crm3Dev`).
Данные уже загруженных заказов: `docs/transfer/Код_дозаполнения_этапов_оплаты_заказов_crm3-26.bsl` (монорепозиторий).
---
## 1.3.0.41 (2026-07-09) ## 1.3.0.41 (2026-07-09)
### HTTP Transfer API перенесён в ws-rhana ### HTTP Transfer API перенесён в ws-rhana
+1 -1
View File
@@ -1 +1 @@
1.3.0.41 1.3.0.42
@@ -665,4 +665,86 @@
КонецПроцедуры КонецПроцедуры
// Д1.2: этапы графика оплаты из соглашения/договора при загрузке ЗаказКлиента.
// XDTO 1.8 не передаёт ВариантОтсчета; ДатаПлатежа часто пустая.
// Типовой ОтложеннаяОбработка_ЗаказыПоставщикуКлиента вызывает
// ЭтапыОплатыСервер.ПроверитьЗаполнитьЭтапыГрафикаОплаты только при пустой ТЧ —
// при «бедных» строках из пакета пересчёт не выполняется.
//
&После("ОтложеннаяОбработка_ЗаказыПоставщикуКлиента")
Процедура РК_ОтложеннаяОбработка_ЗаказыПоставщикуКлиента_ЭтапыОплаты(Объект, КомпонентыОбмена)
Если Не РК_ЭтоОбменС_Crm3Dev(КомпонентыОбмена) Тогда
Возврат;
КонецЕсли;
РК_ДозаполнитьЭтапыГрафикаОплатыПоСоглашению(Объект);
КонецПроцедуры
// Перезаполняет ТЧ ЭтапыГрафикаОплаты, если есть строки без ДатаПлатежа / ВариантОтсчета.
// Иначе вызывает типовое заполнение из соглашения / графика оплаты / договора.
//
Процедура РК_ДозаполнитьЭтапыГрафикаОплатыПоСоглашению(Объект) Экспорт
Если Объект = Неопределено Тогда
Возврат;
КонецЕсли;
МетаОбъекта = Объект.Метаданные();
Если МетаОбъекта.ТабличныеЧасти.Найти("ЭтапыГрафикаОплаты") = Неопределено Тогда
Возврат;
КонецЕсли;
Если МетаОбъекта.Реквизиты.Найти("Соглашение") = Неопределено Тогда
Возврат;
КонецЕсли;
НужноПерезаполнить = Ложь;
Если Объект.ЭтапыГрафикаОплаты.Количество() = 0 Тогда
НужноПерезаполнить = ЗначениеЗаполнено(Объект.Соглашение)
Или (МетаОбъекта.Реквизиты.Найти("ГрафикОплаты") <> Неопределено
И ЗначениеЗаполнено(Объект.ГрафикОплаты))
Или (МетаОбъекта.Реквизиты.Найти("Договор") <> Неопределено
И ЗначениеЗаполнено(Объект.Договор));
Иначе
Для Каждого СтрокаЭтапа Из Объект.ЭтапыГрафикаОплаты Цикл
Если Не ЗначениеЗаполнено(СтрокаЭтапа.ДатаПлатежа)
Или Не ЗначениеЗаполнено(СтрокаЭтапа.ВариантОтсчета) Тогда
НужноПерезаполнить = Истина;
Прервать;
КонецЕсли;
КонецЦикла;
КонецЕсли;
Если Не НужноПерезаполнить Тогда
Возврат;
КонецЕсли;
// Условия из соглашения (как при перевыборе на форме): график и форма оплаты.
Если ЗначениеЗаполнено(Объект.Соглашение)
И ТипЗнч(Объект.Соглашение) = Тип("СправочникСсылка.СоглашенияСКлиентами") Тогда
РеквизитыСоглашения = ОбщегоНазначения.ЗначенияРеквизитовОбъекта(Объект.Соглашение,
"ГрафикОплаты,ФормаОплаты");
Если МетаОбъекта.Реквизиты.Найти("ГрафикОплаты") <> Неопределено
И Не ЗначениеЗаполнено(Объект.ГрафикОплаты)
И ЗначениеЗаполнено(РеквизитыСоглашения.ГрафикОплаты) Тогда
Объект.ГрафикОплаты = РеквизитыСоглашения.ГрафикОплаты;
КонецЕсли;
Если МетаОбъекта.Реквизиты.Найти("ФормаОплаты") <> Неопределено
И Не ЗначениеЗаполнено(Объект.ФормаОплаты)
И ЗначениеЗаполнено(РеквизитыСоглашения.ФормаОплаты) Тогда
Объект.ФормаОплаты = РеквизитыСоглашения.ФормаОплаты;
КонецЕсли;
КонецЕсли;
Объект.ЭтапыГрафикаОплаты.Очистить();
ЭтапыОплатыСервер.ПроверитьЗаполнитьЭтапыГрафикаОплаты(Объект);
КонецПроцедуры
#КонецОбласти #КонецОбласти
+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.0.41</Version> <Version>1.3.0.42</Version>
<DefaultStyle/> <DefaultStyle/>
<DefaultLanguage>Language.Русский</DefaultLanguage> <DefaultLanguage>Language.Русский</DefaultLanguage>
<BriefInformation/> <BriefInformation/>