Настройка одностороннего обмена в РИБ 8.1, 8.2 БЕЗ ИЗМЕНЕНИЯ КОНФИГУРАЦИИ

Статья описывает простой универсальный алгоритм настройки одностороннего обмена в РИБ 8.1 и 8.2 для любых конфигураций, имеющих план обмена, БЕЗ ИЗМЕНЕНИЯ КОДА.

        В Управляющей Компании холдинга (даллее УК) возникла задача создания копий баз всех предприятий холдинга и ежедневной поддержки их в актуальном состоянии. Многие предприятия холдинга находятся на большом расстоянии от УК (порой в других регионах), имеют различное качество связи и пользуются разными конфигурациями 1С 8.1 и 8.2. Для решения этой задачи ежедневная пересылка полных копий баз не подходит, ибо предприятий много, у одних интернет плохой, у других администраторы не в состоянии наладить автоматическую высылку копии и т.д. и т.п. Для решения данной задачи подходит РИБ, но как обеспечить односторонность передачи данных и при этом не влезать в код? (Для некоторых предприятий снятие с поддержки критично). Для решения этой задачи необходим обмен с использовниаем правил обмена. Итак:

        1. Создание правил обмена.

Если у вас одна из типовых конфигураций, указанных в анонсе, то возьмите правила из прикрепленных файлов, пропускайте 1й пункт и переходите ко 2му.

1.1 Для создания правил обмена используем конфигурацию конвертация данных ред.2. (Ее можно найти на любом диске ИТС либо скачать с сайта 1С). В конфигурации, которую мы распределяем, откроем файл MD81exp.epf либо MD82exp.epf, которые входят в комплект поставки конвертации данных. (Для 8.2  лежат, например, в C:Documents and Settings*user*Application Data1C1Cv82 mplts1cConversion2_1_5_1).

 

 

1.2 Выбираем файл, куда сохраним описание структуры метаданных, и жмем «Выгрузить«.

1.3 После завершения выгрузки запускаем конфигурацию Конвертация данных и открываем «Стартовый помощник«:

 

1.4 В появившемся окне жмем далее и выбираем пункт «Создать правила обмена с нуля» и «Далее«:

 

1.5 В следующем окне нам предлагают выбрать конфигурации для обмена- нажимаем «Новая«, и в появившемся окне выбираем наш файл из пункта 1.2 , жмем «Выполнить загрузку» :

 

1.6 Через некоторое время (5-10 мин.) загрузка закончится, и после нажатия «ОК» наша конфигурация появится в поле «конфигурация-источник«. Выбираем ее же в поле «конфигурация-приемник» и жмем «Далее«:

 

1.7 В появившемся окне выбираем 1й пункт и жмем «Выполнить«:

 

1.8 Через некоторое время правила создадутся, и мы увидим следующую картину:

 

1.9 В списке объектов есть один, который нам передавать точно не нужно. Я говорю о регистре сведений «ГраницыЗапретаИзмененияДанных» (Его передача приведет к коллизиям, в случае изменения даты запрета редактирования, что бывает не так и редко). Снимаем с него галочку и жмем «Создать правила выгрузки«:

 

1.10 Затем жмем кнопку «Сохранить правила«, выбираем имя файла и жмем «Сохранить«:

 

 В результате мы получили файл с правилами обмена данными нашей конфигурации с идентичной конфигурацией. Этот файл мы и используем в настройке РИБ.

    2. Настройка РИБ. (Я не буду расписывать создание РИБ, варианты настройки автообмена и т.д. Статьи на эту тему легко найти, опишу лишь нюансы, связанные с первоначальной задачей). Итак:

2.1 Настройка на основном узле: Переключаемся на полный интерфейс, заходим в меню «Сервис» —> «Распределенная информационная база (РИБ)» —> «Настроить узлы РИБ«. Нажимаем «Добавить» и попадаем в окно:

 

2.2 Выбираем наименование для настроек обмена данными, ставим галочку «Обмен по правилам обмена«, жмем кнопку «Загрузить правила«, выбираем наш файл из пункта 1.10 и на всякий случай жмем «Проверить правила«. (Не забудьте выбрать тип обмена и др. настройки).

 Жмем сохранить и переходим к настройке 2го узла (Копия).

2.3 Настройка на 2м узле (на последующих узлах она идентична, если таких копий нужно несколько). Повторяем действия пунктов 2.1 и 2.2 в копии и переходим на закладку «Обмен по правилам«, жмем «Загрузить настройки«:

2.4 После загрузки объектов выбираем все (ctrl+A) и жмем «Изменить настройку«. Меняем на «не выгружать«, жмем «ОК» .

 

2.5 Далее записываем настройку , и так как мы ничего назад в основной узел выгружать не будем, не забываем изменить дату запрета редактирования  на какую нибудь пораньше в разумных пределах (на пару лет назад, например, там точно ничего править не будут). Это необходимо для того , чтобы избежать проблем, связанных с изменением даты запрета редактирования, перепроведением документов и возврата даты обратно в между обменами. (Такое, как показывает практика, бывает сплошь и рядом).

2.6 Тестируем обмен.

38 Comments

  1. monster6666

    Статья описывает простой универсальный алгоритм настройки одностороннего обмена в РИБ 8.1 и 8.2 для любых конфигураций, имеющих план обмена, БЕЗ ИЗМЕНЕНИЯ КОДА.

    Перейти к публикации

    Reply ↓
  2. boutinol

    А в ЗУПе можно сделать такой обмен?

    Reply ↓
  3. monster6666

    Ну если очень нужно. То можно)

    Reply ↓
  4. WKBAPKA

    ололо, не проще было выложить книгу по конвертации?

    то такое впечателение, шо Америку открылие еще раз…

    и то такой обмен стал благодаря возможным после того как в РИБ добавили функцию обмена по правилам обмена… а ведь раньше таких возможностей не было 🙂

    Reply ↓
  5. monster6666

    Ололо может дадите ссылку на решение указанной задачи без изменения конфы? Я например не нашел другого решения и или подобного описания. Если ссылки нет, то оставьте ваше ололо для себя.

    Reply ↓
  6. pumbaE

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

    Reply ↓
  7. Just

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

    Reply ↓
  8. Valerich

    при изменении конфигурации (добавлении и удалении объектов конфигурации или их реквизитов) придется обновлять и правила обмена ?

    Reply ↓
  9. monster6666

    (5) pumbaE, Это будет уже не РИБ а независимые базы. Конфигурация передаваться не будет.

    Reply ↓
  10. monster6666

    (6) Just, Задача , описанная в шапке взята из реальной жизни и сейчас все работает в более чем 10 ти конфигурациях, УПП , БП и УТ . Проблем, связанных с неполной передачей данных пока не обнаружено. Если появятся таковые, подправлю статью.

    Reply ↓
  11. monster6666

    (7) Valerich, Придется редактировать правила.

    Reply ↓
  12. svsrus

    Спасибо за статью, как раз занимаюсь вопросом.

    Только вот мне кажется что есть проблемы в тех конфигурациях, где нет изначально плана обмена «Полный», например, «Розница».

    Reply ↓
  13. monster6666

    (11) svsrus, Пока не пробовал, нужно проверить.

    Reply ↓
  14. GStiv

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

    Reply ↓
  15. Estranger78

    Как все-таки правильно обновлять периферийную при такой реализации? Все работало, обмен на ура, конфа 2.0.32.4. Обновил центр до 2.0.33.7, правила пока не менял, обмен прошел, однако периферийная не запросила режим конфигуратора, в конфигураторе пункт «обновить конфигурацию БД» неактивный. Правила подготовил новые, но вопрос — обмен сам пройдет, после подсовывания новых правил и регистрации в центре новых документов или у меня тупо где-то галочка не стоит на формирование в файлах обмена изменений конфигурации??

    Reply ↓
  16. monster6666

    (14) Estranger78, Я скоро проверю все и на след неделе вам отпишусь (постараюсь пораньше). Извините сейчас со временем проблемы.

    Reply ↓
  17. diarki

    Вопрос, таким способом можно например сделать так что бы в риб обмен был двух сторонний но в филиалы не выгружались данных других филиалов и цо — а выгружалось из ЦО в филиал только документы перемещения + еще несколько типов документов. (справочники должны при этом обмениваться как положено т.е. двухсторонний обмен)

    Reply ↓
  18. OLga_gab

    Для меня статья — просто находка. Благодарю Вас.

    Reply ↓
  19. ProGramMoS

    monster6666, К сожалению большинство фото примеров не подгружаются в вашей статье, можно ли их восстановить?

    Reply ↓
  20. azeraus

    Сделал все как в статье но при обмене выдает ошибку

    Ошибка при выгрузке данных для узла плана обмена

    Объект = Расход по налогу на прибыль

    ОписаниеОшибки = Метод объекта не обнаружен (ОпределитьТипОтправкиДанных)

    ПозицияМодуля = Обработка.ОбменДаннымиXML.МодульОбъекта(12009)

    КодСообщения = 72

    УзелПланаОбмена = РИБ Приемник

    Произошла ошибка при выгрузке объектов. Было выгружено: 0

    Подскажите как это исправить.

    Заранее спасибо

    Reply ↓
  21. 88wau24ru

    Интересует один момент, в данном случае РегистрацияОбмена изменяется или файл выгрузки будет постоянно расти?

    Reply ↓
  22. Marka_

    Грамотно изложено.Спасибо.

    Reply ↓
  23. arjuna

    (22) 88wau24ru,

    Важный вопрос про размер файла выгрузки остался без ответа. Еще раз повторю. Т.к. обмен идет в одном направлении, база отправитель не знает получена или нет выгрузка и (возможно) будет выгружать одни и те же старые данные + новые, что приведет к увеличению размера файла обмена. Кто пользуется таким способом обмена, проверьте размер файла.

    Reply ↓
  24. dmb2006

    Очень полезно. спасибо

    Reply ↓
  25. Lo1jke

    (24) arjuna,

    Как раз сейчас столкнулся с такой проблемой. Может удалось как-то настроить правила обмена, чтобы объекты снимались с регистрации после выгрузки?

    Reply ↓
  26. kkoonnaann

    Размер файла не увеличивается. Обмен идет не в одном направлении, выгрузка и загрузка данных идет в обе стороны, просто в базу отправитель новые или измененные объекты не загружаются. И таким образом база отправитель все -равно получает файл с информацией получена ли ее выгрузка

    Reply ↓
  27. 88wau24ru

    Дело было давно, но я сделал Односторонний РИБ с добавленной процедурой в модуль ПланаОбмена

    Процедура ПриОтправкеДанныхГлавному(ЭлементДанных, ОтправкаЭлемента)
    
    ОтправкаЭлемента = ОтправкаЭлементаДанных.Игнорировать;
    
    КонецПроцедуры

    Все принимает, и ничего не отдает…

    А в статье очень много букв….

    Reply ↓
  28. fdsa456

    (28) 88wau24ru, Спасибо, сэкономило время.

    Reply ↓
  29. rasdag

    Кто нибудь пробовал организовать односторонний обмен на БП 3.0?

    Reply ↓
  30. 88wau24ru
    #Если Сервер Или ТолстыйКлиентОбычноеПриложение Или ВнешнееСоединение Тогда
    
    ////////////////////////////////////////////////////////////­////////////////////
    // ОБРАБОТЧИКИ СОБЫТИЙ
    
    Процедура ПередЗаписью(Отказ)
    
    Если ОбменДаннымиСервер.НадоВыполнитьОбработчикПослеЗагрузкиДанных(ЭтотОбъект, Ссылка) Тогда
    
    ПослеЗагрузкиДанных(Отказ);
    
    КонецЕсли;
    
    КонецПроцедуры
    
    ////////////////////////////////////////////////////////////­////////////////////
    // СЛУЖЕБНЫЕ ПРОЦЕДУРЫ И ФУНКЦИИ
    
    Процедура ПослеЗагрузкиДанных(Отказ)
    
    Справочники.КлючиАналитикиУчетаЗатрат.ЗаменитьДублиКлючейАналитики();
    Справочники.КлючиАналитикиУчетаНДС.ЗаменитьДублиКлючейАналитики();
    
    КонецПроцедуры // ПослеЗагрузкиДанных()
    
    #КонецЕсли

    Показать

    Не делал, но если скопировать Полный, или ПоОрганизации и добавить процедуру из (28) думаю будет работать!

    Reply ↓
  31. monster6666

    (28) 88wau24ru, Конечно вы правы, но ключевое слово «без изменения конфигурации». Для многих снятие с поддержки принципиально критично. Именно о таком случае статья собсно.

    Reply ↓
  32. Svetlya4ok13

    (14) Estranger78, не нашли решение проблемы?

    Мы тоже с ней столкнулись.

    За статью Спасибо! Пользуемся.

    Reply ↓
  33. NikolaST

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

    Reply ↓
  34. monster6666

    (34) NikolaST, Тогда придется воспользоваться советом из комента 28. И таки изменить конфигурацию.

    Reply ↓
  35. murat_

    (35) или добавить подписку на событие.

    Reply ↓
  36. Rokstedi

    (24)

    Все таки размер файла постоянно растет, регистрация изменений не очищается

    Reply ↓
  37. Rokstedi

    (39) Забираю свои слова обратно =). Изменения очищаются только если все документы перепровелись в подчиненной базе.

    Reply ↓

Leave a Comment

Ваш адрес email не будет опубликован. Обязательные поля помечены *