1С скд параметры в запросе

Допустим, мы создали отчёт в конструкторе СКД, и нам нужно передать в него какой-то параметр.

Сделать это можно из формы отчёта. То есть, пользователь задаёт значение в форме отчёта, например какую-то дату, и это значение должно передаваться в систему компоновки данных.

Первым делом создаём форму отчёта. Добавляем реквизит формы, назовём его "НашаДата". Тип реквизита укажем – "Дата". Вынесем реквизит на форму.

Откроем свойства созданного поля на форме. Создадим обработчик события "ПриИзменении".

Теперь в модуле формы организуем передачу параметра в СКД.

Для случая, когда параметры уже созданы в СКД, и нам нужно передать только значения, код будет таким:

В случае, когда параметры заданы в тексте запроса СКД, но не на вкладке "Параметры" конструктора, тогда код нужно настроить в соответствии со следующим примером:

В статье "Две схемы СКД в одном отчете на управляемых формах" Людмила решает вопрос детализации отчета путем формирования двух схем. Вопрос интересен как вариант решение разных задач (запросов). Но задачу с детализацией как мне кажется лучше решить используя параметры. И так рассмотрим пример решения задачи, указанной в вышеприведённой статье.

Текст запроса бедет таким:

Параметр &Детализация будет принимать два значение «КОНЕЦПЕРИОДА(ПродажиОбороты.Период, МЕСЯЦ)» и «КОНЕЦПЕРИОДА(ПродажиОбороты.Период, НЕДЕЛЯ)» можно дополнить и другими детализациями.

Для параметра в компоновщике указываем тип строка и он будет доступен как параметр. Снимем галочку ограничения доступности

К стати для установки параметров НачалоПериода и КонецПриода я использую дополнительный параметр период тип СтандартныйПериод с заданием выражений для указанных параметров.

Далее устанавливаем ресурсы

Настройку шаблона макета оставим как в выше упомянутой статье.

Теперь нам надо научить наш отчет управлять параметрами. Для этого создадим форму отчета и добавим на него элементы управления тип поля выбора для выбора Варианта детализации и поля для выбора периода. Например так:

Читайте также:  Температура замерзания пива в банках

Настраиваем список: ВариантДетализации

Устанавливаем параметр Строки списка выбора

В обработчике ПриИзменении Укажем следующий текст

Аналогично устанавливаем параметр периода в обработчиках ПриИзменении всех элементов управления периода вызываем процедуру УстановитьПериод()

Обработка конечно же еще не закончена, о сталость навести лоск на форме и "защиту от дурака" оставляю это на самостаятельную работу читателя.

Все это реализовано для «обычных форм» для «управляемых» идея остается той же, только надо запрограммировать форму отчета по стандарту управляемых форм.

Буду рад если данная статья кому-то поможет. Высказываете критику.

Очень часто встречаю что программистов заводит в тупик такой момент как программная установка параметров системы компоновки данных (далее СКД). Сделать это можно через ‘КомпоновщикНастроек’ нашей СКД.

Допустим у нас есть отчет ‘ЗадачиКлиента’ и в СКД в наборе данных есть параметр ‘&Владелец’. Сразу уточню что это отчет реализован через 1C Enterprise Development Tools, но решения здесь будут точно такие же, как если бы мы это делали через классический конфигуратор:

Если мы хотим этот параметр устанавливать программно, то важно убедиться что он доступен, иначе мы получим ошибку что параметр не найден (флаг стоять не должен):

И так что бы программно установить параметру СКД определенное значение, мы можем использовать процедуру модуля отчета ‘ПриКомпоновкеРезультата’ и компоновщиком настроек: