Обмен — приоритетный ВидНоменклатуры из ра_ВидНоменклатурыCRM326 (1.3.0.46).

При получении номенклатуры из Рабочая CRM3 сопоставляет вид по наименованию
из AdditionalInfo.РК_ВидНоменклатурыCRM326; без значения — прежний механизм.

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
mihailkudravcev
2026-07-30 13:13:09 +03:00
parent 94f793b614
commit 0ef87a322c
4 changed files with 87 additions and 8 deletions
+12
View File
@@ -4,6 +4,18 @@
---
## 1.3.0.46 (2026-07-30)
### Обмен — приоритетный ВидНоменклатуры из ра_ВидНоменклатурыCRM326
Модуль: `МенеджерОбменаЧерезУниверсальныйФормат`.
При получении номенклатуры из **Рабочая CRM3**: если в пакете есть `AdditionalInfo.РК_ВидНоменклатурыCRM326`, `ВидНоменклатуры` сопоставляется по наименованию в целевой ИБ (перебивает защиту учётных реквизитов). Если значение не передано — действует прежний механизм обмена.
Пара с `crm3-dev.rhana` 1.0.1.342.
---
## 1.3.0.45 (2026-07-21)
### Обмен — ВидЦены строк из AdditionalInfo (Д1.3 / issue #10)
+1 -1
View File
@@ -1 +1 @@
1.3.0.45
1.3.0.46
@@ -170,14 +170,13 @@
Если ЗначениеЗаполнено(ПолученныеДанные.ВидНоменклатуры) Тогда
Справочники.Номенклатура.ЗаполнитьРеквизитыПоВидуНоменклатуры(ПолученныеДанные);
КонецЕсли;
Возврат;
КонецЕсли;
Если Не ПолученныеДанные.ДополнительныеСвойства.Свойство("РК_СнимокУчетаНоменклатуры") Тогда
Возврат;
КонецЕсли;
Иначе
Если ПолученныеДанные.ДополнительныеСвойства.Свойство("РК_СнимокУчетаНоменклатуры") Тогда
ЗаполнитьЗначенияСвойств(ДанныеИБ, ПолученныеДанные.ДополнительныеСвойства.РК_СнимокУчетаНоменклатуры);
КонецЕсли;
КонецЕсли;
РК_ПрименитьВидНоменклатурыCRM326ИзДополнительныхСвойств(ПолученныеДанные, ДанныеИБ);
КонецПроцедуры
@@ -836,6 +835,7 @@
Параметры.Свойство("ДанныеXDTO", ДанныеXDTO);
Параметры.Свойство("ПолученныеДанные", ПолученныеДанные);
РК_СохранитьВидыЦенСтрокИзAdditionalInfo(ДанныеXDTO, ПолученныеДанные, КомпонентыОбмена);
РК_СохранитьВидНоменклатурыCRM326ИзAdditionalInfo(ДанныеXDTO, ПолученныеДанные);
ИначеЕсли СтрНачинаетсяС(ИмяПроцедуры, "ОтложеннаяОбработка_") Тогда
@@ -1044,4 +1044,71 @@
КонецФункции
// Ключ AdditionalInfo для вида номенклатуры CRM3-26 (доп. реквизит ра_ВидНоменклатурыCRM326 в исходной ИБ).
//
Функция РК_КлючAdditionalInfoВидНоменклатурыCRM326()
Возврат "РК_ВидНоменклатурыCRM326";
КонецФункции
// Сохраняет наименование вида номенклатуры из AdditionalInfo пакета в ДополнительныеСвойства номенклатуры.
//
Процедура РК_СохранитьВидНоменклатурыCRM326ИзAdditionalInfo(ДанныеXDTO, ПолученныеДанные)
Если ДанныеXDTO = Неопределено Или ПолученныеДанные = Неопределено Тогда
Возврат;
КонецЕсли;
Если Не ДанныеXDTO.Свойство("AdditionalInfo")
Или ТипЗнч(ДанныеXDTO.AdditionalInfo) <> Тип("Структура") Тогда
Возврат;
КонецЕсли;
НаименованиеВида = "";
Если Не ДанныеXDTO.AdditionalInfo.Свойство(РК_КлючAdditionalInfoВидНоменклатурыCRM326(), НаименованиеВида)
Или Не ЗначениеЗаполнено(НаименованиеВида) Тогда
Возврат;
КонецЕсли;
Попытка
ПолученныеДанные.ДополнительныеСвойства.Вставить(РК_КлючAdditionalInfoВидНоменклатурыCRM326(), СокрЛП(Строка(НаименованиеВида)));
Исключение
// ПолученныеДанные может быть структурой без ДополнительныеСвойства.
КонецПопытки;
КонецПроцедуры
// Приоритетно сопоставляет ВидНоменклатуры целевой ИБ по наименованию из ра_ВидНоменклатурыCRM326.
// Если значение не передано — остаётся текущий механизм обмена (в т.ч. защита учётных реквизитов).
//
Процедура РК_ПрименитьВидНоменклатурыCRM326ИзДополнительныхСвойств(ПолученныеДанные, ДанныеИБ)
Если ПолученныеДанные = Неопределено Тогда
Возврат;
КонецЕсли;
НаименованиеВида = "";
Попытка
Если Не ПолученныеДанные.ДополнительныеСвойства.Свойство(РК_КлючAdditionalInfoВидНоменклатурыCRM326(), НаименованиеВида)
Или Не ЗначениеЗаполнено(НаименованиеВида) Тогда
Возврат;
КонецЕсли;
Исключение
Возврат;
КонецПопытки;
ВидНоменклатуры = Справочники.ВидыНоменклатуры.НайтиПоНаименованию(СокрЛП(Строка(НаименованиеВида)), Истина);
Если Не ЗначениеЗаполнено(ВидНоменклатуры) Тогда
Возврат;
КонецЕсли;
ПолученныеДанные.ВидНоменклатуры = ВидНоменклатуры;
Если ДанныеИБ <> Неопределено Тогда
ДанныеИБ.ВидНоменклатуры = ВидНоменклатуры;
Иначе
Справочники.Номенклатура.ЗаполнитьРеквизитыПоВидуНоменклатуры(ПолученныеДанные);
КонецЕсли;
КонецПроцедуры
#КонецОбласти
+1 -1
View File
@@ -62,7 +62,7 @@
<xr:Item xsi:type="xr:MDObjectRef">Role.РК_ОсновнаяРоль</xr:Item>
</DefaultRoles>
<Vendor/>
<Version>1.3.0.45</Version>
<Version>1.3.0.46</Version>
<DefaultStyle/>
<DefaultLanguage>Language.Русский</DefaultLanguage>
<BriefInformation/>