Синхронизация: защита учёта номенклатуры и складов при получении (1.3.0.36).
Сохраняем учётные реквизиты номенклатуры целевой ИБ при обновлении из crm3-dev; существующие склады не перезаписываются данными из пакета обмена. Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
@@ -36,3 +36,60 @@
|
|||||||
КонецПроцедуры
|
КонецПроцедуры
|
||||||
#КонецОбласти
|
#КонецОбласти
|
||||||
#КонецОбласти
|
#КонецОбласти
|
||||||
|
|
||||||
|
#Область Синхронизация_crm3_dev_crm3_26
|
||||||
|
|
||||||
|
// 01.07.2026 — синхронизация crm3-dev → crm3-26 (ПКО Справочник_Номенклатура_Получение).
|
||||||
|
// Суть: не менять способ учёта номенклатуры в целевой ИБ при обновлении существующих
|
||||||
|
// элементов. Перед типовой обработкой сохраняем снимок учётных реквизитов целевой базы,
|
||||||
|
// после — восстанавливаем их в объект записи (ВидНоменклатуры, ОсобенностьУчета и др.).
|
||||||
|
|
||||||
|
&Перед("ПКО_Справочник_Номенклатура_Получение_ПередЗаписьюПолученныхДанных")
|
||||||
|
Процедура РК_ПКО_Справочник_Номенклатура_Получение_ПередЗаписью_СохранитьУчет(ПолученныеДанные, ДанныеИБ, КонвертацияСвойств, КомпонентыОбмена)
|
||||||
|
|
||||||
|
Если ДанныеИБ = Неопределено Тогда
|
||||||
|
Возврат;
|
||||||
|
КонецЕсли;
|
||||||
|
|
||||||
|
СнимокУчета = Новый Структура(
|
||||||
|
"ВидНоменклатуры, ОсобенностьУчета, ТипНоменклатуры, ИспользованиеХарактеристик, ВладелецСерий, ВладелецХарактеристик");
|
||||||
|
ЗаполнитьЗначенияСвойств(СнимокУчета, ДанныеИБ);
|
||||||
|
ПолученныеДанные.ДополнительныеСвойства.Вставить("РК_СнимокУчетаНоменклатуры", СнимокУчета);
|
||||||
|
|
||||||
|
КонецПроцедуры
|
||||||
|
|
||||||
|
&После("ПКО_Справочник_Номенклатура_Получение_ПередЗаписьюПолученныхДанных")
|
||||||
|
Процедура РК_ПКО_Справочник_Номенклатура_Получение_ПередЗаписью_ВосстановитьУчет(ПолученныеДанные, ДанныеИБ, КонвертацияСвойств, КомпонентыОбмена)
|
||||||
|
|
||||||
|
Если ДанныеИБ = Неопределено Тогда
|
||||||
|
Возврат;
|
||||||
|
КонецЕсли;
|
||||||
|
|
||||||
|
Если Не ПолученныеДанные.ДополнительныеСвойства.Свойство("РК_СнимокУчетаНоменклатуры") Тогда
|
||||||
|
Возврат;
|
||||||
|
КонецЕсли;
|
||||||
|
|
||||||
|
ЗаполнитьЗначенияСвойств(ДанныеИБ, ПолученныеДанные.ДополнительныеСвойства.РК_СнимокУчетаНоменклатуры);
|
||||||
|
|
||||||
|
КонецПроцедуры
|
||||||
|
|
||||||
|
&ИзменениеИКонтроль("ПКО_Справочник_Склады_Получение_ПередЗаписьюПолученныхДанных")
|
||||||
|
Процедура РК_ПКО_Справочник_Склады_Получение_ПередЗаписьюПолученныхДанных(ПолученныеДанные, ДанныеИБ, КонвертацияСвойств, КомпонентыОбмена)
|
||||||
|
|
||||||
|
#Вставка
|
||||||
|
// 01.07.2026 — синхронизация crm3-dev → crm3-26 (ПКО Справочник_Склады_Получение).
|
||||||
|
// Суть: не обновлять склады, уже существующие в целевой ИБ (ДанныеИБ заполнен,
|
||||||
|
// сопоставление по GUID сохраняется). Типовой обмен перезаписывал бы наименование,
|
||||||
|
// тип склада, контактную информацию данными из источника.
|
||||||
|
// Новые склады (ДанныеИБ = Неопределено) по-прежнему создаются при первой выгрузке.
|
||||||
|
Если ДанныеИБ <> Неопределено Тогда
|
||||||
|
ПолученныеДанные = Неопределено;
|
||||||
|
Возврат;
|
||||||
|
КонецЕсли;
|
||||||
|
#КонецВставки
|
||||||
|
|
||||||
|
ЗагрузитьДополнительныеСведения(?(ДанныеИБ = Неопределено, ПолученныеДанные.ПолучитьСсылкуНового(), ДанныеИБ.Ссылка),
|
||||||
|
ПолученныеДанные.ДополнительныеСвойства, КомпонентыОбмена);
|
||||||
|
КонецПроцедуры
|
||||||
|
|
||||||
|
#КонецОбласти
|
||||||
@@ -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.35</Version>
|
<Version>1.3.0.36</Version>
|
||||||
<DefaultStyle/>
|
<DefaultStyle/>
|
||||||
<DefaultLanguage>Language.Русский</DefaultLanguage>
|
<DefaultLanguage>Language.Русский</DefaultLanguage>
|
||||||
<BriefInformation/>
|
<BriefInformation/>
|
||||||
|
|||||||
Reference in New Issue
Block a user