Условия обмена между нераспределенными базами данных #379828


#0 by Alex_MA
Здравствуйте уважаемые программисты ! Подскажите пожайлуста 1. Вообщем две БД 2. Поток данных в двух направлениях Возникает вопрос: Выгрузили определенный квант данных из БД1 в БД2. Далее эти данные изменили в обоих БД. (Ну скажем определенную запись регистра сведений) При нажатии на кнопочку (Обмена) БД1 не должны приниматься измененные данные БД2. Как это организовать ? В частности я могу посмотреть при считывании сообщения: А как посмотреть изменены ли данные в текуще БД1 (Где жму кнопку обмена) ? Спасибо за внимание.
#1 by ТелепатБот
#2 by Serg_1960
Если у Вас РИБ-база, - то приоритет за изменениями главного узла перед подчиненным узлом "по умолчанию".
#3 by Alex_MA
дело в том что она не распределенная
#4 by Serg_1960
Тогда Вам СП читать: Синтаксис: ИзменениеЗарегистрировано(<Узел>, <Данные>) Параметры: <Узел> (обязательный) Тип: ПланОбменаСсылка. Узел, по отношению к которому может быть зарегистрировано изменение. <Данные> (обязательный) Тип: <Данные>. Этот параметр показывает данные, для которых может быть зарегистрировано изменение. Значением данного параметра может быть объект, представляющий данные, хранимые в базе данных, такой как документ, элемент справочника, счет бухгалтерского учета, менеджер записи константы, набор записей регистра и т. п., ссылка на объект базы данных. Если указан УдалениеОбъекта, то проверяется регистрация изменений для объекта базы данных, на который указывает ссылка, содержащаяся в объекте УдалениеОбъекта. Возвращаемое значение: Тип: Булево. Истина - изменение зарегистрировано; Ложь - в противном случае. Описание: Определяет, зарегистрировано ли изменение одиночного элемента данных по отношению к тому или иному узлу плана обмена. Пример: Если Не ПланыОбмена.ИзменениеЗарегистрировано(Отправитель,Данные) Тогда
#5 by KalachevDV
Ну так сделайте реквизит "Главный". А при загрузке данных проверяйте. есть ли регистрация изменений для этих данных. Если есть, то в зависимости от значения реквизита "Главный" принимайте или отклоняйте изменения.
#6 by KalachevDV
Как проверить - в :)
#7 by Serg_1960
Если объект в сообщении - значит он был изменен в узле-отправителе (там, откуда сообщение). Перед изменением объекта Вы проверяте есть ли изменения объекта в узле-получателе и решаете принимать их или игнорировать...
#8 by Alex_MA
К ответу на вопрос все и сводиться...Как проверить в узле получателе (где происходит загрузка) есть ли изменения загружаемого из сообщения объекта ?
#9 by Serg_1960
Если один из узлов указан как Главный, то тогда "различать" их можно так: Если ЭтоГлавныйУзел Тогда ...
#10 by Alex_MA
Разобрался с проблемой. Спасибо всем за помощь. Надо просто добавить реквизит Главный как сказал KalachevDV.
#11 by Serg_1960
Или вот так:
#12 by Serg_1960
Это не реквизит надо было добавить :( Это свойство плана обмена :(( Синтаксис: УстановитьГлавныйУзел(<Главный узел>) Параметры: <Главный узел> (необязательный) Тип: ПланОбменаСсылка.<Имя плана обмена>, ПланОбменаОбъект.<Имя плана обмена>, Неопределено. Если в качестве значения параметра передается значение типа ПланОбменаСсылка.<Имя плана обмена> или ПланОбменаОбъект.<Имя плана обмена>, то план обмена, к которому относится ссылка или объект должен быть планом обмена распределенной информационной базы. Если в качестве значения передано значение Неопределено, то назначение главного узла отменяется. Описание: Устанавливает главный узел распределенной информационной базы для текущей информационной базы или отменяет назначение главного узла. Пример: ПланыОбмена.УстановитьГлавныйУзел(ГлУзел);
#13 by Alex_MA
В Демо конфигурации "Обмен данными" вопрос коллизий снимается именно при помощи реквизита Главный. А УстановитьГлавныйУзел подходит только для РИБ, а у меня не РИБ.
#14 by Serg_1960
Сорри, опять я на РИБе "зациклился" :(
Тэги:
Ответить:
Комментарии доступны только авторизированным пользователям

В этой группе 1С