Тема: Перемешение объектов в базе

Здравствуйте.
Необходимо переместить кучу объектов в другой определенный объект, по типу корзины, в связи с появлением отмененных объектов. И до тех пор пока в силу не вступят методы, предотвращающие появление мусора, необходимо все прибрать. Но возникла загвоздка в методах.
Т.е. "Переместить в..." не подходит по определению, очень много действий, в том числе диалог выбора. Объект известен, нужно выбрать только перемещаемый объект. Учитывая условия, что все объекты состава являются лишь ссылками, то применим, на первый взгляд, следующий способ:

set Obj = ThisObject
Set Parent = ThisObject.Parent
set ColPar = Parent.Objects
set Rec = Parent.ContentAll.ObjectsByDef("OBJECT_RECICLER").item(0)
Set ColRec = Rec.Objects

ColPar.Remove Obj
ColRec.add Obj

НО! ColPar.Remove Obj срабатывает как надо, а вот ColRec.add Obj добавляет в корзину ССЫЛКУ на объект, с потерей всех связей с родителем. Т.е. те свойства о составе, которые мы можем получить из объекта, изначально созданного в составе, полностью утрачиваются при любом перемещении объекта. Так об этом говорит значок ссылки у объекта в окне состава родителя.
Таким образом я более не имею возможности перемещать объект стандартными методами, обращаясь к его родителю, потому как такового более не существует, и перемещенный объект по сути своей превращается в хлам, к которому нельзя получить доступ напрямую. И любое перемещение, как у вас сказано, ссылки на объект, создает ссылку на ссылку, и данное действие: билет в один конец.
Можете подсказать более действенный метод? Или таковых не существует?

Re: Перемешение объектов в базе

Все, разобрался. Помогает переопределение связей в составе объекта. Стандартная "Переместить в..." вообще теряет смысл, потому как тоже переносит с потерей всех связей. Как результат: 2 клика, и объект в  нужной нам папке с новыми привязками и связями.

ВНИМАНИЕ! данный код переопределяет связи ВСЕГО состава объекта. Будьте внимательны если используете ссылки в своих объектах.

Set LnkCol = Parent.Links
        count = LnkCol.Count
        'перебрать все элементы коллекции...
        For i=0 To count-1
                'Получить ссылку на связь
                Set lnk = LnkCol.Item(i)
                'устанавливем связь как главную
                lnk.Primary = True
        Next