Создание управленческой базы данных
Рассматривается вариант создания актуальной копии базы данных с помощью планов обмена данными. Данный вариант можно использовать в случаях, когда обмен данными должен обеспечивать соответствие движений документов. Например, для отражения управленческой зарплаты
- Описание
- Подробнее
Описание
Для обмена данными в типовых решениях используется план обмена. Настройка обмена данными позволяет обмениваться либо по правилам обмена с последующим проведением документов, либо между идентичными узлами распределенной базы данных (РИБ). Для обмена между базами не являющимися РИБ нужно добавить в планы обмена несколько функций.
1.Добавляем в модуль плана обмена «Полный» три функции:
1.1
Функция ЗаписатьНовоеСообщение(ЗаписьXML, ЗаписьСообщения)
НомерСообщения = ЗаписьСообщения.НомерСообщения;
Получатель = ЗаписьСообщения.Получатель;
СписокТипов = Новый СписокЗначений();
НачатьТранзакцию();
ВыборкаИзменений = ПланыОбмена.ВыбратьИзменения(Получатель, НомерСообщения);
Пока ВыборкаИзменений.Следующий() Цикл
Данные = ВыборкаИзменений.Получить();
Если ТипЗнч(Данные) = Тип("УдалениеОбъекта") Тогда
Иначе
// Если СписокТипов.НайтиПоЗначению(ТипЗнч(Данные)) = Неопределено Тогда
// Продолжить;
// КонецЕсли;
КонецЕсли;
ЗаписатьXML(ЗаписьXML, Данные);
КонецЦикла;
ЗафиксироватьТранзакцию();
Возврат НомерСообщения;
КонецФункции // ЗаписатьНовоеСообщение(ИмяФайла) 1.2
Функция ВыгрузитьИзмененияДанныхДляУзла(Получатель, КоличествоЭлементовВТранзакции, ЗаписьXML) Экспорт
ЗаписьСообщения = ПланыОбмена.СоздатьЗаписьСообщения();
ЗаписьСообщения.НачатьЗапись(ЗаписьXML, Получатель);
ЗаписатьНовоеСообщение(ЗаписьXML, ЗаписьСообщения);
ЗаписьСообщения.ЗакончитьЗапись();
Результат = Истина;
Возврат Результат;
КонецФункции1.3
Функция ЗагрузитьИзмененияДанныхДляУзла(УзелОбмена, КоличествоЭлементовВТранзакции, ЧтениеXML) Экспорт
ЧтениеСообщения = ПланыОбмена.СоздатьЧтениеСообщения();
ЧтениеСообщения.НачатьЧтение(ЧтениеXML);
НомерСообщения = ЧтениеСообщения.НомерСообщения;
НачатьТранзакцию();
Пока ВозможностьЧтенияXML(ЧтениеXML) Цикл
Данные = ПрочитатьXML(ЧтениеXML);
Данные.ОбменДанными.Отправитель = ЧтениеСообщения.Отправитель;
Данные.ОбменДанными.Загрузка = Истина;
Данные.Записать();
КонецЦикла;
ПланыОбмена.УдалитьРегистрациюИзменений(ЧтениеСообщения.Отправитель, ЧтениеСообщения.НомерПринятого);
ЗафиксироватьТранзакцию();
ЧтениеСообщения.ЗакончитьЧтение();
Результат = Истина;
Возврат Результат;
КонецФункции2. Снимаем для плана обмена «Полный» флажок «Распределенная информационная база»
3. В настройках обмена данными указываем тип обмена — обмен через файловый ресурс
4. В случае, если нам нужен односторонний обмен, убираем авторегистрацию изменений базе приемнике.
Периодичность обмена данными можно настройть, например, через константу «ВремяОпросаРегламентныхЗаданийВФайловомРежиме».

