Добрый день. Не знаю точно или пишу в нужную ветку. У меня часто возникает проблема при добавлении собственных разработок (подсистем) в конфигурацию с вашей подсистемой обмена . У меня есть справочник в котором больше 200 000 елментов , которых нужно обновлять раз в месяц . Выходит что при записи каждого выполняеться ваша подписка на событие и выполняет его в серднем 0.1 секунды , бывает и больше. И после интеграции моей подситемы и попытке обновить данные справочника , заказчик сразу говорит что "Мы все поломали и все перестало работать" или "Ваш справочник очень долго обновляеться нам это не подходит" . Также есть случаи когда нужно перезаписать большой массив данных справочника и 90% времени занимает реестрация изменений и его также нету в обмене. Я б предложил вам добавить небольшой код для реестрации справочников и документов или расделить их на две подписки если для документов есть своя логика.
Процедура ЗарегистрироватьИзмененияПриЗаписиСправочникаДокументаДляОбм енаССайтами(Источник, Отказ) Экспорт
// Не реестрировать изменения , тех справочников которых нету в составе (они итак не попадут в реестрацию , если на них нет отделньой логики)
ОбъектСоставаБ_ПланаОбмена = Метаданные.ПланыОбмена.Б_ОбменССайтом.Состав.Найти(Источник.Метаданные());
Если ОбъектСоставаБ_ПланаОбмена = Неопределено Тогда
Возврат
КонецЕсли;
// И для тех справочников которые есть , но нужно сделать реестрацию (при загрузке с другой базы или просто записи)
Если Источник.ДополнительныеСвойства.Свойство("ИгнорироватьРеестрациюИзмененийБитрикс") Тогда
Возврат
КонецЕсли;
ЗарегистрироватьИзменения(Источник);
КонецПроцедуры
Если у вас есть метод или галочка которые могут мне помочь в ето задачи буду благодарен за подсказку
Процедура ЗарегистрироватьИзмененияПриЗаписиСправочникаДокументаДляОбм
// Не реестрировать изменения , тех справочников которых нету в составе (они итак не попадут в реестрацию , если на них нет отделньой логики)
ОбъектСоставаБ_ПланаОбмена = Метаданные.ПланыОбмена.Б_ОбменССайтом.Состав.Найти(Источник.Метаданные());
Если ОбъектСоставаБ_ПланаОбмена = Неопределено Тогда
Возврат
КонецЕсли;
// И для тех справочников которые есть , но нужно сделать реестрацию (при загрузке с другой базы или просто записи)
Если Источник.ДополнительныеСвойства.Свойство("ИгнорироватьРеестрациюИзмененийБитрикс") Тогда
Возврат
КонецЕсли;
ЗарегистрироватьИзменения(Источник);
КонецПроцедуры
Если у вас есть метод или галочка которые могут мне помочь в ето задачи буду благодарен за подсказку