---- GetObjectParentObjectID ----
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[GetObjectParentObjectID]') and xtype in (N'FN', N'IF', N'TF'))
drop function [dbo].[GetObjectParentObjectID]
GO
create function GetObjectParentObjectID(@ObjectID int, @ParentObjectTypeID int)
returns int as
begin
	declare @CurParentID int
	declare @CurTypeID int
	declare @CurObjectID int
	select  @CurTypeID = IsNull(Код_типа_объекта,0) from Объект where Код_объекта = @ObjectID
	if (@CurTypeID = 0) return NULL
	select @CurParentID = IsNull(Код_объекта_владельца,0) from Объект where Код_объекта = @ObjectID
	if (@CurParentID = 0) return NULL
	set @CurObjectID = @CurParentID
	select @CurTypeID = IsNull(Код_типа_объекта,0) from Объект where Код_объекта = @CurParentID
	while (@CurParentID <> 0) AND (@CurTypeID <> @ParentObjectTypeID)
	begin
		set @CurObjectID = @CurParentID
		select @CurParentID = Код_объекта_владельца from Объект where Код_объекта = @CurObjectID
		select  @CurTypeID = IsNull(Код_типа_объекта,0) from Объект where Код_объекта = @CurObjectID
	end
	if (@CurTypeID = @ParentObjectTypeID) return @CurObjectID
	return NULL
end
