7.11 Создание соединения таблиц-источников данных в конструкторе запросов допускает
Опубликовано: Обновлено:
❓ 7.11 Создание соединения таблиц-источников данных в конструкторе запросов допускает:
📚 Документация
Заголовок раздела «📚 Документация»-
ИТС: Язык запросов «1С:Предприятия 8» — Как получить данные из разных таблиц, связанных несколькими соединениями.
🧠 Краткая теория
Заголовок раздела «🧠 Краткая теория»Одно соединение связывает два источника
Заголовок раздела «Одно соединение связывает два источника»В конструкторе запроса на закладке «Связи» отдельное соединение задается между двумя конкретными таблицами-источниками.
Для такого соединения указывается условие связи — выражение, определяющее, как сопоставляются записи этих источников.
При этом в одном запросе можно задать несколько таких соединений.
В тексте запроса каждое соединение задается отдельно:
ВЫБРАТЬ Номенклатура.Наименование КАК Номенклатура, Склады.Наименование КАК Склад, Продажи.КоличествоИЗ Справочник.Номенклатура КАК Номенклатура
ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрНакопления.Продажи КАК Продажи ПО Номенклатура.Ссылка = Продажи.Номенклатура
ВНУТРЕННЕЕ СОЕДИНЕНИЕ Справочник.Склады КАК Склады ПО Продажи.Склад = Склады.СсылкаЗдесь заданы два соединения:
-
Номенклатурасоединяется сПродажи:Номенклатура.Ссылка = Продажи.Номенклатура -
Продажисоединяется соСклады:Продажи.Склад = Склады.Ссылка
Посмотрим на данных:
| Номенклатура.Ссылка | Номенклатура.Наименование |
|---|---|
| Н1 | Монитор |
| Н2 | Клавиатура |
| Продажи.Номенклатура | Продажи.Склад | Продажи.Количество |
|---|---|---|
| Н1 | С1 | 2 |
| Н2 | С2 | 5 |
| Склады.Ссылка | Склады.Наименование |
|---|---|
| С1 | Основной |
| С2 | Резервный |
Условие первого соединения связывает Номенклатура и Продажи по номенклатуре:
Н1 = Н1 → Монитор + С1 + 2 Н2 = Н2 → Клавиатура + С2 + 5
Условие второго соединения связывает Продажи и Склады по складу:
С1 = С1 → Основной С2 = С2 → Резервный
В результате запрос возвращает:
| Номенклатура | Склад | Количество |
|---|---|---|
| Монитор | Основной | 2 |
| Клавиатура | Резервный | 5 |
Таким образом, несколько соединений позволяют связать данные нескольких таблиц: каждое отдельное соединение задается между двумя источниками по своему условию.
Что означает флажок «Все»
Заголовок раздела «Что означает флажок «Все»»На закладке «Связи» конструктора запроса для связанных таблиц доступны флажки «Все».
Этот флажок относится к виду соединения.
| Флажки «Все» | Формируемое соединение |
|---|---|
| Не установлены | Внутреннее соединение |
| Установлен у левой таблицы | Левое внешнее соединение |
| Установлен у правой таблицы | Правое внешнее соединение |
| Установлен у обеих таблиц | Полное соединение |
Неявные соединения
Заголовок раздела «Неявные соединения»Кроме явно заданных соединений, в языке запросов возможно получение поля через точку от ссылочного поля.
Например:
ВЫБРАТЬ Товары.Номенклатура, Товары.Номенклатура.НаименованиеИЗ РегистрСведений.Товары КАК ТоварыПоле Номенклатура содержит ссылку, а конструкция:
Товары.Номенклатура.Наименованиеобращается через нее к полю Наименование.
При выполнении такого запроса язык запросов может создать неявное соединение с таблицей, на которую ссылается поле:
Товары.Номенклатура
│
│ обращение через точку
↓
Номенклатура.Наименование
↓
в запросе возникает неявное соединение
Такое соединение не требуется вручную описывать конструкцией СОЕДИНЕНИЕ ... ПО.
🧠 Ключевая мысль
Заголовок раздела «🧠 Ключевая мысль»Одно явно заданное соединение описывает связь двух источников по условию соединения, при этом в запросе может быть несколько таблиц и несколько соединений между ними. Флажок «Все» определяет вид соединения, а получение полей через точку может приводить к созданию неявного соединения.