программная регистрация/снятие регистрации объектов к обмену EnterpriseData

1. 8 02.05.21 15:48 Сейчас в теме
Добрый день!

как регистрировать к обмену объекты при обменах EnterpriseData ?

Обмен справочниками односторонний из Центральной базы в Периферийные, все базы на основе БП3
часть справочников распостраняем с безусловной адресацией, часть справочников с условной регистрацией через связь с реквизитом "Организация".

Условная для справочников «Организация», Контрагент, Договор, Физлицо, БанковскийСчет , реквизит "Организация" определяет принадлежность к узлу обмена:
Справочники :
Организация – понятно
Договоры – есть ссылка на организацию + тянем и владельца.
Контрагент – у него есть договоры в которых есть ссылка на организации.
Банковские счета – у владельца есть договоры в которых указаны организации.
Документ - по организации + рекурсивно собрали весь ссылочный тип в нем.

как программно организовать регистрацию элементов в целевые узлы обмена ? есть неудачный опыт работы с правилами регистрации, кодом логичнее понятнее и отладка под рукой.

Как отрабатывается ситуация когда документ или справочник в Центральной базе записали с одной организацией, потом выяснили что ошиблись и изменили организацию?

Если обмен уже прошел - понятно, удалять данные в базе назначения куда пришел не нужный этой базе объект.

а как корректнее поступать до обмена ?
мысль пришла одна пока одна - при записи создать массив ссылок и регистрировать их по фактическим данным объекта на целевых узлах а на всех прочих узлах снимать регистрацию.

те если пользователь метался и в течении пары минут перезаписал объект с разными организациями то останется регистрация только на корректных узлах.
Ответы
В избранное Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
2. insurgut 194 02.05.21 16:17 Сейчас в теме
Проще всего запретить пользователю "метаться" и запретить ему изменять реквизит организации в документах после записи. Если ошибся - помечай на удаление документ.
3. alexander-lubich 8 02.05.21 16:48 Сейчас в теме
здраво, но не уверен что выполнимо, а как регистрировать объект на нужном узле?
4. insurgut 194 02.05.21 17:15 Сейчас в теме
(3) на узлах принадлежащих организации - ПланыОбмена.ЗарегистрироватьИзменения,
на узлах не принадлежащих организации - ПланыОбмена.УдалитьРегистрациюИзменений
Но это актуально до выполнения обмена по расписанию.
Но там столько нюансов, один из которых вы описали (про изменение организации в документе - её ведь могут изменить и после того, как обмен уже прошел). Гораздо проще решить проблему на корню - запретить изменять организацию.
Оставьте свое сообщение
Вопросы с вознаграждением