Формирование нескольких отчётов по одной кнопке (по нескольким СКД из текущего отчёта, а также используя другие отчёты из конфигурации) с выводом на отдельные вкладки + сохранение результата в Excel
Файлы
ВНИМАНИЕ: Файлы из Базы знаний - это исходный код разработки. Это примеры решения задач, шаблоны, заготовки, "строительные материалы" для учетной системы. Файлы ориентированы на специалистов 1С, которые могут разобраться в коде и оптимизировать программу для запуска в базе данных. Гарантии работоспособности нет. Возврата нет. Технической поддержки нет.
Подписка PRO — скачивайте любые файлы со скидкой до 85% из Базы знаний
Оформите подписку на компанию для решения рабочих задач
Оформить подписку и скачать решение со скидкойВы можете заказать платную доработку или адаптацию этой разработки под вашу конфигурацию на «Бирже заказов».
- 0% комиссии — оплата напрямую исполнителю;
- Исполнители любого масштаба — от отдельных специалистов до команд под проект;
- Прямой обмен контактами между заказчиком и исполнителем;
- Безопасная сделка — при необходимости;
- Рейтинги, кейсы и прозрачная система откликов.
Формирование отчёта по нескольким СКД. Запуск из отчета другого отчёта из конфигурации. Несколько отчетов в одном. Запуск нескольких отчетов, установленных в базе, одной кнопкой. Формирование нескольких отчётов на отдельных вкладках + сохранение результата в Excel.
В приведённом примере используются условные отчёты, не относящиеся к реальным данным.
В данном отчете задействованы КомпоновщикМакетаКомпоновкиДанных, ПроцессорКомпоновкиДанных, ПроцессорВыводаРезультатаКомпоновкиДанныхВТабличныйДокумент, а также ПакетОтображаемыхДокументов и ВременноеХранилище.
Зачастую в системе 1С есть пара десятков аналитических отчетов, которые пользователи формируют с заданной периодичностью для ряда организаций, затем сохраняют эти отчёты в Excel и дальше работают с ними вне системы.
Для минимизации трудозатрат пользователей поступил запрос о настройке выгрузки всех этих отчётов «По одной кнопке» с дальнейшей возможностью выгрузки в Excel. Для этого был создан новый отчёт, в который добавили необходимые СКД + есть возможность добавить к выводу другой отчёт из конфигурации.
В приведённом примере используются три СКД с одинаковыми параметрами и один типовой отчёт из конфигурации.

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

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


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

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

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

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

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