Выгрузка отчетов
****************

Введение
========
.. Пакетная выгрузка из списочного отчета
.. Пакетная выгрузка по настройке экспорта данных
.. Пакетная выгрузка из генератора отчетов

Пакетная выгрузка отчетов предназначена для автоматизации массового формирования и экспорта отчетных документов в системе. Используется для регулярного получения данных в различных форматах без необходимости ручного запуска каждого отчета.

В системе предусмотрено три типа пакетной выгрузки отчетов для различных сценариев работы с данными:

- **Пакетная выгрузка из списочного отчета** - выгрузка данных из стандартных списочных отчетов системы
- **Пакетная выгрузка из генератора отчетов** - выгрузка из составных отчетов с использованием генератора  
- **Пакетная выгрузка по настройке экспорта данных** - выгрузка по заранее настроенным шаблонам экспорта

Все три типа выгрузки поддерживают экспорт данных в различные форматы, включая XLS, DOC, HTML и TXT, а также могут быть использованы для автоматизации регулярных процессов формирования отчетности.

Создание пакетной выгрузки
==========================

Для создания новой пакетной выгрузки перейдите в раздел **Отчеты** → **Выгрузка отчетов** и нажмите кнопку ``Новый``. 

.. figure:: images/newpak.png
   :width: 70%

   Новая выгрузка отчетов

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


Пакетная выгрузка из списочного отчета
=======================================

Используется для массовой выгрузки данных из стандартных списочных отчетов системы.

.. figure:: images/list.png
   :width: 70%

   Форма выгрузки из списочного отчета 

.. list-table:: Параметры выгрузки
   :header-rows: 1
   :class: longtable

   * - Поле
     - Тип
     - Описание
   * - ``Описание``
     - Строка
     - Описание выгрузки отчетов (обязательно)
   * - ``Путь сохранения``
     - Выбор папки/ Строка
     - Директория для сохранения отчета
   * - ``Обработка результата``
     - Выбор
     - Действие с результатом: *отправить на клиент*, *сохранить на сервере* или *вернуть основному процессу*
   * - ``Отчет``
     - Ссылка
     - Выбор отчета для выгрузки (обязательно)

В поле ``Атрибуты`` использует редактор выражений для настройки сложных условий фильтрации атрибутов. При изменении фильтра относительно исходного отчета система отображает предупреждение и предлагает обновить настройки.

Вкладка ``Группировка и наименование`` содержит настройки для организации выходных файлов:

- *Шаблон наименования* - шаблон для формирования имен выходных файлов, указывает формат имен создаваемых файлов и может содержать переменные для подстановки значений из данных.
- *Путь группировки* - список атрибутов для группировки данных при выгрузке, позволяет разделять данные на отдельные файлы по заданным атрибутам. Для управления списком группировки используются кнопки добавления, удаления, редактирования и просмотра.


Пакетная выгрузка из генератора отчетов
=======================================

Предназначена для работы с составными отчетами, созданными в генераторе отчетов.

.. figure:: images/otchet.png
   :width: 70%

   Форма выгрузки из генератора отчетов

.. list-table:: Параметры выгрузки
   :header-rows: 1
   :class: longtable

   * - Поле
     - Тип
     - Описание
   * - ``Описание``
     - Строка
     - Описание выгрузки отчетов (обязательно)
   * - ``Путь сохранения``
     - Выбор папки/ Строка
     - Директория для сохранения отчета
   * - ``Обработка результата``
     - Выбор
     - Действие с результатом: *отправить на клиент*, *сохранить на сервере* или *вернуть основному процессу*
   * - ``Обобщенный отчет``
     - Ссылка
     - Выбор составного отчета из генератора (обязательно)
   * - ``Шаблон наименования``
     - Строка
     - Шаблон для формирования имен выходных файлов
 
Система автоматически учитывает все связанные настройки составного отчета: условия, параметры, группировки и шаблоны.

Вкладка ``Условия вложенный отчетов`` содержит настройки условий фильтрации для каждого элемента вложенного (составного) отчета. Для каждого элемента можно задать индивидуальные условия отбора данных.

Вкладка ``Группировка`` содержит настройки :term:`лексемы <лексема>` группировки данных для каждого добавленного вложенного отчета. 

Пакетная выгрузка по настройке экспорта данных
==============================================

Используется для выгрузки данных по заранее созданным настройкам экспорта.

.. figure:: images/export.png
   :width: 70%

   Форма выгрузки по настройке экспорта данных

.. list-table:: Параметры выгрузки
   :header-rows: 1
   :class: longtable

   * - Поле
     - Тип
     - Описание
   * - ``Описание``
     - Строка
     - Описание выгрузки отчетов (обязательно)
   * - ``Путь сохранения``
     - Выбор папки/ Строка
     - Директория для сохранения отчета
   * - ``Обработка результата``
     - Выбор
     - Действие с результатом: *отправить на клиент*, *сохранить на сервере* или *вернуть основному процессу*
   * - ``Экспорт данных``
     - Ссылка
     - Выбор настройки экспорта данных (обязательно)
   * - ``Шаблон наименования``
     - Строка
     - Шаблон для формирования имен выходных файлов

Вкладка ``Условия таблиц экспорта`` содержит настройки условий для каждой таблицы экспорта. Для каждой таблицы можно задать индивидуальные условия фильтрации данных.

Вкладка ``Группировка`` содержит настройки лексемы группировки данных для каждой добавленной таблицы экспорта.


Проверка соответствия фильтров
==============================

Система автоматически сравнивает фильтры, заданные в настройках выгрузки, с фильтрами исходных элементов (вложенных отчетов или таблиц экспорта). При обнаружении расхождений отображается панель с предупреждением: *"Текущий фильтр отличается от фильтра во вложенном отчете/таблице экспорта"*.

.. figure:: images/checkup.png
   :width: 70%

   Предупреждение об изменении фильтра


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

Если изменены фильтры **сразу у нескольких** вложенных отчётов и использована кнопка *«Обновить?»*, открывается **модальное окно**, в котором сообщается, что требуется обновить несколько вложенных отчётов (несколько элементов с расхождением). Дальнейшие действия:

.. figure:: images/modal-window.png
   :width: 50%

   Обновление фильтров

- **Yes** — обновить фильтры **во всех** таких вложенных отчётах (для всех элементов с расхождением);
- **No** — обновить фильтр **только у выделенного** в списке вложенного отчёта (текущей строки списка условий);
- **Cancel** — **ничего не обновлять** и закрыть модальное окно.

Если нужно сохранить свой вариант фильтра, отличающийся от исходного, можно не выполнять обновление: игнорируйте предупреждение на панели либо в модальном окне нажмите **Cancel** — заданные условия останутся без изменений.
