|   |   | 
| 
 | Обмен РИБ | ☑ | ||
|---|---|---|---|---|
| 0
    
        filterhouse 23.09.13✎ 14:04 | 
        Всем доброго времени суток. 
 Необходимо доработать обмен РИБ таким образом что бы документы с датой меньше заданной не передавались из главного в подчиненный узел. Пробую реализовать через ПриОтправкеДанныхПодчиненному(), если документы я могу не отправлять, но получается что потом отдельно регистры отправляются. И что то нет идей. Может кто подскажет как справится с проблемой? | |||
| 1
    
        Живой Ископаемый 23.09.13✎ 14:05 | 
        почему просто не регистрировать их как измененные? важно чтобы они копились в таблице изменений?     | |||
| 2
    
        Vovan1975 23.09.13✎ 14:07 | 
        константа и регламентное задание, которое раз в час будет снимать регистрацию с тех объектов, дата которых меньше константы     | |||
| 3
    
        filterhouse 23.09.13✎ 14:08 | 
        (1) Получается если я для документа отменю авторегистрацию, то и движения не будут регистрироваться?     | |||
| 4
    
        Maxus43 23.09.13✎ 14:08 | 
        (3) нет     | |||
| 5
    
        filterhouse 23.09.13✎ 14:10 | 
        (2) Хороший вроде вариант, только не совсем понятно как реализовать. Можно разжевать немного?     | |||
| 6
    
        Живой Ископаемый 23.09.13✎ 14:12 | 
        2(3) при чем тут авторегистрация?     | |||
| 7
    
        Кай066 23.09.13✎ 14:12 | 
        (0) А смысл? Глобально какая задача стоит?     | |||
| 8
    
        filterhouse 23.09.13✎ 14:15 | 
        (7) Свернуть подчиненку, и выгружать документы из центральной только с определенной даты.     | |||
| 9
    
        filterhouse 23.09.13✎ 14:18 | 
        (6) Если я правильно понимаю, то авторегистрация будет автоматически регистрировать изменения для узла.     | |||
| 10
    
        Vovan1975 23.09.13✎ 14:20 | 
        (5) ну константа будет хранить рубежную дату.
 Для регламентного задания запиливается свой модуль(чтобы обновления не корежились), сам процесс разрегистрации - это банальный запрос по таблицам изменеий с отбором по нужному узлу и дате(которая из константы берется), а дальше через планыобменаменеджер отменяется регистрация дока, получаются его движения и отменяется регистрации и их. Какие виды документов участсвуют в нужном плане обмена можно узнать через свойство Состав(если не путаю ничего). Вот собственно и все. | |||
| 11
    
        Живой Ископаемый 23.09.13✎ 14:23 | 
        2(9) да, и что? а ты удаляй программно. нужно удалить и движения - удаляй и движения.     | |||
| 12
    
        filterhouse 23.09.13✎ 14:30 | 
        (10) Все понятно, остался один момент. Таблицы изменений это регистр какой то? Как ним обратиться?     | |||
| 13
    
        filterhouse 23.09.13✎ 14:31 | 
        (11) А где это удаление нужно делать, что бы правильно было.     | |||
| 14
    
        Vovan1975 23.09.13✎ 14:32 | 
        (12) таблицы изменений это банальные таблицы, открой конструктор запросов и в левой верхней части есть хитрый значек, что-то типа "Показывать таблицы изменений" Включаешь его и получаешь возможность конструктором лабать запросы по изменениям.     | |||
| 15
    
        Живой Ископаемый 23.09.13✎ 14:33 | 
        2(13) где угодно, где в итоге не будет записано. Может и в подписке какой-то.     | |||
| 16
    
        Vovan1975 23.09.13✎ 14:35 | 
        (13) главное это все манипуляции запихивать в оплетку вида:
 попытка начатьтранзакцию() зафиксироватьтранзакцию() исключение отмменитьтранзакицю() конецпопоытки | |||
| 17
    
        filterhouse 23.09.13✎ 14:36 | 
        (14) Спасибо, теперь понял.     | |||
