[Alimir_BootModal_Login]

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

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

Как и в случае с отбором и сортировкой сегодня мы повторим отчёт прошлого урока, не заставляя систему компоновки данных осуществлять связь между двумя наборами.

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

В общем случае этот способ (соединение на уровне запроса) более быстрый, универсальный и мощный.

Ставим цель

  • Повторить отчёт прошлого урока, используя один набор данных.
  • В запросе этого набора сделать выборку из двух таблиц.
  • Сделать левое соединение этих таблиц по цвету.

Итак, поехали! :-)

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

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

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

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

Оставляем имя схемы по умолчанию:

Добавляем набор данных

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

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

Составляем запрос из двух таблиц

В конструкторе выбираем сразу две таблицы для выборки (Еда и Клиенты) и следующие поля из обеих таблиц:

Настраиваем связь между таблицами в запросе

Сразу после добавления двух таблиц становится доступна закладка "Связи". Переходим на неё и добавляем новую связь:

Указываем левую и правую таблицу, а также условие связи:

Чтобы получилось именно левое соединение, поставим после первой таблицы флаг ВСЕ. Это будет означать, что в результат попадут ВСЕ записи из левой таблицы, вне зависимости от того будет ли установлена связь для них. Это и есть левое соединение.

В качестве отступления скажу, что если эту галку не ставить получим внутреннее соединение. Если поставить только правую галку ВСЕ (возле таблицы 2) получим правое соединение. А если поставить обе галки ВСЕ получим полное соединение. Тема соединений в запросах не должна вызывать у вас проблем, ведь мы уже изучили её в предыдущих модулях.

Итак, оставляем только левую галку ВСЕ и нажимаем ОК. Получился такой запрос:

Ага, вот оно - левое соединение двух таблиц по цвету.

Делаем имена более наглядными

Снова даем новые имена для полей, иначе потом запутаем, что есть что:

Вызываем конструктор настроек

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

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

Выбираем поля для отчета:

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

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

Отличный результат.

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

Для учеников

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

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

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

[Alimir_BootModal_Login]