From e00eab1028104ce8327d40d14c49b9bb62ac66b9 Mon Sep 17 00:00:00 2001 From: Michael BAG Date: Mon, 6 Jul 2026 12:16:16 +0300 Subject: [PATCH] =?UTF-8?q?=D0=9E=D0=B1=D0=BC=D0=B5=D0=BD=20crm3-dev?= =?UTF-8?q?=E2=86=92crm3-26:=20=D1=84=D0=B8=D0=BB=D1=8C=D1=82=D1=80=20?= =?UTF-8?q?=D1=83=D0=B7=D0=BB=D0=B0=20=D0=B4=D0=BB=D1=8F=20=D0=B4=D0=BE?= =?UTF-8?q?=D1=80=D0=B0=D0=B1=D0=BE=D1=82=D0=BE=D0=BA=20=D0=BF=D0=BE=D0=BB?= =?UTF-8?q?=D1=83=D1=87=D0=B5=D0=BD=D0=B8=D1=8F=20(1.3.0.38).?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Защита учёта номенклатуры, складов и серий применяется только к узлу «Рабочая CRM3». Co-authored-by: Cursor --- .../Ext/Module.bsl | 61 +++++++++++++++++++ src/Configuration.xml | 2 +- 2 files changed, 62 insertions(+), 1 deletion(-) diff --git a/src/CommonModules/МенеджерОбменаЧерезУниверсальныйФормат/Ext/Module.bsl b/src/CommonModules/МенеджерОбменаЧерезУниверсальныйФормат/Ext/Module.bsl index 0fa3efa..3c547df 100644 --- a/src/CommonModules/МенеджерОбменаЧерезУниверсальныйФормат/Ext/Module.bsl +++ b/src/CommonModules/МенеджерОбменаЧерезУниверсальныйФормат/Ext/Module.bsl @@ -46,6 +46,45 @@ // Существующие элементы: не перезаписывать складской/финансовый учёт из источника. // Новые элементы: применить настройки учёта вида номенклатуры целевой ИБ. // См. docs/transfer/Анализ_синхронизации_crm3-dev_crm3-26.md, §3.2. +// Доработки применяются только к узлу «Рабочая CRM3» (исходная ИБ), не к Бухгалтерии. + +// GUID узла плана обмена «Рабочая CRM3» в целевой ИБ (crm3). +// +// Возвращаемое значение: +// Строка - GUID узла корреспондента в нижнем регистре. +// +Функция РК_УзелCrm3Dev_GUID() + Возврат "97cd20ee-bb06-11f0-8dac-0cc47a7d055f"; +КонецФункции + +// Истина, если текущая сессия обмена — с исходной CRM (crm3_placentapharm), а не с Бухгалтерией. +// +// Параметры: +// КомпонентыОбмена - Структура - контекст текущей сессии обмена. +// +// Возвращаемое значение: +// Булево - Истина для обмена crm3-dev ↔ crm3-26. +// +Функция РК_ЭтоОбменС_Crm3Dev(КомпонентыОбмена) + + Если КомпонентыОбмена = Неопределено Тогда + Возврат Ложь; + КонецЕсли; + + Узел = Неопределено; + Если КомпонентыОбмена.Свойство("УзелКорреспондента") Тогда + Узел = КомпонентыОбмена.УзелКорреспондента; + ИначеЕсли КомпонентыОбмена.Свойство("УзелОбмена") Тогда + Узел = КомпонентыОбмена.УзелОбмена; + КонецЕсли; + + Если Не ЗначениеЗаполнено(Узел) Тогда + Возврат Ложь; + КонецЕсли; + + Возврат НРег(XMLСтрока(Узел.УникальныйИдентификатор())) = РК_УзелCrm3Dev_GUID(); + +КонецФункции // Возвращает список реквизитов номенклатуры, подлежащих защите от перезаписи при обмене. // @@ -94,6 +133,10 @@ &Перед("ПКО_Справочник_Номенклатура_Получение_ПередЗаписьюПолученныхДанных") Процедура РК_ПКО_Справочник_Номенклатура_Получение_ПередЗаписью_СохранитьУчет(ПолученныеДанные, ДанныеИБ, КонвертацияСвойств, КомпонентыОбмена) + Если Не РК_ЭтоОбменС_Crm3Dev(КомпонентыОбмена) Тогда + Возврат; + КонецЕсли; + Если ДанныеИБ = Неопределено Тогда Возврат; КонецЕсли; @@ -118,6 +161,10 @@ &После("ПКО_Справочник_Номенклатура_Получение_ПередЗаписьюПолученныхДанных") Процедура РК_ПКО_Справочник_Номенклатура_Получение_ПередЗаписью_УчетПослеБазы(ПолученныеДанные, ДанныеИБ, КонвертацияСвойств, КомпонентыОбмена) + Если Не РК_ЭтоОбменС_Crm3Dev(КомпонентыОбмена) Тогда + Возврат; + КонецЕсли; + Если ДанныеИБ = Неопределено Тогда // Новая номенклатура: настройки складского и финансового учёта — из вида целевой ИБ. Если ЗначениеЗаполнено(ПолученныеДанные.ВидНоменклатуры) Тогда @@ -148,6 +195,9 @@ Процедура РК_ПКО_Справочник_ВидыНоменклатуры_ПередЗаписьюПолученныхДанных(ПолученныеДанные, ДанныеИБ, КонвертацияСвойств, КомпонентыОбмена) #Вставка + Если Не РК_ЭтоОбменС_Crm3Dev(КомпонентыОбмена) Тогда + Возврат; + КонецЕсли; Если ДанныеИБ <> Неопределено Тогда ПолученныеДанные = Неопределено; Возврат; @@ -199,6 +249,9 @@ Процедура РК_ПКО_Справочник_Склады_Получение_ПередЗаписьюПолученныхДанных(ПолученныеДанные, ДанныеИБ, КонвертацияСвойств, КомпонентыОбмена) #Вставка + Если Не РК_ЭтоОбменС_Crm3Dev(КомпонентыОбмена) Тогда + Возврат; + КонецЕсли; Если ДанныеИБ <> Неопределено Тогда ПолученныеДанные = Неопределено; Возврат; @@ -219,6 +272,10 @@ &После("ОтложеннаяОбработка_ЗаполнитьНоменклатуру") Процедура РК_ОтложеннаяОбработка_ВосстановитьУчетНоменклатуры(КомпонентыОбмена) + Если Не РК_ЭтоОбменС_Crm3Dev(КомпонентыОбмена) Тогда + Возврат; + КонецЕсли; + Если Не КомпонентыОбмена.ПараметрыКонвертации.Свойство("РК_СнимкиУчетаНоменклатуры") Тогда Возврат; КонецЕсли; @@ -302,6 +359,10 @@ // Процедура РК_ПКО_Справочник_СерииНоменклатуры_ПередЗаписьюПолученныхДанных(ПолученныеДанные, ДанныеИБ, КонвертацияСвойств, КомпонентыОбмена) + Если Не РК_ЭтоОбменС_Crm3Dev(КомпонентыОбмена) Тогда + Возврат; + КонецЕсли; + Если ПолученныеДанные = Неопределено Тогда Возврат; КонецЕсли; diff --git a/src/Configuration.xml b/src/Configuration.xml index 5351253..e426823 100644 --- a/src/Configuration.xml +++ b/src/Configuration.xml @@ -62,7 +62,7 @@ Role.РК_ОсновнаяРоль - 1.3.0.36 + 1.3.0.38 Language.Русский