Допустим, мы создали отчёт в конструкторе СКД, и нам нужно передать в него какой-то параметр.
Сделать это можно из формы отчёта. То есть, пользователь задаёт значение в форме отчёта, например какую-то дату, и это значение должно передаваться в систему компоновки данных.
Первым делом создаём форму отчёта. Добавляем реквизит формы, назовём его «НашаДата». Тип реквизита укажем – «Дата». Вынесем реквизит на форму.
Откроем свойства созданного поля на форме. Создадим обработчик события «ПриИзменении».
Теперь в модуле формы организуем передачу параметра в СКД.
Для случая, когда параметры уже созданы в СКД, и нам нужно передать только значения, код будет таким:
&НаКлиенте Процедура ДатаПриИзменении(Элемент) ДатаПриИзмененииНаСервере(); КонецПроцедуры &НаСервере Процедура ДатаПриИзмененииНаСервере() ЭтаФорма.Отчет.КомпоновщикНастроек.Настройки.ПараметрыДанных.УстановитьЗначениеПараметра("Дата", ЭтаФорма.НашаДата); КонецПроцедуры
В случае, когда параметры заданы в тексте запроса СКД, но не на вкладке «Параметры» конструктора, тогда код нужно настроить в соответствии со следующим примером:
Параметры = КомпоновщикНастроек.Настройки.ПараметрыДанных; Параметр = Параметры.НайтиЗначениеПараметра(Новый ПараметрКомпоновкиДанных("ПараметрУказанныйВЗапросе")); Если Параметр <> Неопределено Тогда Параметр.Значение = ЗначениеКотороеМыХотимУстановить; Параметр.Использование = Истина; КонецЕсли;
Добавить комментарий