-- 3.5.81 Power
-- получить список марок проводов Участка либо ЛЭП
-- марки проводов берутся из Пролетов, которые заведены в Участке либо в ЛЭП
-- описание марок проводов достаются из Справочника проводов
-- марки проводов в списке разделяются символом ';'
-- если в Участке/ЛЭП отсутствуют пролеты - возвращается пустая строка
-- если во всех пролетах Участка/ЛЭП не указаны марки проводов - возвращается пустая строка

CREATE FUNCTION [dbo].[CablesDescriptionsAsString](@LineID integer)
RETURNS nvarchar(4000)
AS
BEGIN
	DECLARE @res nvarchar(4000)
	SET @res = ''
	-- 42 - тип объекта "Пролет"
	SELECT @res = @res + 
		Спр.Описание + ';'
		FROM Ограниченное_дерево_объекта(@LineID, '42', 2)
		LEFT JOIN Пролет Пр ON Код_пролета = id
		LEFT JOIN Справочник_проводов Спр ON Пр.Код_типа_провода = Спр.Код_типа_провода
		WHERE Пр.Код_типа_провода IS NOT NULL
	-- удаляем финальный символ ';'
	IF LEN(@res) > 0
		SET @res = LEFT(@res, LEN(@res) - 1)
	RETURN @res
END