Имя: Пароль:
1C
1С v8
Конвертация Данных 2.1 (Вопрос по правилу очистки)
0 Толич
 
28.01.13
09:50
Добрый день.
Есть односторонний обмен между двумя разными базами.
Нужно чтобы при повторной выгрузке документов за один и тот же период, удаленные документы в базе источнике (которые выгружались при первичной выгрузке) оставались помеченными на удаление в базе приемнике.

Сейчас этот механизм реализован следующим образом: В справочнике "конвертация" в обработчике "перед загрузкой данных" я помечаю на удаление все документы за период выгрузки, а затем замещаю данные в этих документах при самой загрузке. Все работает.
Вот только не пойму как это же реализовать с помощью механизма правила очистки данных. А именно не знаю как сделать отбор за период.
Сейчас могу проверять помечать на удаление именно этот документ или нет. Проблема заключается в том, что обрабатываются документы за весь период и это очень долго. Как сделать этот отбор в очистке?
1 cw014
 
28.01.13
09:58
(0) я помечаю на удаление все документы за период выгрузки, а затем замещаю данные в этих документах при самой загрузке. Все работает.


Это ЖЕСТЬ
2 cw014
 
28.01.13
09:59
(0) Правила очистки удаляют непосредственно из базы, по моему
3 Толич
 
28.01.13
11:32
(1) Конечно это неправильно. Поэтому и ищу более правильное решение.
Если под словом "Жесть" вы подразумеваете выгрузку не отдельных записей и документов а весь период, то это условие было постановке задачи.
(2) Нет. В правиле есть условие удаления объекта пометка или непосредственно.
4 Kasper076
 
28.01.13
11:36
При непосредственном удалении объекта в таблице изменений хранится объект "УдалениеОбъекта", который содержит ссылку на удаленный объект. Собственно достаточно проверки на "УдалениеОбъекта" и обработки его соответсвующим образом.
5 Толич
 
28.01.13
11:41
(4) Спасибо. Запомню на будущее...
Но в моей задаче надо именно помечать на удаление документы в базе приемника которых нет при повторной выгрузке этого периода.
6 Kasper076
 
28.01.13
11:43
(5) Так и бери данные об удаленых объектах из плана обмена. И помечай на удаление эти объекты в приемнике.
7 Kasper076
 
28.01.13
11:45
Если ГУИДы объектов в источнике и приемнике одинаковые, то будет работать.
8 Толич
 
28.01.13
11:50
(6)(7) Так то конечно так, но у меня есть некоторые периодические движения регистров сведений в базе источника, которые я с помощью запроса собираю в документы базы приемника вот с ними у меня и проблема...
Так что в моей задаче надо именно помечать на удаление документы в базе приемника которых нет при повторной выгрузке этого периода. Как это сделать правильно через очистку данных?
9 Толич
 
28.01.13
11:51
(8)+Т.е. у меня фактически нет этих документов в базе источника.
10 Kasper076
 
28.01.13
11:59
Не оч понимаю, чем схема с планом обмена и "ОбъектУдален" не устраивает.
Можешь еще выгрузить список ИД (допустим Номер + Дата) документов, как параметр в глобальном обработчике "ПослеВыгрузки", а в глобальном обработчике "ПослеЗагрузки" обработать этот список. Все что в приемнике "лишнее",  пометить.
11 Толич
 
28.01.13
12:07
(10) Уже и такое делал. В принципе все работает.
Просто не понимаю как делать отборы в очистке данных...
Компьютеры — это как велосипед. Только для нашего сознания. Стив Джобс