Конвертация Данных 2.1 (Вопрос по правилу очистки) #649371


#0 by Толич
Добрый день. Есть односторонний обмен между двумя разными базами. Нужно чтобы при повторной выгрузке документов за один и тот же период, удаленные документы в базе источнике (которые выгружались при первичной выгрузке) оставались помеченными на удаление в базе приемнике. Сейчас этот механизм реализован следующим образом: В справочнике "конвертация" в обработчике "перед загрузкой данных" я помечаю на удаление все документы за период выгрузки, а затем замещаю данные в этих документах при самой загрузке. Все работает. Вот только не пойму как это же реализовать с помощью механизма правила очистки данных. А именно не знаю как сделать отбор за период. Сейчас могу проверять помечать на удаление именно этот документ или нет. Проблема заключается в том, что обрабатываются документы за весь период и это очень долго. Как сделать этот отбор в очистке?
#1 by cw014
я помечаю на удаление все документы за период выгрузки, а затем замещаю данные в этих документах при самой загрузке. Все работает.
#2 by cw014
Правила очистки удаляют непосредственно из базы, по моему
#3 by Толич
Конечно это неправильно. Поэтому и ищу более правильное решение. Если под словом "Жесть" вы подразумеваете выгрузку не отдельных записей и документов а весь период, то это условие было постановке задачи. Нет. В правиле есть условие удаления объекта пометка или непосредственно.
#4 by Kasper076
При непосредственном удалении объекта в таблице изменений хранится объект "УдалениеОбъекта", который содержит ссылку на удаленный объект. Собственно достаточно проверки на "УдалениеОбъекта" и обработки его соответсвующим образом.
#5 by Толич
Спасибо. Запомню на будущее... Но в моей задаче надо именно помечать на удаление документы в базе приемника которых нет при повторной выгрузке этого периода.
#6 by Kasper076
Так и бери данные об удаленых объектах из плана обмена. И помечай на удаление эти объекты в приемнике.
#7 by Kasper076
Если ГУИДы объектов в источнике и приемнике одинаковые, то будет работать.
#8 by Толич
Так то конечно так, но у меня есть некоторые периодические движения регистров сведений в базе источника, которые я с помощью запроса собираю в документы базы приемника вот с ними у меня и проблема... Так что в моей задаче надо именно помечать на удаление документы в базе приемника которых нет при повторной выгрузке этого периода. Как это сделать правильно через очистку данных?
#9 by Толич
+Т.е. у меня фактически нет этих документов в базе источника.
#10 by Kasper076
Не оч понимаю, чем схема с планом обмена и "ОбъектУдален" не устраивает. Можешь еще выгрузить список ИД (допустим Номер + Дата) документов, как параметр в глобальном обработчике "ПослеВыгрузки", а в глобальном обработчике "ПослеЗагрузки" обработать этот список. Все что в приемнике "лишнее",  пометить.
#11 by Толич
Уже и такое делал. В принципе все работает. Просто не понимаю как делать отборы в очистке данных...
Тэги: 1С 8
Ответить:
Комментарии доступны только авторизированным пользователям

В этой группе 1С