В качестве примера рассмотрим отчёт Реестр заказов. В сводной таблице отчёта отображается:
- заказ;
- компания-заказчик;
- договор на поставку заказа;
- общая сумма счетов по договору.
Такой отчёт строится из агрегированных данных, хранящихся в трёх разных приложениях: Заказы, Договоры, Счета.
Приложения заполняются данными по следующему принципу: при создании заказа указывается договор и клиент. После согласования договора в его карточке добавляется счёт. При этом по одному договору можно выставить несколько счетов.
Чтобы настроить отчёт таким образом, выполните следующие действия:
- Откройте страницу отчёта и перейдите в настройки источников.
- Нажмите кнопку + Источник данных и добавьте три приложения из разных разделов системы: Заказы, Договоры, Счета.
Первым добавляется основной источник, по которому формируется запрос, и начинается построение отчёта. Это определяется в зависимости от поставленной задачи и необходимого результата выборки данных в отчёте. В нашем примере основное приложение — это Заказы.
- Добавьте колонки таблицы, выбрав поля из источников. При этом измените заданный по умолчанию код каждой колонки, чтобы они не совпадали друг с другом. Это необходимо для экспорта данных из отчёта.
- Заказы — поля Название и Контрагент;
- Договоры — поле Название;
- Счета — поле Сумма с опцией Агрегация > Сумма. С помощью опции агрегации в таблице будет отображаться не указанное в карточке каждого счёта значение, а сумма всех счетов, выставленных по одному договору.
- Свяжите источники между собой, чтобы отобразить в отчёте результат объединения данных этих приложений.
Для каждого источника необходимо создать хотя бы одну связь с другим приложением. В нашем примере для трёх источников достаточно добавить две связи следующим образом: Заказы-Договоры, Договоры-Счета.
Выбор способа связи зависит от особенностей контекста пары источников. В нашем примере контекст источников содержит следующие поля, по которым можно выполнить объединение данных:
- заказ — свойства, ссылающиеся на элементы приложений Договоры и Компании;
- договор — поле, ссылающееся на приложение Компании;
- счёт — поле, ссылающееся на элемент приложения Договоры.
Способ связи для каждой пары источников в нашем примере будет различаться. Рассмотрим каждый из них подробнее.
Связь источников по общему полю
Чтобы в таблице отчёта для каждого заказа отображался связанный с ним договор, добавим связь между приложениями Заказы и Договоры.
При создании заказа и договора выбирается компания-заказчик. Это общее свойство будет являться объединяющим полем для связи источников в отчёте.
- Убедитесь, что на формах приложений Заказы и Договоры создано поле Компания с типом Приложение. Включите для него опцию поиска и сортировки в настройках формы каждого источника.
- На странице настроек источников отчёта нажмите кнопку Связать источники данных.
- Заполните данные в настройках связи:
- укажите первый и второй источники — приложения Заказы и Договоры;
- выберите поле для связи — Компания;
- задайте условие объединения данных — Игнорировать все пустые. В таблицу попадут только те заказы, в которых указан договор и компания-заказчик.
Рассмотрим результат объединения данных при выборе других типов связи:
- Игнорировать пустые слева — из первого приложения-источника отбираются записи с заполненным полем для связи. В примере в таблицу попадут только те заказы, в которых указана компания, а также все договоры;
- Игнорировать пустые справа — из второго приложения-источника отбираются записи с заполненным полем для связи. В примере в таблицу попадут только те договоры, в которых указана компания, а также все заказы;
- Полное — в таблицу попадут все записи из приложений Заказы и Договоры.
- Сохраните созданную связь.
Связь источников по полям «Идентификатор – Приложение»
Чтобы улучшить сортировку данных в отчёте, отобразим в таблице сумму по всем счетам, выставленным по определённому договору. Для этого добавим связь между источниками Договоры и Счета.
У приложений нет общего поля для создания связи, но можно соединить их другим способом.
начало внимание
Если на форме источника А есть поле типа Приложение, ссылающееся на источник Б, связь можно настроить по этому полю и системному свойству Идентификатор источника Б.
конец внимание
Рассмотрим подробнее, каким образом источники объединяются при таких настройках. У каждого элемента приложения есть уникальный код. Он присваивается при создании элемента и хранится в системном поле Идентификатор. Когда в карточке элемента приложения А указывается запись приложения Б, эти элементы связываются между собой.
При формировании отчёта соответствия между записями двух источников выявляются. Для элемента приложения А при помощи идентификатора будет найден указанный в его карточке элемент приложения Б. В таблице отчёта отобразятся связанные друг с другом записи.
В нашем примере при создании счёта в поле типа Приложение на его форме выбирается договор, заключённый с клиентом. Настроить связь можно следующим образом:
- Убедитесь, что на форме приложения Счета создано поле Договор с типом Приложение и для него включена опция поиска и сортировки. Для системного поля Идентификатор опция включена по умолчанию.
- На странице настроек источников отчёта нажмите кнопку Связать источники данных.
- Заполните данные в настройках связи:
- укажите первый и второй источники — приложения Договоры и Счета;
- выберите поля для связи. Для источника Договоры укажите поле Идентификатор, для приложения Счета — поле Договор;
- задайте условие объединения данных — Игнорировать все пустые.
- Сохраните созданную связь.
- После создания связей между источниками в дополнительных настройках вы можете установить порядок отображения колонок в таблице и задать время обновления данных.
Страница Настройка источников с установленными параметрами будет выглядеть следующим образом:
- Сохраните настройки на странице. Результат объединения приложений Заказы, Договоры и Счета по двум условиям отобразится в таблице отчёта.
Поиск и сортировка записей в отчёте
На странице отчёта отображаются фильтры для поиска данных. Фильтр автоматически создаётся из свойства приложения-источника, добавленного как колонка таблицы. Для этого у свойства должна быть включена опция поиска и сортировки в настройках формы источника или для колонки задана агрегация данных.
Чтобы найти записи в отчёте, задайте значения параметров и нажмите Поиск, чтобы найти соответствующие записи.
Кроме того, вы можете отсортировать данные в колонках, например, по возрастанию суммы по счетам. Для этого нажмите на название колонки в таблице.