Готовишься к экзамену?
Полнофункциональный тренажер @bot_1cnik_bot с полноценным обучением, режимом экзамена и подробной статистикой.
Создание соединения таблиц-источников данных в конструкторе запросов допускает:
Соединение необходимого количества таблиц-источников данных
Правильно: В конструкторе запросов можно добавлять несколько источников данных и настраивать связи между ними в зависимости от задачи. Количество соединяемых таблиц не ограничено двумя - можно строить цепочки и «звезды» из нескольких таблиц.
Соединение только двух таблиц-источников данных, причем флажок "Все" обязательно должен быть проставлен хотя бы у одной из таблиц
Неправильно: Ограничения «только две таблицы» нет - в запрос можно включать больше источников. Флажок «Все» не является обязательным: без него соединение будет обычным (внутренним), а «Все» используется, когда нужен вариант соединения с сохранением строк одной из таблиц (внешнее соединение).
Соединение только двух таблиц-источников данных
Неправильно: В одном запросе допускается использовать несколько таблиц-источников и задавать несколько правил соединения. На практике отчеты и обработки часто соединяют 3-5 и более источников (справочники, документы, регистры) для получения нужных аналитик.
Соединение необходимого количества таблиц-источников данных, причем флажок "Все" обязательно должен быть проставлен хотя бы у одной из таблиц
Неправильно: Таблиц действительно может быть сколько угодно, но обязательности флажка «Все» нет. Этот флажок нужен только для внешнего соединения (когда нужно показать строки одной таблицы даже при отсутствии соответствия в другой), а во многих запросах используется внутреннее соединение без «Все».
Пояснение
Расширенная подсказка:
В конструкторе запросов 1С вы можете добавить несколько источников данных (таблиц) и настроить между ними связи. Это делается для того, чтобы объединить данные, которые хранятся в разных объектах (например, документ + справочник + регистр).
Ключевые моменты:
1) Сколько таблиц можно соединить
- В одном запросе можно соединять столько таблиц, сколько нужно для решения задачи: две, три, пять и больше.
- При этом каждое конкретное правило соединения связывает пару таблиц по выбранным полям, но таких правил в запросе может быть несколько.
2) Зачем нужен флажок «Все»
- Флажок «Все» используется для настройки внешнего соединения (аналог LEFT/RIGHT OUTER JOIN): он означает «показать все строки этой таблицы, даже если соответствий в другой таблице нет».
- Если флажок «Все» не установлен ни у одной из таблиц в соединении, соединение фактически становится внутренним: в результат попадут только строки, у которых есть соответствия по условию соединения.
- Поэтому «Все» включают только тогда, когда это действительно нужно по смыслу отчета.
Практические примеры:
- Пример внутреннего соединения (без «Все»): вывести продажи и подтянуть наименование номенклатуры. Если записи продажи нет - строка и не нужна, поэтому достаточно обычного соединения.
- Пример внешнего соединения (с «Все»): вывести список всех товаров и их продажи за период. Чтобы показать товары, которые не продавались (с нулевыми продажами), нужно сохранить все строки из справочника товаров - для этого и пригодится флажок «Все» у таблицы товаров.
Полезная рекомендация:
- Не включайте «Все» «на всякий случай». Внешние соединения могут существенно изменить результат (появятся строки без соответствий) и иногда увеличивают объем данных. Всегда проверяйте, какой смысл должен иметь отчет: «только совпавшие строки» или «показать все из выбранной таблицы».