ТипСоединенияСхемыЗапроса.ПолноеВнешнее

Свойства · FullOuter

Полное соединение. Соответствует ключевому словую ПОЛНОЕ в выражении ИЗ языка запросов.

Полное описание, параметры и ограничения

ТипСоединенияСхемыЗапроса.ПолноеВнешнее (QuerySchemaJoinType.FullOuter)

ТипСоединенияСхемыЗапроса (QuerySchemaJoinType)

ПолноеВнешнее (FullOuter)

Доступен, начиная с версии 8.3.5.

Описание:
Полное соединение.
Соответствует ключевому словую ПОЛНОЕ в выражении ИЗ языка запросов.
Использование в версии:

Доступен, начиная с версии 8.3.5.

Методическая информация

Практические примеры

Изменить собственную схему запроса: ТипСоединенияСхемыЗапроса.ПолноеВнешнее

Соединение получено непосредственно методом Добавить у настоящего собственного источника. Тип ПолноеВнешнее назначается конкретной связи по равенству наименований.

Где и как запускать

Тело серверной процедуры собственной учебной обработки. Схема редактируется в памяти, текст запроса выводится без исполнения.

Подготовка

  1. Тело серверной процедуры своей учебной обработки. Вложенные источники содержат только собственные константы: товары Книга / Ручка и цены Книга / Альбом.

  2. В конфигурации не нужны справочники, регистры или внешний SQL-сервер. Схема и оба вложенных запроса существуют в памяти.

  3. Не вставляйте сюда рабочие таблицы вместо вложенных констант. Основной код показывает генерацию SQL; вызова Запрос.Выполнить в нём нет.

Схема = Новый СхемаЗапроса;
Схема.УстановитьТекстЗапроса("ВЫБРАТЬ 1 КАК Подготовка");
Выбор = Схема.ПакетЗапросов.Получить(0);
Оператор = Выбор.Операторы.Получить(0);
Товары = Оператор.Источники.Добавить(Тип("ВложенныйЗапросСхемыЗапроса"), "Товары");
Цены = Оператор.Источники.Добавить(Тип("ВложенныйЗапросСхемыЗапроса"), "Цены");
Товары.Источник.Запрос.УстановитьТекстЗапроса("ВЫБРАТЬ ""Книга"" КАК Наименование
|ОБЪЕДИНИТЬ ВСЕ ВЫБРАТЬ ""Ручка""");
Цены.Источник.Запрос.УстановитьТекстЗапроса("ВЫБРАТЬ ""Книга"" КАК Наименование, 250 КАК Цена
|ОБЪЕДИНИТЬ ВСЕ ВЫБРАТЬ ""Альбом"", 400");
Оператор.ВыбираемыеПоля.Очистить();
Оператор.ВыбираемыеПоля.Добавить("Товары.Наименование");
Оператор.ВыбираемыеПоля.Добавить("Цены.Цена");
Связь = Товары.Соединения.Добавить(Цены, "Товары.Наименование = Цены.Наименование");
Связь.ТипСоединения = ТипСоединенияСхемыЗапроса.ПолноеВнешнее;
Сообщить(Схема.ПолучитьТекстЗапроса());
Сообщить("Соединение собственных констант подготовлено; запрос не выполнялся");

Разбор по шагам

  1. Создаём одну собственную схему и сохраняем её в переменной на всё время обращения к дочерним объектам.

  2. Получаем настоящее выражение порядка / соединение из этой схемы, а не неизвестный входной объект.

  3. Назначаем типизированную константу и выводим получившийся текст без выполнения запроса.

Как проверить результат

  1. В сформированном SQL показано соединение ПолноеВнешнее по Товары.Наименование = Цены.Наименование.

  2. Для этих собственных исходных строк ожидается 3 строк при отдельном выполнении сгенерированного запроса. Здесь выполнение не производилось.

  3. При внешнем соединении отсутствующая часть строки имеет NULL. Это не доказательство нулевой цены неизвестного товара.

Ожидаемый результат

Типизированный вариант применён к настоящему объекту собственной схемы запроса.

На что обратить внимание

  1. Не переносите дочерние объекты между разными схемами.

  2. Направление иерархии требует подходящего ссылочного поля, а не сортировки произвольного числа.

  3. Генерация текста и выполнение SQL — разные действия; пример не выдаёт генерацию за runtime-проверку результата.

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

Не хотите разбираться сами?

Адаптируем это решение под вашу базу. Оценка бесплатно.

Оставить задачу

1С, 1С:Предприятие — товарные знаки ООО «1С». Сайт не является официальным представительством фирмы «1С» и не аффилирован с ней.