diff --git a/CHANGELOG.md b/CHANGELOG.md
index f1eb3c5..d118f2a 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -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)
### HTTP Transfer API перенесён в ws-rhana
diff --git a/VERSION b/VERSION
index 00d7d25..6a61bcd 100644
--- a/VERSION
+++ b/VERSION
@@ -1 +1 @@
-1.3.0.41
+1.3.0.42
diff --git a/src/CommonModules/МенеджерОбменаЧерезУниверсальныйФормат/Ext/Module.bsl b/src/CommonModules/МенеджерОбменаЧерезУниверсальныйФормат/Ext/Module.bsl
index 708fb1d..810c704 100644
--- a/src/CommonModules/МенеджерОбменаЧерезУниверсальныйФормат/Ext/Module.bsl
+++ b/src/CommonModules/МенеджерОбменаЧерезУниверсальныйФормат/Ext/Module.bsl
@@ -665,4 +665,86 @@
КонецПроцедуры
+// Д1.2: этапы графика оплаты из соглашения/договора при загрузке ЗаказКлиента.
+// XDTO 1.8 не передаёт ВариантОтсчета; ДатаПлатежа часто пустая.
+// Типовой ОтложеннаяОбработка_ЗаказыПоставщикуКлиента вызывает
+// ЭтапыОплатыСервер.ПроверитьЗаполнитьЭтапыГрафикаОплаты только при пустой ТЧ —
+// при «бедных» строках из пакета пересчёт не выполняется.
+//
+&После("ОтложеннаяОбработка_ЗаказыПоставщикуКлиента")
+Процедура РК_ОтложеннаяОбработка_ЗаказыПоставщикуКлиента_ЭтапыОплаты(Объект, КомпонентыОбмена)
+
+ Если Не РК_ЭтоОбменС_Crm3Dev(КомпонентыОбмена) Тогда
+ Возврат;
+ КонецЕсли;
+
+ РК_ДозаполнитьЭтапыГрафикаОплатыПоСоглашению(Объект);
+
+КонецПроцедуры
+
+// Перезаполняет ТЧ ЭтапыГрафикаОплаты, если есть строки без ДатаПлатежа / ВариантОтсчета.
+// Иначе вызывает типовое заполнение из соглашения / графика оплаты / договора.
+//
+Процедура РК_ДозаполнитьЭтапыГрафикаОплатыПоСоглашению(Объект) Экспорт
+
+ Если Объект = Неопределено Тогда
+ Возврат;
+ КонецЕсли;
+
+ МетаОбъекта = Объект.Метаданные();
+ Если МетаОбъекта.ТабличныеЧасти.Найти("ЭтапыГрафикаОплаты") = Неопределено Тогда
+ Возврат;
+ КонецЕсли;
+
+ Если МетаОбъекта.Реквизиты.Найти("Соглашение") = Неопределено Тогда
+ Возврат;
+ КонецЕсли;
+
+ НужноПерезаполнить = Ложь;
+ Если Объект.ЭтапыГрафикаОплаты.Количество() = 0 Тогда
+ НужноПерезаполнить = ЗначениеЗаполнено(Объект.Соглашение)
+ Или (МетаОбъекта.Реквизиты.Найти("ГрафикОплаты") <> Неопределено
+ И ЗначениеЗаполнено(Объект.ГрафикОплаты))
+ Или (МетаОбъекта.Реквизиты.Найти("Договор") <> Неопределено
+ И ЗначениеЗаполнено(Объект.Договор));
+ Иначе
+ Для Каждого СтрокаЭтапа Из Объект.ЭтапыГрафикаОплаты Цикл
+ Если Не ЗначениеЗаполнено(СтрокаЭтапа.ДатаПлатежа)
+ Или Не ЗначениеЗаполнено(СтрокаЭтапа.ВариантОтсчета) Тогда
+ НужноПерезаполнить = Истина;
+ Прервать;
+ КонецЕсли;
+ КонецЦикла;
+ КонецЕсли;
+
+ Если Не НужноПерезаполнить Тогда
+ Возврат;
+ КонецЕсли;
+
+ // Условия из соглашения (как при перевыборе на форме): график и форма оплаты.
+ Если ЗначениеЗаполнено(Объект.Соглашение)
+ И ТипЗнч(Объект.Соглашение) = Тип("СправочникСсылка.СоглашенияСКлиентами") Тогда
+
+ РеквизитыСоглашения = ОбщегоНазначения.ЗначенияРеквизитовОбъекта(Объект.Соглашение,
+ "ГрафикОплаты,ФормаОплаты");
+
+ Если МетаОбъекта.Реквизиты.Найти("ГрафикОплаты") <> Неопределено
+ И Не ЗначениеЗаполнено(Объект.ГрафикОплаты)
+ И ЗначениеЗаполнено(РеквизитыСоглашения.ГрафикОплаты) Тогда
+ Объект.ГрафикОплаты = РеквизитыСоглашения.ГрафикОплаты;
+ КонецЕсли;
+
+ Если МетаОбъекта.Реквизиты.Найти("ФормаОплаты") <> Неопределено
+ И Не ЗначениеЗаполнено(Объект.ФормаОплаты)
+ И ЗначениеЗаполнено(РеквизитыСоглашения.ФормаОплаты) Тогда
+ Объект.ФормаОплаты = РеквизитыСоглашения.ФормаОплаты;
+ КонецЕсли;
+
+ КонецЕсли;
+
+ Объект.ЭтапыГрафикаОплаты.Очистить();
+ ЭтапыОплатыСервер.ПроверитьЗаполнитьЭтапыГрафикаОплаты(Объект);
+
+КонецПроцедуры
+
#КонецОбласти
diff --git a/src/Configuration.xml b/src/Configuration.xml
index 9194630..b284caf 100644
--- a/src/Configuration.xml
+++ b/src/Configuration.xml
@@ -62,7 +62,7 @@
Role.РК_ОсновнаяРоль
- 1.3.0.41
+ 1.3.0.42
Language.Русский