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