Синхронизация: защита учёта номенклатуры и складов при получении (1.3.0.36).

Сохраняем учётные реквизиты номенклатуры целевой ИБ при обновлении из crm3-dev;
существующие склады не перезаписываются данными из пакета обмена.

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
2 changed files with 58 additions and 1 deletions
@@ -35,4 +35,61 @@
КонецЕсли;
КонецПроцедуры
#КонецОбласти
#КонецОбласти
#Область Синхронизация_crm3_dev_crm3_26
// 01.07.2026 — синхронизация crm3-dev → crm3-26 (ПКО Справочник_Номенклатура_Получение).
// Суть: не менять способ учёта номенклатуры в целевой ИБ при обновлении существующих
// элементов. Перед типовой обработкой сохраняем снимок учётных реквизитов целевой базы,
// после — восстанавливаем их в объект записи (ВидНоменклатуры, ОсобенностьУчета и др.).
&Перед("ПКО_Справочник_Номенклатура_Получение_ПередЗаписьюПолученныхДанных")
Процедура РК_ПКО_Справочник_Номенклатура_Получение_ПередЗаписью_СохранитьУчет(ПолученныеДанные, ДанныеИБ, КонвертацияСвойств, КомпонентыОбмена)
Если ДанныеИБ = Неопределено Тогда
Возврат;
КонецЕсли;
СнимокУчета = Новый Структура(
"ВидНоменклатуры, ОсобенностьУчета, ТипНоменклатуры, ИспользованиеХарактеристик, ВладелецСерий, ВладелецХарактеристик");
ЗаполнитьЗначенияСвойств(СнимокУчета, ДанныеИБ);
ПолученныеДанные.ДополнительныеСвойства.Вставить("РК_СнимокУчетаНоменклатуры", СнимокУчета);
КонецПроцедуры
&После("ПКО_Справочник_Номенклатура_Получение_ПередЗаписьюПолученныхДанных")
Процедура РК_ПКО_Справочник_Номенклатура_Получение_ПередЗаписью_ВосстановитьУчет(ПолученныеДанные, ДанныеИБ, КонвертацияСвойств, КомпонентыОбмена)
Если ДанныеИБ = Неопределено Тогда
Возврат;
КонецЕсли;
Если Не ПолученныеДанные.ДополнительныеСвойства.Свойство("РК_СнимокУчетаНоменклатуры") Тогда
Возврат;
КонецЕсли;
ЗаполнитьЗначенияСвойств(ДанныеИБ, ПолученныеДанные.ДополнительныеСвойства.РК_СнимокУчетаНоменклатуры);
КонецПроцедуры
&ИзменениеИКонтроль("ПКО_Справочник_Склады_Получение_ПередЗаписьюПолученныхДанных")
Процедура РК_ПКО_Справочник_Склады_Получение_ПередЗаписьюПолученныхДанных(ПолученныеДанные, ДанныеИБ, КонвертацияСвойств, КомпонентыОбмена)
#Вставка
// 01.07.2026 — синхронизация crm3-dev → crm3-26 (ПКО Справочник_Склады_Получение).
// Суть: не обновлять склады, уже существующие в целевой ИБ (ДанныеИБ заполнен,
// сопоставление по GUID сохраняется). Типовой обмен перезаписывал бы наименование,
// тип склада, контактную информацию данными из источника.
// Новые склады (ДанныеИБ = Неопределено) по-прежнему создаются при первой выгрузке.
Если ДанныеИБ <> Неопределено Тогда
ПолученныеДанные = Неопределено;
Возврат;
КонецЕсли;
#КонецВставки
ЗагрузитьДополнительныеСведения(?(ДанныеИБ = Неопределено, ПолученныеДанные.ПолучитьСсылкуНового(), ДанныеИБ.Ссылка),
ПолученныеДанные.ДополнительныеСвойства, КомпонентыОбмена);
КонецПроцедуры
#КонецОбласти
+1 -1
View File
@@ -62,7 +62,7 @@
<xr:Item xsi:type="xr:MDObjectRef">Role.РК_ОсновнаяРоль</xr:Item>
</DefaultRoles>
<Vendor/>
<Version>1.3.0.35</Version>
<Version>1.3.0.36</Version>
<DefaultStyle/>
<DefaultLanguage>Language.Русский</DefaultLanguage>
<BriefInformation/>