Двухсторонний обмен УПП-БПП

1. irene1239026 15.06.26 13:58 Сейчас в теме
УПП, ред. 1.3 (1.3.271.1)
Бухгалтерия предприятия КОРП, редакция 3.0 (3.0.195.40)


Добрый день.
Настраиваю двухсторонний обмен УПП-БП. Объекты, которые выгружаются из УПП, при загрузке в БП сразу регистрируются к обмену, чего не должно быть.
Нашла, что в общем модуле ОбменДаннымиСобытия игнорируется параметр ОбменДанными.Загрузка, т.е. регистрация выполняется в любом случае. Получается циклический обмен.
Кто может подсказать, что нужно сделать, чтобы обмен работал корректно, без регистрации только что загруженных объектов?
Нужно сделать правила регистрации? Или есть еще какие-то решения?
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. nomad_irk 84 15.06.26 14:02 Сейчас в теме
(1) Разобраться, почему в режиме ОбменДанными.Загрузка = Истина происходит регистрация объектов к выгрузке, не предлагать?
3. irene1239026 15.06.26 14:08 Сейчас в теме
(2) Этот флаг установлен, но он игнорируется штатным кодом. Поэтому возник вопрос как настраивать.
4. nomad_irk 84 15.06.26 14:09 Сейчас в теме
(3) Исправил сообщение. Такого не должно быть, вроде как. Разобраться не пробовали?
5. irene1239026 15.06.26 14:31 Сейчас в теме
Я смотрела в отладчике, что происходит. На каждый объект срабатывает подписка на событие, которая выполняет регистрацию объекта. Перед регистрацией проверяется модифицированность объекта, при этом флаг ОбменДанными.Загрузка игнорируется.
Прикрепленные файлы:
6. nomad_irk 84 15.06.26 14:41 Сейчас в теме
(5) Подписка на событие самого объекта? Возможно, подразумевается использование правил регистрации объектов?
7. irene1239026 15.06.26 14:52 Сейчас в теме
Да, у каждого объекта есть подписка на событие, которая срабатывает и выполняет регистрацию.
Вот в этом и вопрос - надо использовать правила регистрации, это решит проблему?
8. nomad_irk 84 15.06.26 15:24 Сейчас в теме
(7) хотя бы попробовать на одном из объектов, чтобы понять.....
9. irene1239026 16.06.26 08:55 Сейчас в теме
Пока остановилась на таком решении - удалять регистрацию объектов в обработчике ПослеЗагрузкиДанных:

Узел = ПланыОбмена.Полный.НайтиПоКоду("002");
Для Каждого ТекЭлемент Из ЗагруженныеОбъекты Цикл
	ПланыОбмена.УдалитьРегистрациюИзменений(Узел,ТекЭлемент.Значение.СсылкаНаОбъект);
КонецЦикла;
10. nomad_irk 84 16.06.26 08:59 Сейчас в теме
(9) можно чуть оптимизировать:

Узел = ПланыОбмена.Полный.НайтиПоКоду("002");
МассивСсылок = Новый Массив;
Для Каждого ТекЭлемент Из ЗагруженныеОбъекты Цикл
   МассивСсылок.Добавить(ТекЭлемент.Значение.СсылкаНаОбъект);
КонецЦикла;
ПланыОбмена.УдалитьРегистрациюИзменений(Узел, МассивСсылок);
VyacheslavShilov; +1 Ответить
11. irene1239026 16.06.26 09:14 Сейчас в теме
(10) Да, так правильнее. Не нравится, что указан конкретный номер узла, но пока не нашла как вытащить ссылку плана-источника.
12. irene1239026 16.06.26 22:53 Сейчас в теме
(9) Этот вариант подходит только для ссылочных типов.Остаются регистры, константы и т.п. объекты, у которых ссылок нет. Как для них удалить регистрацию изменений?
Для отправки сообщения требуется регистрация/авторизация

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот