Рецепт от http://1c39.ru. Для приготовления этого блюда потребуется УТ 11 одна штука. Открываем план обмена полный. Нажимаем состав. Создаем такой же в УНФ и снимаем галки у тех же объектов, что и в УТ. Авторегистрация — запретить. Ставим галку РИБ. Запихиваем в подсистему обмен данными. Макеты не используем. В модуль объекта пишем (из ИТС):
Перем КоличествоОбъектовЗагружено;
Перем КоличествоОбъектовВыгружено;
Процедура ПриОтправкеДанныхПодчиненному(ЭлементДанных, ОтправкаЭлемента, СозданиеНачальногоОбраза)
КоличествоОбъектовВыгружено = КоличествоОбъектовВыгружено + 1;
КонецПроцедуры
Процедура ПриОтправкеДанныхГлавному(ЭлементДанных, ОтправкаЭлемента)
КоличествоОбъектовВыгружено = КоличествоОбъектовВыгружено + 1;
КонецПроцедуры
Процедура ПриПолученииДанныхОтПодчиненного(ЭлементДанных, ПолучениеЭлемента, ОтправкаНазад)
КоличествоОбъектовЗагружено = КоличествоОбъектовЗагружено + 1;
КонецПроцедуры
Процедура ПриПолученииДанныхОтГлавного(ЭлементДанных, ПолучениеЭлемента, ОтправкаНазад)
КоличествоОбъектовЗагружено = КоличествоОбъектовЗагружено + 1;
КонецПроцедуры
Процедура ПередЗаписью(Отказ)
Если ОбменДаннымиСервер.НадоВыполнитьОбработчикПослеВыгрузкиДанных(ЭтотОбъект, Ссылка) Тогда
ПослеВыгрузкиДанных(Отказ);
ИначеЕсли ОбменДаннымиСервер.НадоВыполнитьОбработчикПослеЗагрузкиДанных(ЭтотОбъект, Ссылка) Тогда
ПослеЗагрузкиДанных(Отказ);
КонецЕсли;
КонецПроцедуры
Процедура ПослеВыгрузкиДанных(Отказ)
Сообщить(«КоличествоОбъектовВыгружено: » + Строка(КоличествоОбъектовВыгружено));
КонецПроцедуры
Процедура ПослеЗагрузкиДанных(Отказ)
Сообщить(«КоличествоОбъектовЗагружено: » + Строка(КоличествоОбъектовЗагружено));
КонецПроцедуры
КоличествоОбъектовЗагружено = 0;
КоличествоОбъектовВыгружено = 0;
В модуль менеджера добавляем заглушки (http://www.conf1c.ru/2012/05/blog-post_02.html):
Функция ПояснениеДляНастройкиПараметровУчета() Экспорт
Возврат «»;
КонецФункции
Функция ЗначенияПоУмолчаниюНаУзле() Экспорт
Возврат Неопределено;
КонецФункции
Функция ЗначенияПоУмолчаниюНаУзлеБазыКорреспондента() Экспорт
Возврат Неопределено;
КонецФункции
Функция ИмяФайлаНастроекДляПриемника() Экспорт
Возврат НСтр(«ru = ‘Настройки обмена УНФ-УНФ'»);
КонецФункции
Функция ИспользуемыеТранспортыСообщенийОбмена() Экспорт
Результат = Новый Массив;
Результат.Добавить(Перечисления.ВидыТранспортаСообщенийОбмена.FILE);
Возврат Результат;
КонецФункции
Функция ИмяФормыСозданияНачальногоОбраза() Экспорт
Возврат «»;
КонецФункции
Функция ЗаголовокКомандыДляСозданияНовогоОбменаДанными() Экспорт
Возврат НСтр(«ru = ‘Создать обмен УНФ-УНФ'»);
КонецФункции
Функция ИспользоватьПомощникСозданияОбменаДанными() Экспорт
Возврат Истина;
КонецФункции
Функция НастройкаОтборовНаУзле() Экспорт
Возврат Неопределено;
КонецФункции
Функция НастройкаОтборовНаУзлеБазыКорреспондента() Экспорт
Возврат Неопределено;
КонецФункции
Функция ОписаниеЗначенийПоУмолчанию(ЗначенияПоУмолчаниюНаУзле) Экспорт
Возврат «»;
КонецФункции
Функция ОписаниеЗначенийПоУмолчаниюБазыКорреспондента(ЗначенияПоУмолчаниюНаУзле) Экспорт
Возврат «»;
КонецФункции
Функция ОписаниеОграниченийПередачиДанных(НастройкаОтборовНаУзле) Экспорт
Возврат «»;
КонецФункции
Функция ОписаниеОграниченийПередачиДанныхБазыКорреспондента(НастройкаОтборовНаУзле) Экспорт
Возврат «»;
КонецФункции
Создаем общий модуль (код взят из УТ 11):
////////////////////////////////////////////////////////////////////////////////
// Обмен Полный
// Процедура-обработчик события «ПередЗаписью» ссылочных типов данных (кроме документов) для механизма регистрации объектов на узлах
//
// Параметры:
// ИмяПланаОбмена – Строка – имя плана обмена, для которого выполняется механизм регистрации
// Источник — источник события, кроме типа ДокументОбъект
// Отказ — Булево — флаг отказа от выполнения обработчика
//
Процедура ОбменДаннымиПолныйПередЗаписью(Источник, Отказ) Экспорт
ОбменДаннымиСобытия.МеханизмРегистрацииОбъектовПередЗаписью(«Полный», Источник, Отказ);
КонецПроцедуры
// Процедура-обработчик события «ПередЗаписью» документов для механизма регистрации объектов на узлах
//
// Параметры:
// ИмяПланаОбмена – Строка – имя плана обмена, для которого выполняется механизм регистрации
// Источник — ДокументОбъект — источник события
// Отказ — Булево — флаг отказа от выполнения обработчика
//
Процедура ОбменДаннымиПолныйПередЗаписьюДокумента(Источник, Отказ, РежимЗаписи, РежимПроведения) Экспорт
ОбменДаннымиСобытия.МеханизмРегистрацииОбъектовПередЗаписьюДокумента(«Полный», Источник, Отказ, РежимЗаписи, РежимПроведения);
КонецПроцедуры
// Процедура-обработчик события «ПередЗаписью» константы для механизма регистрации объектов на узлах
//
// Параметры:
// ИмяПланаОбмена – Строка – имя плана обмена, для которого выполняется механизм регистрации
// Источник — КонстантаМенеджерЗначения — источник события
// Отказ — Булево — флаг отказа от выполнения обработчика
//
Процедура ОбменДаннымиПолныйПередЗаписьюКонстанты(Источник, Отказ) Экспорт
ОбменДаннымиСобытия.МеханизмРегистрацииОбъектовПередЗаписьюКонстанты(«Полный», Источник, Отказ);
КонецПроцедуры
// Процедура-обработчик события «ПередЗаписью» регистров для механизма регистрации объектов на узлах
//
// Параметры:
// ИмяПланаОбмена – Строка – имя плана обмена, для которого выполняется механизм регистрации
// Источник — НаборЗаписейРегистра — источник события
// Отказ — Булево — флаг отказа от выполнения обработчика
// Замещение — Булево — признак замещения существующего набора записей
//
Процедура ОбменДаннымиПолныйПередЗаписьюРегистра(Источник, Отказ, Замещение) Экспорт
ОбменДаннымиСобытия.МеханизмРегистрацииОбъектовПередЗаписьюРегистра(«Полный», Источник, Отказ, Замещение);
КонецПроцедуры
// Процедура-обработчик события «ПередУдалением» ссылочных типов данных для механизма регистрации объектов на узлах
//
// Параметры:
// ИмяПланаОбмена – Строка – имя плана обмена, для которого выполняется механизм регистрации
// Источник — источник события
// Отказ — Булево — флаг отказа от выполнения обработчика
//
Процедура ОбменДаннымиПолныйПередУдалением(Источник, Отказ) Экспорт
ОбменДаннымиСобытия.МеханизмРегистрацииОбъектовПередУдалением(«Полный», Источник, Отказ);
КонецПроцедуры
Создаем подписки на события (снимаем галки у типов объектов как в УТ) и привязываем к процедурам из модуля.
В ОбменДаннымиПредопределяемый Процедура ПолучитьПланыОбмена(ПланыОбменаПодсистемы) Экспорт добавляем строчку:
ПланыОбменаПодсистемы.Добавить(Метаданные.ПланыОбмена.Полный);
Для следующих общих команд добавляем параметр план обмена полный:
ВыполнитьОбменДанными
НастроитьПараметрыТранспортаСообщенийОбмена
ОткрытьПравилаРегистрацииОбъектов
ОткрытьСценарииОбменовДанными
ПерейтиВЖурналРегистрацииСобытийВыгрузкиДанных
ПерейтиВЖурналРегистрацииСобытийЗагрузкиДанных
ПолучитьНастройкиОбменаДаннымиДляВторойИнформационнойБазы
Создаем общую команду ОткрытьПомощникНастройкиОбмена
Процедура ОбработкаКоманды(ПараметрКоманды, ПараметрыВыполненияКоманды)
ОбменДаннымиКлиент.ВыполнитьОбменДаннымиОбработкаКоманды(ПараметрКоманды, ПараметрыВыполненияКоманды.Источник);
КонецПроцедуры
Извесные косяки которые пока не планирую исправлять:
Помощник обмена в самом конце вываливается с ошибкой. Закрываем, кликаем на строку с настройкой обмена, в меню настройка-изменить, все действия — создать начальный образ.
После обновления конфы в переферийной базе пишет ошибку обмена — хотя на самом деле конфа обновилась. Решение — перезапускаем предприятие и повторяем обмен.
Подскажите как опубликовать только ту часть конфигурации, которую написал я, чтобы не нарушать права 1с? Если в процессе реализации возникают вопросы то сначала смотрите как это сделано в УТ, потом задавайте вопросы в комментариях.
Думаю, скоро появится и штатно. В первых релизах УТ 11 — вообще ничего не было, потом функционал из 10.3 стали добавлять.
Наверное скоро будет… Но пока это актуально!
Это актуально для любой конфы на базе БСП, в том числе и для любой самописной.
(3) За это и респект автору.
Автору плюс. Как раз имею самописную конфигурацию на базе БСП и хотел бы внедрить РИБ. Выглядит вроде не очень страшно.
Уж не знаю, как скоро появится в штатной, но у меня уже 3 месяца работает. Причем тупо создал план обмена, и галочки снимал чисто на глаз. Автору спасибо за публикацию — подправлю теперь свое творчество, и теперь я понял почему у меня всегда пишет выгружено 0 объектов. Ошибку с созданием образа подчиненной побеждал так — сохранял образ не в локальный каталог, а использовал сетевой путь, который начинается с \
Для 1.4.4.11 в модуль менеджера плана обмена Полный нужно еще добавить:
Показать
Иначе УНФ вообще не запускается.
В продолжение темы:
Модуль менеджера плана обмена Полный:
Исправляем процедуру
При запуске ПИБ вываливается на исключении в обработчике ПередЗаписью справочника ИдентификаторыОбъектовМетаданных:
Включение справочника в обмен пока не помогло.
Пока остановился на этом, разберусь, отпишу.
Просто закоментируй вызов исключения. В 1.4.4.10 много чего поменялось — нужно добавить несколько заглушек в модуль менеджера.
Показать
Добрый день! Не могли бы Вы выслать на почту ksaz@bk.ru .cf файл УНФ с настроенным планом обмена? а то у меня какие то ошибки выходят и не хочет создаваться распределенная база, буду очень очень благодарен !!!
Мир этому дому!
Автору плюс. Полезная информация по использованию БСП.
При обновлении на 1.4.6.19 в модуль менеджера плана обмена надо добавить функцию:
//Возвращает режим запуска, в случае интерактивного инициирования синхронизации
//Возвращаемые значения АвтоматическаяСинхронизация Или ИнтерактивнаяСинхронизация
//На основании этих значений запускается либо помощник интерактивного обмена, либо автообмен
Функция РежимЗапускаСинхронизацииДанных(УзелИнформационнойБазы) Экспорт
Возврат «АвтоматическаяСинхронизация»;
КонецФункции
При включении базы подчинённого узла выходит ошибка.
{Справочник.ИдентификаторыОбъектовМетаданных.МодульМенеджера(373)}: Ошибка при вызове метода контекста (Записать)
ТаблицаОбъект.Записать();
по причине:
Ошибка при выполнении обработчика — ‘ПередЗаписью’
по причине:
{Справочник.ИдентификаторыОбъектовМетаданных.МодульОбъекта(96)}: Ошибка при работе со справочником «Идентификаторы объектов метаданных».
Добавление новых элементов может быть выполнено
только в главном узле распределенной информационной базы.
ТаблицаОбъект.Записать();
Вышлите мне пожалуйста .cf файл УНФ с настроенным планом обмена.
kawaii@live.ru
Не могу обойти возникающие ошибки. Релиз (1.4.6.19)
Вышлите мне пожалуйста .cf файл УНФ с настроенным планом обмена. (На любом релизе)
У меня есть сильно переписаная под нужды заказчика конфигурация. Это будет некорректно по отношению к заказчику и нарушать права самой 1с. Предложите метод, который позволит выгрузить лишь отличия между типовой кинфигурацией и УНФ+РИБ. Почитайте статью на ИТСhttp://its.1c.ru/db/bspdoc?db=bspdoc#content:34:1 .Либо обратитесь к франчайзи своего региона. Я думаю они смогут вам помочь.
(14) 13kawaii13, Здравствуйте, тоже возникла ошибка такая же как у Вас, Вы справились с ней?
(17) sudo90, Просто не стали обновляться на последний релиз.
Жаль, а у нас версия как раз 1.4.6.19((
Для 1.4.7.37 подробно описано по ссылкеhttp://infostart.ru/public/249881/
Если в модуле «ОбменДаннымиПовтИсп», процедура «ИспользуемыеТранспортыСообщенийОбмена» закомментировать строки:
, то это позволяет производить синхронизацию в режиме сервиса, по http протоколу.
(Версия УНФ 1.6.4.19)
Прошло 4 года с момента публикации. Видимо штатный РИБ в УНФ уже вряд ли появится…
кто настраивал в 1.6? вроде бы создает РИБ, но при запуске ее отображает не все разделы, только Работа, Зарплата, Производство. В чем может быть косяк?