Набор данных – объединение предназначен для разработки отчета, содержащего объединенную информацию из различных наборов данных. Такой набор содержит два или более подчиненных набора данных, но информация в них не связывается, а объединяется.
В третьем примере () данной главы объяснялось, что при связывании наборов данных в схеме компоновки используется Левое соединение. То есть в отчете будут показаны все записи из левого набора данных, описанного в выражении связи, а из правого набора будут показаны только те записи, которые соответствуют условию связывания. Если же требуется вывести в отчет все записи из обоих наборов данных, используется набор данных – объединение.
Для примера создадим отчет, объединяющий информацию о поступлении и продаже номенклатуры. В нем мы сгруппируем полученные данные по позициям номенклатуры и выведем их в табличный документ с помощью конструктора настроек (рис. 2.67).
Рис. 2.67. Требуемый вид отчета
Создадим новый объект конфигурации Отчет и назовем его АнализПоступленияПродаж. Откроем конструктор схемы компоновки данных и добавим новый набор данных – объединение (рис. 2.68).
Рис. 2.68. Добавление набора данных – объединение
В схеме компоновки данных будет создан набор данных типа Объединение с именем НаборДанных1. Выделим его в дереве наборов данных и, вызвав его контекстное меню или нажав кнопку Добавить, добавим в него новый набор данных – запрос (рис. 2.69).
Рис. 2.69. Добавление набора данных – запрос
Назовем его Поступление. Чтобы ввести новое имя набора данных, можно дважды щелкнуть по его названию. Откроем конструктор запроса. В качестве источника данных для запроса выберем табличную часть ПереченьНоменклатуры таблицы документа ПриходнаяНакладная. В список полей перенесем поля из табличной части этого документа (рис. 2.70):
Рис. 2.70. Выбор полей для запроса
На закладке Объединения/Псевдонимы изменим имя у поля Количество на Поступило, Сумма на СуммаПоступления (рис. 2.71).
Рис. 2.71. Изменение имен полей в конструкторе запроса
Нажмем ОК и вернемся в конструктор схемы компоновки данных. Затем выделим родительский набор данных НаборДанных1 в дереве наборов данных и добавим в него еще один набор данных – запрос. Назовем его Расход. Откроем конструктор запроса. В качестве источника данных для запроса выберем табличную часть ПереченьНоменклатуры таблицы документа РасходнаяНакладная. В список полей перенесем поля из табличной части этого документа (рис. 2.72):
Рис. 2.72. Выбор полей для запроса
На закладке Объединения/Псевдонимы изменим имя у поля Количество на Продано, Сумма на СуммаПродажи. Нажмем ОК и вернемся в конструктор схемы компоновки данных.
На закладке Ресурсы схемы компоновки данных, в списке Доступные поля расположены все поля из объединенного набора данных отчета. Нажмем кнопку , чтобы конструктор выбрал все доступные ресурсы, по которым можно вычислять итоги (рис. 2.73).
Рис. 2.73. Выбор ресурсов для отчета
Для быстрого создания стандартных настроек воспользуемся конструктором настроек. Для этого нажмем кнопку в командной панели схемы компоновки на закладке Настройки. Сначала выберем тип отчета Список, что соответствует элементу структуры отчета Группировка, где информация выводится по строкам. Нажмем кнопку Далее. На следующем шаге определим поля, выводящиеся в отчет. Список доступных полей включает поля из объединенного набора данных. Нажмем кнопку
и выберем из него все поля (рис. 2.74).
Рис. 2.74. Конструктор настроек. Шаг 2
Нажмем кнопку Далее. На следующем шаге определим поля для группировки записей в списке. Мышью перетащим из списка доступных полей поле Номенклатура (рис. 2.75).
Рис. 2.75. Конструктор настроек. Шаг 3
Нажмем кнопку Далее. Следующий шаг пропустим, так как сортировка в данном случае нам не важна.
Нажмем ОК. В результате наших действий в окне настроек появилась группировка Номенклатура и определен список выбранных полей (рис. 2.76).
Рис. 2.76. Настройки схемы компоновки данных
Запустим отчет на исполнение в режиме 1С:Предприятие. Нажмем кнопку Сформировать. Наш отчет примет следующий вид (рис. 2.77).
Рис. 2.77. Результат отчета
Мы видим, что записи в отчете сгруппированы по полю Номенклатура, и для каждой позиции номенклатуры выводятся суммарные значения количества и суммы ее поступления и продажи. Эти данные попадают в отчет путем объединения информации из документов Приходная накладная и Расходная накладная.
В заключение продемонстрируем отличие набора данных – объединение (на рисунке в центре) от связи этих же наборов данных в схеме компоновки (на рисунке слева и справа). Для наглядности мы вывели в отчет детальные записи и поочередно расположили слева в выражении связи наборы данных Поступление и Расход (рис. 2.78).
Рис. 2.78. Результат отчета с использованием объединения и связывания наборов данных