Показать сообщение отдельно
Старый 13.06.2007, 09:23   #15  
Lucky13 is offline
Lucky13
Участник
1C
 
714 / 198 (8) ++++++
Регистрация: 21.10.2004
Я делал так.
Перекрываем метод merge на таблице InventTable и до super пишем:
X++:
     //удалить из inventTableModule для старой НЕ
     delete_from inventTableModule
     where inventTableModule.ItemId == this.ItemId;

     //удалить из inventItemLocation для старой НЕ
     delete_from inventItemLocation
     where inventItemLocation.ItemId == this.ItemId;
Также для других таблиц которые связаны с InventTable и имеют первичный ключ пишем примерно следующее:
X++:
    //удалить дубли в inventBatch
     while select forupdate inventBatch
     where inventBatch.itemId == this.ItemId
     {
        if (InventBatch::exist(inventTable.ItemId, inventBatch.inventBatchId))
            inventBatch.delete();
     }