| 18
    
        Maxus43 23.09.13✎ 14:42 | 
        ИМХО: легче тупо скомуниздить механизм запрета изменения данных, только воткнуть его в подписки на регистрацию изменений в обменах, и тупо не заполнять получателей, если дата меньше. Механизм по дате запрета, в т.ч. и регистров уже написан     | |||
| 19
    
        filterhouse 23.09.13✎ 14:44 | 
        (15) А как получить все движения документа?     | |||
| 20
    
        Maxus43 23.09.13✎ 14:45 | 
        (16) что это? транзакция в попытке в вакууме?)
 не надо автору такого | |||
| 21
    
        Живой Ископаемый 23.09.13✎ 14:45 | 
        2(19) ЭтотОбъект.Движения - это коллекция     | |||
| 22
    
        filterhouse 23.09.13✎ 14:46 | 
        (21) Спасибо еще раз.     | |||
| 23
    
        Vovan1975 23.09.13✎ 14:46 | 
        (20) ну дык я надеюсь автор знает куда впихивать свой код между НачатьТранзакцию() и ЗафиксироватьТранзакцию() а?     | |||
| 24
    
        filterhouse 23.09.13✎ 15:41 | 
        Узел = ПланыОбмена.Полный.НайтиПоКоду("002");
 Если Источник.Дата < Константы.ДатаЗапрета.Получить() Тогда ПланыОбмена.УдалитьРегистрациюИзменений(Узел, Источник); ВсеДвижения = Источник.Движения; Для Каждого Стр Из ВсеДвижения Цикл ПланыОбмена.УдалитьРегистрациюИзменений(Узел, Стр); КонецЦикла; КонецЕсли; В обработчике заходит в ПланыОбмена.УдалитьРегистрациюИзменений(Узел, Источник), а при обмене, все равно доки прилетают в подчиненку. В чем дело? | |||
| 25
    
        Maxus43 23.09.13✎ 15:55 | 
        (24) Где ты это написал?     | |||
| 26
    
        Maxus43 23.09.13✎ 15:56 | 
        Что за обмен, какая конфа? Подписки на события для обменов етсь уже? Легче там изменить     | |||
| 27
    
        filterhouse 23.09.13✎ 16:00 | 
        (26) БП, типовая. Создал подписку на проведение.     | |||
| 28
    
        Maxus43 23.09.13✎ 16:01 | 
        регистрация происходит после окончания транзакции.
 УдалитьРегистрациюИзменений - не надо бзать вобще, очищай список получателей | |||
| 29
    
        Maxus43 23.09.13✎ 16:02 | 
        короче - я бы сначала прочитал пару страниц из толстой книги по обменам     | |||
| 30
    
        Maxus43 23.09.13✎ 16:04 | 
        ичспользовать надо по хорошему 2 подписки: ПриЗаписи и ПередЗаписью, так, как это делается в типовых     | |||
| 31
    
        filterhouse 23.09.13✎ 16:05 | 
        (28) Ну почитать и вправду стоит. 
 А как отчистить список получателей? | |||
| 32
    
        filterhouse 23.09.13✎ 16:06 | 
        (30) Я хотел ПриЗаписи и ОбработкаПроведения использовать.     | |||
| 33
    
        Maxus43 23.09.13✎ 16:07 | 
        Источник.Обменданными.Получатели.Автозаполнение = Ложь;
 Источник.Обменданными.Получатели.Очистить(); | |||
| 34
    
        Maxus43 23.09.13✎ 16:08 | 
        (32) транзакция одна, не надо на проведение вешать, делай на (30). Только 2 подписки там для разного, одна для регистрации Объекта, другая для регистрации Ссылки. Если нет разбивки по орагнизациям и других фильтров - то только ПриЗаписи используй     | |||
| 35
    
        filterhouse 23.09.13✎ 16:10 | 
        (34) Ок, Спасибо, сейчас попробую.     | |||
| 36
    
        Maxus43 23.09.13✎ 16:11 | 
        хотя вру, надо Обе подписки, чтоб избежать косяков.
 Пример: док 2013 года, мы меняем дату на 2012, значит в узел надо послать Удаление этого объекта | 
| Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |