сорри. был очень занят.
ловите триггер
просьба камнями не бросать - писал давно, причин переписывать небыло, но работает безотказно
триггер создается только в центральной базе.
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
ALTER TRIGGER [dbo].[_1SDWNLDS_Delete] ON [dbo].[_1SDWNLDS]
FOR DELETE
AS Set NoCount On
Delete _1SUPDTS
From _1SUPDTS T1
Join (
Select Upd.DBSign, Upd.TypeID, Upd.ObjID
From _1SUPDTS Upd (NOLOCK)
Join _1SJOURN Jorn (NOLOCK) On Upd.TypeID = Jorn.IDDocDef And Upd.OBJID = Jorn.IDDoc And (Upd.TypeID = 14643)
Join SC375 Firm (NOLOCK) On Jorn.SP1136 = Firm.ID And Upd.DBSign <> Firm.Code And Upd.DBSign <> Right(Upd.ObjID,3) And Upd.DBSign <> 'TR ' And Upd.DBSign <> 'BI '
) T2 On T1.DBSign=T2.DBSign And T1.TypeID=T2.TypeID And T1.ObjID=T2.ObjID
где SC375 справочник фирмы,
Jorn.SP1136 - общий реквизит фирмы
'TR ' и 'BI ' коды обязательных периферийных баз (в них док попадает всегда)
14643 - вид нужного документа
Upd.DBSign - куда уходит док
код справочника фирмы = код ИБ (так мне удобно т.к. много всякого в базе нарисовано для хитрых обменов и прав доступа)
принцип работы:
ставим миграцию у нужного типа (здесь 14643) все ИБ.
когда создаем док на периферийную базу система в _1SUPDTS пишет на каждую базу свою строку (при загрузке пакета обмена в центральную) .
при инициализации обмена идет обращение (что то там проверяется по идентификаторам пакетов обмена) к _1SDWNLDS и соответственно по заданным условиям триггером удаляются строки.
прим. в базе используется разделение документов - одним списываем в Базе1, он в момент проведения создает или корректирует уже имеющийся докумет на Базу2 и через обмен он попадает ТОЛЬКО в Базу2 и Центральную
будут вопросы - задавайте, с радостью помогу