Часто набор входящих параметров передается в формате XML (например, при использовании фильтров в иерархиях, виджетах, планировщиках и т.п.). Для обработки таких входящих параметров удобно использовать процедуру crm_repGetParams, поставляемую вместе с "Первой Формой".
Имя параметра передается как атрибут Name. Для периода времени передаются две даты - From и To, для остальных параметров передается значение Value.
Получение значений входящих параметров из формата XML с помощью процедуры crm_repGetParams может выглядеть следующим образом:
ALTER PROCEDURE ...
(
@XmlParam xml = null,
@DrillDownField varchar(max) = null,
@DrillDownParams varchar(max) = null,
@UserID int = null
)
AS
BEGIN
-- объявление параметров и вспомогательной таблицы
declare @StartDate date = null, @EndDate date = null, @Filial int = null
declare @Params table ([Name] varchar(max), [From] varchar(max), [To] varchar(max), [Value] varchar(max))
-- запись значений параметров во вспомогательную таблицу
insert into @Params ([Name], [From], [To], [Value])
exec crm_repGetParams @XML = @XmlParam
-- получение значений параметров
select @StartDate = cast([From] as varchar(max)), @EndDate = cast([To] as varchar(max))
from @Params where Name = 'Period'
select @Filial = cast([Value] as varchar(max))
from @Params where Name = 'Filial'
...
END