Каталог решений - УНФ РИБ

УНФ РИБ

УНФ РИБ

В наличии

В типовой УНФ нет РИБа. Исправляем этот недостаток, используя УТ 11 и ИТС. Статья подойдет для настойки распределенки в любой конфе на базе БСП.

Категория:

Описание

 Рецепт от 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с? Если в процессе реализации возникают вопросы то сначала смотрите как это сделано в УТ, потом задавайте вопросы в комментариях.

 

has been added to your cart:
Оформление заказа