--получаем список пользователей объекта по айдишнику объекта и номеру формы эксплуатационной ответственности
create function [dbo].[GetUsageFormList](@ObjectID integer, @UsageID integer)
returns nvarchar(4000)
as
begin
  declare @res nvarchar(4000)
  declare @sourceid integer
  select @sourceid = dbo.GetUsersSource(@ObjectID)
  set @res = ''
  select @res = @res +   
    case IsIndividual
      when 1 then i.Name
      else o.Наименование
    end + ';'
  from PowerObjectUsers pou
  inner join LegalEntities le on pou.LegalEntityID = le.LegalEntityID
  left join Организация o on o.Код_организации = le.LegalEntityID 
  left join Individuals i on i.IndividualID = le.LegalEntityID
  where PowerObjectID = @sourceid AND UsageFormID = @UsageID
  return @res
end
GO

--Получаем список собственников по заданному айдишнику объекта и номеру формы собственности
create function [dbo].[GetOwnershipFormList](@ObjectID integer, @OwnershipID integer)
returns nvarchar(4000)
as
begin
  declare @res nvarchar(4000)
  declare @sourceid integer
  select @sourceid = dbo.GetOwnersSource(@ObjectID)
  set @res = ''
  select @res = @res +   
    case IsIndividual
      when 1 then i.Name
      else o.Наименование
    end + ';'
  from PowerObjectOwners poo
  inner join LegalEntities le on poo.LegalEntityID = le.LegalEntityID
  left join Организация o on o.Код_организации = le.LegalEntityID 
  left join Individuals i on i.IndividualID = le.LegalEntityID
  where PowerObjectID = @sourceid AND OwnershipFormID = @OwnershipID
  return @res
end
GO