Формирование отчёта по нескольким СКД. Запуск из отчета другого отчёта из конфигурации. Несколько отчетов в одном. Запуск нескольких отчетов, установленных в базе, одной кнопкой. Формирование нескольких отчётов на отдельных вкладках + сохранение результата в Excel.
В приведённом примере используются условные отчёты, не относящиеся к реальным данным.
В данном отчете задействованы КомпоновщикМакетаКомпоновкиДанных, ПроцессорКомпоновкиДанных, ПроцессорВыводаРезультатаКомпоновкиДанныхВТабличныйДокумент, а также ПакетОтображаемыхДокументов и ВременноеХранилище.
Зачастую в системе 1С есть пара десятков аналитических отчетов, которые пользователи формируют с заданной периодичностью для ряда организаций, затем сохраняют эти отчёты в Excel и дальше работают с ними вне системы.
Для минимизации трудозатрат пользователей поступил запрос о настройке выгрузки всех этих отчётов «По одной кнопке» с дальнейшей возможностью выгрузки в Excel. Для этого был создан новый отчёт, в который добавили необходимые СКД + есть возможность добавить к выводу другой отчёт из конфигурации.
В приведённом примере используются три СКД с одинаковыми параметрами и один типовой отчёт из конфигурации.

Принцип построения был следующий:
1. Создаётся новая форма отчёта.
На форме типовая команда «Сформировать» подменяется на собственную, а также создаются следующие реквизиты:
- Реквизиты для хранения информации о добавленных элементах и реквизитах - списки значений с наименованием добавленных реквизитов и элементов. Т.к. реквизиты и элементы (вкладки и поля) будут формироваться программно, то списки с наименованиями понадобятся для удаления этих самых реквизитов и элементов при переформировании отчетов;
- Реквизиты, в которых пользователь будет заполнять параметры отчётов (список организаций, периоды и т.д.). Тут сразу должны быть все параметры для всех отчётов;
- Таблица с описанием отчётов, которые должны быть сформированы (см. п. 2).

2. Создаётся таблица с описанием отчётов, в которой указывается, как будет называться отчёт, какой макет используется для формирования, из текущего отчёта или из конфигурации. Т.к. список отчётов известен заранее, заполняю в «ПриСозданииНаСервере»:


3. При формировании отчёта для каждой организации программно создаётся вкладка, далее на этой создаются подчиненные вкладки для каждого отчёта.
При изменении параметров отчёта или при переформировании отчёта все созданные реквизиты и элементы очищаются и создаются заново для нужных организаций.
4. Пожалуй, самый сложный шаг – это заполнение параметров для формирования отчетов. Мне удобнее было создать структуру, в которую поместить все возможные параметры, а далее, при формировании отчёта, заполнять параметры по принципу «Если параметр с таким именем в отчёте найден – устанавливаем значение». При этом, если параметр выведен в пользовательские настройки – заполняю через «Настройки по умолчанию», если нет – то через «Параметры».
Само формирование отчета вынесено в отдельную процедуру – туда передаем имя табличного документа, куда будет выведен отчет, СКД и структуру параметров.

В результате получаем отчёт в котором есть отдельная вкладка для каждой организации и внутри неё отдельная вкладка для нужного отчета.

При сохранении в Excel необходимо выбрать папку, куда сохранить файлы. Для каждой организации будет создан отдельный файл:

В файле отчёты располагаются на отдельных вкладках.

Обработка тестировалась на конфигурации "Управление холдингом, редакция 3.1" (3.1.7.2).
Вступайте в нашу телеграмм-группу Инфостарт