Обмен — дозаполнение ВидЦены в строках ТЧ при получении (1.3.0.44, Д1.3).
ED 1.8 не передаёт ВидЦены/ВидЦеныПоставщика в XDTO; после отложенной обработки дозаполняем вид цены из соглашения без пересчёта цены и суммы. Refs: crm3-migration/-#8 Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
@@ -4,6 +4,21 @@
|
|||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
|
## 1.3.0.44 (2026-07-21)
|
||||||
|
|
||||||
|
### Обмен — дозаполнение ВидЦены в строках ТЧ (Д1.3, вариант B)
|
||||||
|
|
||||||
|
Модуль: `МенеджерОбменаЧерезУниверсальныйФормат`.
|
||||||
|
|
||||||
|
ED 1.8 не передаёт `ВидЦены` / `ВидЦеныПоставщика` в строках табличных частей (XDTO-схема не меняется).
|
||||||
|
|
||||||
|
- `&После("ВыполнитьПроцедуруМодуляМенеджера")` — `РК_ВыполнитьПроцедуруМодуляМенеджера_ДозаполнитьВидЦены` для всех процедур `ОтложеннаяОбработка_*`.
|
||||||
|
- Универсально обходит все ТЧ документа; для пустых `ВидЦены` — `ЦеныПредприятияЗаполнениеСервер.ЗаполнитьЦены(ПоляЗаполнения = "ВидЦены")`; для `ВидЦеныПоставщика` — `ЦеныПартнеровЗаполнениеСервер` с тем же ограничением полей.
|
||||||
|
- Цена и сумма строк **не пересчитываются** (в отличие от `ЗаполнитьУсловияПродажПоСоглашению(Истина)`).
|
||||||
|
- Только для узла **«Рабочая CRM3»** (`РК_ЭтоОбменС_Crm3Dev`).
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
## 1.3.0.43 (2026-07-21)
|
## 1.3.0.43 (2026-07-21)
|
||||||
|
|
||||||
### Серии номенклатуры — подбор по владельцу вида и сроку
|
### Серии номенклатуры — подбор по владельцу вида и сроку
|
||||||
|
|||||||
@@ -811,4 +811,164 @@
|
|||||||
|
|
||||||
КонецПроцедуры
|
КонецПроцедуры
|
||||||
|
|
||||||
|
// Д1.3: ED 1.8 не передаёт ВидЦены / ВидЦеныПоставщика в строках ТЧ (XDTO не меняем).
|
||||||
|
// После типовой отложенной обработки дозаполняем вид цены из соглашения
|
||||||
|
// без пересчёта Цена/Сумма (ПоляЗаполнения только вид цены).
|
||||||
|
//
|
||||||
|
&После("ВыполнитьПроцедуруМодуляМенеджера")
|
||||||
|
Процедура РК_ВыполнитьПроцедуруМодуляМенеджера_ДозаполнитьВидЦены(ИмяПроцедуры, Параметры)
|
||||||
|
|
||||||
|
Если Не СтрНачинаетсяС(ИмяПроцедуры, "ОтложеннаяОбработка_") Тогда
|
||||||
|
Возврат;
|
||||||
|
КонецЕсли;
|
||||||
|
|
||||||
|
Если Параметры = Неопределено Тогда
|
||||||
|
Возврат;
|
||||||
|
КонецЕсли;
|
||||||
|
|
||||||
|
Объект = Неопределено;
|
||||||
|
Если Не Параметры.Свойство("Объект", Объект) Или Объект = Неопределено Тогда
|
||||||
|
Возврат;
|
||||||
|
КонецЕсли;
|
||||||
|
|
||||||
|
КомпонентыОбмена = Неопределено;
|
||||||
|
Параметры.Свойство("КомпонентыОбмена", КомпонентыОбмена);
|
||||||
|
|
||||||
|
Если Не РК_ЭтоОбменС_Crm3Dev(КомпонентыОбмена) Тогда
|
||||||
|
Возврат;
|
||||||
|
КонецЕсли;
|
||||||
|
|
||||||
|
РК_ДозаполнитьВидЦеныВДокументе(Объект);
|
||||||
|
|
||||||
|
КонецПроцедуры
|
||||||
|
|
||||||
|
// Обходит все ТЧ документа; для реквизитов ВидЦены и ВидЦеныПоставщика вызывает дозаполнение.
|
||||||
|
//
|
||||||
|
// Параметры:
|
||||||
|
// Объект - ДокументОбъект - загружаемый документ после отложенной обработки обмена.
|
||||||
|
//
|
||||||
|
Процедура РК_ДозаполнитьВидЦеныВДокументе(Объект) Экспорт
|
||||||
|
|
||||||
|
Если Объект = Неопределено Тогда
|
||||||
|
Возврат;
|
||||||
|
КонецЕсли;
|
||||||
|
|
||||||
|
МетаОбъекта = Объект.Метаданные();
|
||||||
|
|
||||||
|
Для Каждого МетаТЧ Из МетаОбъекта.ТабличныеЧасти Цикл
|
||||||
|
|
||||||
|
Если МетаТЧ.Реквизиты.Найти("ВидЦены") <> Неопределено Тогда
|
||||||
|
РК_ДозаполнитьВидЦеныВТабличнойЧасти(Объект, МетаТЧ.Имя, "ВидЦены");
|
||||||
|
КонецЕсли;
|
||||||
|
|
||||||
|
Если МетаТЧ.Реквизиты.Найти("ВидЦеныПоставщика") <> Неопределено Тогда
|
||||||
|
РК_ДозаполнитьВидЦеныВТабличнойЧасти(Объект, МетаТЧ.Имя, "ВидЦеныПоставщика");
|
||||||
|
КонецЕсли;
|
||||||
|
|
||||||
|
КонецЦикла;
|
||||||
|
|
||||||
|
КонецПроцедуры
|
||||||
|
|
||||||
|
// Дозаполняет пустой вид цены в одной табличной части, если есть строки без значения.
|
||||||
|
//
|
||||||
|
Процедура РК_ДозаполнитьВидЦеныВТабличнойЧасти(Объект, ИмяТЧ, ИмяПоляВидЦены)
|
||||||
|
|
||||||
|
ТабличнаяЧасть = Объект[ИмяТЧ];
|
||||||
|
Если ТабличнаяЧасть.Количество() = 0 Тогда
|
||||||
|
Возврат;
|
||||||
|
КонецЕсли;
|
||||||
|
|
||||||
|
НужноЗаполнить = Ложь;
|
||||||
|
Для Каждого СтрокаТЧ Из ТабличнаяЧасть Цикл
|
||||||
|
Если Не ЗначениеЗаполнено(СтрокаТЧ[ИмяПоляВидЦены]) Тогда
|
||||||
|
НужноЗаполнить = Истина;
|
||||||
|
Прервать;
|
||||||
|
КонецЕсли;
|
||||||
|
КонецЦикла;
|
||||||
|
|
||||||
|
Если Не НужноЗаполнить Тогда
|
||||||
|
Возврат;
|
||||||
|
КонецЕсли;
|
||||||
|
|
||||||
|
Если ИмяПоляВидЦены = "ВидЦены" Тогда
|
||||||
|
РК_ЗаполнитьВидЦеныПродажиВТЧ(Объект, ТабличнаяЧасть);
|
||||||
|
ИначеЕсли ИмяПоляВидЦены = "ВидЦеныПоставщика" Тогда
|
||||||
|
РК_ЗаполнитьВидЦеныПоставщикаВТЧ(Объект, ТабличнаяЧасть);
|
||||||
|
КонецЕсли;
|
||||||
|
|
||||||
|
КонецПроцедуры
|
||||||
|
|
||||||
|
Процедура РК_ЗаполнитьВидЦеныПродажиВТЧ(Объект, ТабличнаяЧасть)
|
||||||
|
|
||||||
|
МетаОбъекта = Объект.Метаданные();
|
||||||
|
Если МетаОбъекта.Реквизиты.Найти("Соглашение") = Неопределено
|
||||||
|
Или Не ЗначениеЗаполнено(Объект.Соглашение) Тогда
|
||||||
|
Возврат;
|
||||||
|
КонецЕсли;
|
||||||
|
|
||||||
|
ПараметрыЗаполнения = Новый Структура;
|
||||||
|
ПараметрыЗаполнения.Вставить("ПоляЗаполнения", "ВидЦены");
|
||||||
|
РК_ДополнитьБазовыеПараметрыЗаполненияЦен(Объект, ПараметрыЗаполнения, Истина);
|
||||||
|
|
||||||
|
Попытка
|
||||||
|
ЦеныПредприятияЗаполнениеСервер.ЗаполнитьЦены(
|
||||||
|
ТабличнаяЧасть,, ПараметрыЗаполнения, Новый Структура);
|
||||||
|
Исключение
|
||||||
|
// Не блокируем загрузку пакета из-за вида цены.
|
||||||
|
КонецПопытки;
|
||||||
|
|
||||||
|
КонецПроцедуры
|
||||||
|
|
||||||
|
Процедура РК_ЗаполнитьВидЦеныПоставщикаВТЧ(Объект, ТабличнаяЧасть)
|
||||||
|
|
||||||
|
МетаОбъекта = Объект.Метаданные();
|
||||||
|
Если МетаОбъекта.Реквизиты.Найти("Соглашение") = Неопределено
|
||||||
|
Или Не ЗначениеЗаполнено(Объект.Соглашение) Тогда
|
||||||
|
Возврат;
|
||||||
|
КонецЕсли;
|
||||||
|
|
||||||
|
ПараметрыЗаполнения = ЦеныПартнеровЗаполнениеСервер.НовыйПараметрыЗаполненияЗаполнитьЦены();
|
||||||
|
ПараметрыЗаполнения.Вставить("ПоляЗаполнения", "ВидЦеныПоставщика");
|
||||||
|
РК_ДополнитьБазовыеПараметрыЗаполненияЦен(Объект, ПараметрыЗаполнения, Ложь);
|
||||||
|
|
||||||
|
Попытка
|
||||||
|
ЦеныПартнеровЗаполнениеСервер.ЗаполнитьЦены(
|
||||||
|
ТабличнаяЧасть, Неопределено, ПараметрыЗаполнения, Новый Структура);
|
||||||
|
Исключение
|
||||||
|
// Не блокируем загрузку пакета из-за вида цены.
|
||||||
|
КонецПопытки;
|
||||||
|
|
||||||
|
КонецПроцедуры
|
||||||
|
|
||||||
|
// Общие параметры для ЦеныПредприятияЗаполнениеСервер / ЦеныПартнеровЗаполнениеСервер.
|
||||||
|
//
|
||||||
|
Процедура РК_ДополнитьБазовыеПараметрыЗаполненияЦен(Объект, ПараметрыЗаполнения, ЭтоПродажа)
|
||||||
|
|
||||||
|
МетаОбъекта = Объект.Метаданные();
|
||||||
|
|
||||||
|
Если МетаОбъекта.Реквизиты.Найти("Дата") <> Неопределено Тогда
|
||||||
|
ПараметрыЗаполнения.Вставить("Дата", Объект.Дата);
|
||||||
|
КонецЕсли;
|
||||||
|
Если МетаОбъекта.Реквизиты.Найти("Организация") <> Неопределено Тогда
|
||||||
|
ПараметрыЗаполнения.Вставить("Организация", Объект.Организация);
|
||||||
|
КонецЕсли;
|
||||||
|
Если МетаОбъекта.Реквизиты.Найти("Валюта") <> Неопределено Тогда
|
||||||
|
ПараметрыЗаполнения.Вставить("Валюта", Объект.Валюта);
|
||||||
|
КонецЕсли;
|
||||||
|
Если МетаОбъекта.Реквизиты.Найти("Соглашение") <> Неопределено Тогда
|
||||||
|
ПараметрыЗаполнения.Вставить("Соглашение", Объект.Соглашение);
|
||||||
|
КонецЕсли;
|
||||||
|
Если МетаОбъекта.Реквизиты.Найти("НалогообложениеНДС") <> Неопределено Тогда
|
||||||
|
ПараметрыЗаполнения.Вставить("НалогообложениеНДС", Объект.НалогообложениеНДС);
|
||||||
|
КонецЕсли;
|
||||||
|
|
||||||
|
Если ЭтоПродажа Тогда
|
||||||
|
Если МетаОбъекта.Реквизиты.Найти("ВернутьМногооборотнуюТару") <> Неопределено Тогда
|
||||||
|
ПараметрыЗаполнения.Вставить("ВозвращатьМногооборотнуюТару", Объект.ВернутьМногооборотнуюТару);
|
||||||
|
КонецЕсли;
|
||||||
|
ПараметрыЗаполнения.Вставить("РассчитыватьНаборы", Истина);
|
||||||
|
КонецЕсли;
|
||||||
|
|
||||||
|
КонецПроцедуры
|
||||||
|
|
||||||
#КонецОбласти
|
#КонецОбласти
|
||||||
|
|||||||
@@ -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.43</Version>
|
<Version>1.3.0.44</Version>
|
||||||
<DefaultStyle/>
|
<DefaultStyle/>
|
||||||
<DefaultLanguage>Language.Русский</DefaultLanguage>
|
<DefaultLanguage>Language.Русский</DefaultLanguage>
|
||||||
<BriefInformation/>
|
<BriefInformation/>
|
||||||
|
|||||||
Reference in New Issue
Block a user