Вывод параметров отчета на СКД на обычную форму 1С

При создании отчетов с помощью системы компоновки данных (СКД) удобно выводить параметры отчета (хотя бы наиболее часто используемые) на форму, чтобы не заставлять пользователя копаться в стандартном окне настроек СКД.

Рассмотрим как это можно сделать на обычных формах 1С. Сразу оговоримся, что в этой статье будет рассматриваться именно вывод параметров на форму, т.е. сами параметры в СКД уже должны быть созданы.

Существует два способа вывода параметров СКД на обычную форму:

  • вывод таблицы настроек параметров целиком
  • вывод отдельных параметров в виде полей ввода.

Таблица настройки параметров, выводимая на форму, аналогична таблице настройки параметров, генерируемой средствами СКД. Для ее вывода на форму нужно создать элемент управления ТабличноеПоле, у которого в свойстве Данные указать КомпоновщикНастроек.Настройки.ПараметрыДанных 

Вывод параметров отчета на СКД на обычную форму 1С

При этом пользователю будут показаны все параметры СКД, у которых не установлено ограничение доступности.

Вывод параметров отчета на СКД на обычную форму 1С

Однако, в ряде случаев этот способ может показаться не столь красивым и не очень удобным для пользователя. Рассмотрим, как вывести на форму параметры СКД по отдельности в виде обычных полей ввода.

  1. Создадим реквизиты отчета, соответствующие параметрам. В нашем примере это будут реквизиты ДатаНачала, ДатаОкончания, Организация. Установим у них соответствующие типы данных.
  2. Создадим на форме поля ввода для каждого из параметров и свяжем их через свойство Данные с реквизитами отчета. Для каждого поля ввода хорошо бы рядом создать надпись с названием параметра, чтобы пользователь понимал, какой параметр он редактирует.
  3. Для каждого поля ввода нужно создать процедуру для обработчика событий ПриИзменении, которая будет устанавливать выбранное пользователем значение в параметры СКД. Я в примере создал одну процедуру и назначил ее на события изменения всех трех полей ввода. То есть при изменении одного параметра происходит переустановка всех трех. С точки зрения быстродействия это, скорее всего, не эффективно, но, т.к. параметров не много, разница не заметна. При большом количестве параметров стоит выводить установку каждого в отдельную процедуру. Итак, код процедуры для обработчика ПриИзменении будет выглядеть следующим образом: Процедура ПараметрыПриИзменении(Элемент)ПараметрДатаНач = КомпоновщикНастроек.Настройки.ПараметрыДанных.Элементы.Найти(«НачалоПериода»);//Поиск производится по имени параметра СКД
    ПараметрДатаНач.Использование =Истина;//Параметр будет использоваться при отборе
    ПараметрДатаНач.Значение  = ДатаНачала;//Параметру присваивается значение реквизита отчета

    ПараметрДатаКон = КомпоновщикНастроек.Настройки.ПараметрыДанных.Элементы.Найти(«КонецПериода»);
    ПараметрДатаКон.Использование =Истина;
    ПараметрДатаКон.Значение  = КонецДня(ДатаОкончания);

    ПараметрОрг = КомпоновщикНастроек.Настройки.ПараметрыДанных.Элементы.Найти(«Организация»);
    ПараметрОрг.Использование =Истина;
    ПараметрОрг.Значение  = Организация;

    КонецПроцедуры

Программный вывод СКД

СКД Лого

Система Компоновки Данных (СКД) — инструмент, заменивший собой построитель отчётов в 1С:Предприятие версии 8.1. Позволяет гибко компоновать, структурировать и выводить разрозненные данные на форму или в программную коллекцию. Быстро создать отчёт на СКД можно буквально в несколько щелчков мышью, воспользовавшись встроенным мастером в платформе для объекта метаданных Отчёт.

Но как быть, если требуется вывести данные, вне Отчёта? Встроенный язык 1С:Предприятия предлагает гибкие (и достаточно сложные) API для взаимодействия с объектами СКД. Однако, часто задача стоит в простом выводе на форму документа на СКД, задав разве что парочку параметров. Просто вывести. Хотелось бы, чтобы это делалось одной строкой кода, разбираться в перипетиях объектов нет ни сил, ни желания. Предлагаю готовый код для этого с кратким примером.

Читать далее «Программный вывод СКД»