Разрешение коллизий в 1С

Категория: Учебники по 1С » Технологии интеграции 1С Предприятия 8.2

В случае если данный сценарий не устраивает, можно реализовать прямо противоположный (принимаются изменения из нижестоящей базы).

 

Данный сценарий подразумевает, что для некоторых элементов данных, для которых он реализуется, выполняется следующее:

  • каждое изменение элемента данных, произведенное в любом из узлов распределенной информационной базы, стремится распространиться по всем узлам;
  • разрешение коллизий производится на основании отношения узлов «главный - подчиненный», но более высокий приоритет имеет подчи ненный узел.

Для рассмотрения данного случая воспользуемся приведенным выше примером с документом РасходнаяНакладная и планом обмена Магазины.

 

В данном случае требуется определить обработчики событий ПриПолученииДанныхОтПодчиненного и ПриПолученииДанныхОтГлавного в модуле плана обмена. Обработчик ПриПолученииДанныхОтПодчиненного будет иметь следующий вид:

Приведенный обработчик весьма прост: проверяется тип элемента данных, и если элемент данных относится к интересующему нас типу, то параметру ПолучениеЭлемента присваивается значение Принять, что приводит к безусловному приему элемента данных, независимо от того, зарегистрированы его изменения или нет.

 

Обработчик события ПриПолученииДанныхОтГлавного выглядит следующим образом:

Этот обработчик несколько сложнее. Если элемент данных относится к интересующему нас типу, то производится проверка - зарегистрированы ли изменения элемента данных для узла-отправителя сообщения. Если изменения зарегистрированы, то параметру ПолучениеЭлемента присваивается значение Игнорировать .
В результате прочитанный элемент данных не записывается в базу данных, а регистрация изменений сохраняется, что позволит поместить элемент данных в сообщение, отправляемое главному узлу.
dle

Помоги проекту! Расскажи друзьям о сайте: