Имя: Пароль:
1C
 
Удалить часть документов из периферийной базы
,
0 Likons
 
22.02.22
12:39
День добрый !)
Появилась интересная задача , с которой раньше не сталкивался , буду признателен за любые мысли или идеи )
Есть РИБ Розница 1.0.
Есть центральная база , пачка баз магазинов и пачка баз касс.
Цель : сделать так , что бы из узлов магазинов и узлов касс пропали документы определенных видов до определенной даты , но в центральной базе все эти документы должны остаться.
При чем , часть регистров , которые используют эти документы нужно очистить , а другую часть оставить.

Ранее не сталкивался с похожим , но нашел механизм "Свертки узла". Сейчас ковыряюсь , но скорее всего это не совсем то что нужно (

Подскажите пожалуйста , можно ли такую "хотелку" как то по людски организовать ?)

P.S. Я понимаю , что сама затея не самая лучшая , но отговорить от неё у меня пока не вышло (
1 Ёпрст
 
22.02.22
12:42
(0) просто удали всё что надо в ПБ и очисти регистрацию.
Но, это не убережет тебя, если из цб что-то прилетит повторно
2 Likons
 
22.02.22
12:44
(1) думал уже так сделать , но меня пугает то , что могу чето ненужное в центральной базе нарегистрировать (
3 Likons
 
22.02.22
12:44
*могут ))
4 DrShad
 
22.02.22
12:49
тут нужен не РИБ а обмен по правилам
5 DrShad
 
22.02.22
12:49
недавно такую штуку реализовывал
6 johnnik
 
22.02.22
12:49
(0) При чем , часть регистров , которые используют эти документы нужно очистить , а другую часть оставить.
---------
Это как?

P.S. Иногда надо вовремя понять, что задача нереализуема и настаивать на своем, чем тратить время, нервы и ресурсы
7 DrShad
 
22.02.22
12:50
(0) кстати, это ведь будет не разовая акция?
8 Serg_1960
 
22.02.22
13:07
(4) Если РИБ - то легко наложить свой любой фильтр на мигрирующие данные минимальным изменением типовой конфигурации. Собственно говоря в типовых конфигурациях есть такой пример фильтра. Например, в УПП:

Процедура ПриОтправкеДанныхГлавному(ЭлементДанных, ОтправкаЭлемента)
    
    Если ТипЗнч(ЭлементДанных) = мТипСправочникРегОтчеты Тогда
        
        ОтправкаЭлемента = ОтправкаЭлементаДанных.Игнорировать;
        
    КонецЕсли;
    
КонецПроцедуры
9 Галахад
 
гуру
22.02.22
13:15
Писал как-то:

Функция РегистрНакопленияУдалениеПоТаблице(ИмяРегистра, Таблица)
    
    ЕстьОшибки = Ложь;
    ЕстьВОбмене = Метаданные.ПланыОбмена.УдаленныеФирмы.Состав.Содержит(Метаданные.РегистрыНакопления[ИмяРегистра]);
    
    ГлавУзел = ПланыОбмена.ГлавныйУзел();
    
    МассивКолонок = Новый Массив;
    Для каждого ТекКолонка Из Таблица.Колонки Цикл
        МассивКолонок.Добавить(ТекКолонка.Имя);
    КонецЦикла;
    
    Для каждого Стр Из Таблица Цикл
        
        НачатьТранзакцию();
        
        Попытка
            
            НаборЗаписей = РегистрыНакопления[ИмяРегистра].СоздатьНаборЗаписей();
            Для каждого ИмяКолонки Из МассивКолонок Цикл
                НаборЗаписей.Отбор[ИмяКолонки].Установить(Стр[ИмяКолонки]);
            КонецЦикла;
            НаборЗаписей.Записать();
            
            Если ЕстьВОбмене Тогда
                ПланыОбмена.УдалитьРегистрациюИзменений(ГлавУзел, НаборЗаписей);
            КонецЕсли;
            
            ЗафиксироватьТранзакцию();
            
        Исключение
            
            ЕстьОшибки = Истина;
            
            ОтменитьТранзакцию();
            
        КонецПопытки;
        
    КонецЦикла;
    
    Возврат ЕстьОшибки;
        
КонецФункции
10 Likons
 
22.02.22
13:23
Всем большое спасибо )
Оказалось , что свертка узла решила почти все проблемы. Осталось парочка ,но тут я уже разберусь.
11 Serg_1960
 
22.02.22
13:26
*(8) Может сложиться мнение, что я против (4) - ни в коем случае :) Ссылка на статью, где описывается использование правил обмена для РИБ - "Настройка одностороннего обмена в РИБ 8.1, 8.2 без изменения конфигурации" - https://open-budget.ru/public/91190/