Книга знаний

1С:Предприятие / v8 / Приемы программирования / Обмен данными, УРБД

v8: Альтернативное создание начального образа в УРБД

Статья описывает альтернативный способ создания начального образа для подчиненной базы данных.Автор статьи:
Последняя редакция №1 от 11.08.06
URL: http://kb.mista.ru/article.php?id=325

Ключевые слова: Начальный, образ, подчиненная база данных, план обмена


При формировании распределенной системы обмена данных, для создания начального образа подчиненной базы обычно используется кнопка на форме списка планов обмена "Создать начальный образ" или программная процедура:
СоздатьНачальныйОбраз(<Узел>, <Строка соединения>)

Это штатное решение 1С, однако, оно страдает некоторыми недостатками. Самый существенный из них это такой, что если нужно выгружать много данных и база данных большая, то создание начального образа растягивается на часы. Частенько, создании образа не завершается, по причине неожиданной перезагрузки компьютера или ошибок выгрузки данных.
Чтобы обойти эти ограничения и ускорить создание начального образа предлагается следующая методика:
  1. Создать нужные узлы в плане обмена. На данном этапе мы должны в основной базе данных создать все нужные узлы, которые будут участвовать в обмене. Узлу присваивается уникальный код и наименование.

  2. Создать копию информационной базы. Если информационная база в файловом варианте, то копия создается простым копирование 1Cv8.1CD. Если вариант ИБ клиент-серверный, то сначала нужно выгрузить базу в режиме конфигуратора в dt-файл (1Cv8.dt), а потом загрузить ее в новую базу
  3. Подготовить вновь созданную базу к использованию, как подчиненную.
    • Удалим все не нужные узлы. Для это нужно использовать непосредственное удаление элементов из планов обмена.
    • Удалить изменения для узлов обмена. Программно данную процедуру для всех узлов обмена можно выполнить код:
      ПланыОбмена.УдалитьРегистрациюИзменений(Узел);
      

    • Очистить номера сообщений для всех узлов в планах обмена. Данная процедура нужно в случае если узлы для плана обмена не создавались "с нуля" и для них уже выгружались/загружались данные.
      ОбъектУзел = Узел.ПолучитьОбъект();    
      ОбъектУзел.НомерОтправленного = 0;
      ОбъектУзел.НомерПринятого = 0;
      ОбъектУзел.Записать();
      

    • Поменять местами код и наименование между главным узлом и подчиненным. Т.е. в нашей (копии главной) базе сейчас текущим узлом является главный узел, это потому что база создавалась копированием. Нужно код и наименование подчиненного узла перенести в текущий узел, а код и наименование главного узла в другой, не текущий. Например в планах обмена два узла: "Главный" и "Подчиненный". "Главный" имеет признак текущего для данной ИБ узла. Переносим код из узла "Главный" в узел "Подчиненный" и наоборот из "Подчиненный" в "Главный".
    • Установить главный узел. На данном этапе устанавливаем главным узел в который мы перенесли код и наименование из бывшего главного узла:
      ПланыОбмена.УстановитьГлавныйУзел(Узел);
      


    • При этом возле главного узла появиться красная пиктограмма.
  4. Осуществить тестовый обмен данными между подчиненным и главным узлом. Установить, настроить дополнительные реквизиты в главной и подчиненной базе. На этом этапе уже базы готовы для использования


Минус данной методики такой, что в подчиненную базу попадают сразу все данные, которые есть в главной. Т.е. если у нас в настройках обмена есть фильтры на выгрузку данных, то данные в подчиненной базе придется создавать "вычищать" вручную. Возможен вариант решения проблемы, когда регистрируем все изменения для данных в подчиненной базе и выгружаем в главную. В главной полученные данные обрабатываем так, что если эти данные не проходят по фильтру, то в подчиненную посылаем  "УдалениеОбъекта". При загрузке сообщения в подчиненной базе, все "ненужные" элементы будут удалены.

Полезные ссылки в книге знаний:
Книга знаний: УРБД на v8 за четыре шага.;
Книга знаний: v8: Выборочная миграция данных в УРБД;

Описание | Рубрикатор | Поиск | ТелепатБот | Захваченные статьи | Установки | Форум
© Станислав Митичкин (Волшебник), 2005-2025 | Mista.ru

Яндекс.Метрика