Обмен — этапы графика оплаты ЗаказКлиента (Д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
@@ -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>
</DefaultRoles>
<Vendor/>
<Version>1.3.0.41</Version>
<Version>1.3.0.42</Version>
<DefaultStyle/>
<DefaultLanguage>Language.Русский</DefaultLanguage>
<BriefInformation/>