РИБ: При создании периферийной базы отменить регистрацию некоторых объектов

  1. 10 г. назад

    Помогите, друзья.

    Мне необходимо при создании нового узла РИБ Отменить регистрацию объектов Справочники.Файлы и РегистрСведений.ЖурналСобытий
    У этих объектов отключена авторегистрация, но в состав обмена они входят

    Процедура ПередЗаписью(Отказ)
        
        Если не ЗначениеЗаполнено(Ссылка) Тогда
            // Запись нового элемента (узла) Плана обмена
            
            СсылкаНового = ПланыОбмена.Полный.ПолучитьСсылку();
            УстановитьСсылкуНового(СсылкаНового);
            
            ПланыОбмена.УдалитьРегистрациюИзменений(ПолучитьСсылкуНового(), Метаданные.Справочники.Файлы);
            ПланыОбмена.УдалитьРегистрациюИзменений(ПолучитьСсылкуНового(), Метаданные.РегистрыСведений.ЖурналСобытий);
            
        КонецЕсли;
        
    КонецПроцедуры
    

    Но, при создании образа все объекты попадают в создаваемую базу. Что я делаю не так?

  2. так тебе надо конкретные ссылки удалять из регистрации, а не СсылкаНового

    Ответы: (2)
  3. (1) это ссылка на план обмена, а не на объекты, которые не нужно выгружать

    Ответы: (3)
  4. (2) * на узел

    Ответы: (4)
  5. (3) так очищай после записи, когда уже есть конкретная ссылка на узел

  6. вот это трэшак какой-то?

    СсылкаНового = ПланыОбмена.Полный.ПолучитьСсылку();
    УстановитьСсылкуНового(СсылкаНового);
    ...
    ПолучитьСсылкуНового()

    или я уже позабыл 1с?

    Ответы: (6)
  7. (5) это фигня. Просто пробовал по всякому.

    Процедура ПриЗаписи(Отказ)
        
        Если ПроцедурыОбменаДанными.ТекущийУзелГлавный() Тогда
            
            Если НомерОтправленного = 0 Тогда
                
                ПланыОбмена.УдалитьРегистрациюИзменений(Ссылка, Метаданные.Справочники.Файлы);
                ПланыОбмена.УдалитьРегистрациюИзменений(Ссылка, Метаданные.РегистрыСведений.ЖурналСобытий);
                
            КонецЕсли;
            
        КонецЕсли;
        
    КонецПроцедуры
    

    так тоже не работает

    Ответы: (7)
  8. (6) может, они попадают в обмен уже после этого?

    Ответы: (8)
  9. (7) сейчас проверю

  10. не после, а во время, при создании нового - никаких изменений нет, их отменять чисто бесполезно. Выгрузятся согласно состава (правил) обмена. Или их (правила) править, или вычищать первую выгрузку или чистить после создания и первой загрузки рбд.

    Ответы: (11)
  11. При создании нового узла Никаких изменений не зарегистрировано

  12. (9) т.е. если даже авторегистрация отменена, в первоначальный образ попадут все объекты данного типа?
    А как тогда править эти правила?

    Ответы: (12)
  13. (11) обычно правят в КД-2 (конвертация данных).

  14. все не читал.

    отменяешь регистрацию перед созданием образа и ставишь отказ по условию в процедуре ПриОтправкеДанныхПодчиненному()

    Ответы: (14)
  15. (13) вот де ты раньше был? :)

    Я уже без тебя разобрался

    Процедура ПриОтправкеДанныхПодчиненному(ЭлементДанных, ОтправкаЭлемента, СозданиеНачальногоОбраза)
        
        ТипЗначенияЭлемента = ТипЗнч(ЭлементДанных);
        Если ТипЗначенияЭлемента = Тип("РегистрСведенийЗапись.ЖурналСобытий")
            ИЛИ ТипЗначенияЭлемента = Тип("РегистрСведенийНаборЗаписей.ЖурналСобытий") Тогда 
            ОтправкаЭлемента = ОтправкаЭлементаДанных.Игнорировать;
        КонецЕсли;
        Если ТипЗначенияЭлемента = Тип("СправочникСсылка.Файлы")
            ИЛИ ТипЗначенияЭлемента = Тип("СправочникОбъект.Файлы") Тогда 
            ОтправкаЭлемента = ОтправкаЭлементаДанных.Игнорировать;
        КонецЕсли;
        
    КонецПроцедуры
    
    Ответы: (15)
  16. 1Сергей вот де ты раньше был?

    ходил за тортом) купил аж целых 3!! штуки

    Ответы: (16)
  17. (15) зажрались :)

    ЗЫ шутю

или зарегистрируйтесь чтобы ответить!