[Alimir_BootModal_Login]

Система компоновки данных 1С 8.3 для начинающих: объединяем наборы данных

Автор уроков и преподаватель школы: Владимир Милькин

На прошлых уроках мы познакомились с соединением наборов данных двумя различными способами. Сегодня же мы научимся объединять различные наборы данных в один набор.

Ставим цель

  • Создать новый отчёт, в котором будут выводиться закупки (дата, поставщик) и продажи (дата, клиент) одновременно.
  • Для этого сделаем два отдельных набора данных с выборкой из таблиц документов "ПоступлениеЕды" и "ПродажаЕды", а затем объединим их в один набор.

Создаем новый отчет

Открываем базу "Гастроном" в конфигураторе и через главное меню "Файл->Новый..." создаём отчёт:

Вид документа  - "Внешний отчет":

В форме нового отчёта указываем имя "Урок9" и нажимаем кнопку "Открыть схему компоновки данных":

Соглашаемся с именем макета по умолчанию:

Создаем первый набор данных

Создаём новый набор данных - запрос (через зелёный плюсик), выделяем его и вызываем конструктор запроса:

Делаем выборку из таблицы документов "ПоступлениеЕды" следующих полей:

Вот он, текст нашего запроса к таблице по закупкам:

Создаем второй набор данных

Добавляем ещё один набор данных - запрос:

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

Делаем выборку из таблицы документов "ПродажаЕды" следующих полей:

Текст запроса будет таким:

Сделаем имена более читабельными. Для этого двойным щелчком переименуем "НаборДанных1" в "Покупки" и поле "Дата" в "ДатаПокупки":

Второй же набор "НаборДанных2" переименуем в "Продажи", а поле "Дата" переименуем в "ДатаПродажи":

Мы получили два набора данных. В первом - информация по покупкам (дата покупки и поставщик), во втором- информация по продажам (дата продажи и клиент). Давайте попробуем теперь вывести всё это в отчет.

Проверяем результат

Переходим на закладку "Настройки" и нажимаем волшебную палочку для вызова конструктора:

Тип отчета - "Список...":

Выбираем поля для отчёта из обоих наборов:

Сохраняем отчёт и формируем в режиме пользователя:

Получилось не совсем то, что ожидали... :) Получилось перекрёстное соединение одного набора данных с другим. А нам нужно именно объединение. Исправим.

Создаем объединение наборов данных

Для этого переходим на закладку "Наборы данных" и добавляем туда набор данных - объединение:

Видим, что этот набор добавился и у него совершенно другая картинка (не таблица, как у двух других, а два объединяющихся круга):

Затем перетаскиваем мышкой наборы "Покупки" и "Продажи" в "НаборДанных1":

Вот это и значит, что теперь "Покупки" и "Продажи" будут не соединяться, а именно объединяться в отчёте.

Сохраним отчёт и сформируем в режиме пользователя:

Отлично. То, что надо.

А давайте зададимся целью объединить столбцы "Поставщик" и "Клиент" в один? И пусть этот новый столбец будет называться "Контрагент".

Для этого заходим на закладку "Наборы данных" и меняем имя поля "Поставщик" в наборе "Покупки" на имя "Контрагент":

Затем в наборе "Продажи" меняем имя поля "Клиент" на имя "Контрагент":

Переходим на закладку "Настройки", выделяем пункт "Отчет", переходим внизу на закладку "Выбранные поля", удаляем уже не существующие поля "Поставщик" и "Клиент" и перетаскиваем из первой колонки во вторую новое поле "Контрагент":

Должно получится вот так:

Готово

Сохраняем отчёт и проверяем в режиме пользователя:

Замечательно всё получилось.

На следующем уроке мы вновь повторим возможности этого отчёта, но не прибегая к объединению наборов данных. Мы вообще обойдёмся одним набором и сделаем объединение на уровне запроса. Это будет более быстрый вариант.

Эталонная обработка, после выполнения всех шагов этого урока

Для учеников

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

На вопросы учеников — отвечаю по почте,  но прежде загляните в ЧАВО (ссылка) .

С уважением, Владимир Милькин

[Alimir_BootModal_Login]