Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лабораторная работа 1С_Предприятие8_1(5-8).docx
Скачиваний:
2
Добавлен:
01.03.2025
Размер:
6 Мб
Скачать
☆

Правое внешнее соединение

Правое соединение в точности противоположно левому. Из первой таблицы выбираются только те строки, которым находятся соответствия во второй таблице. А из второй выбираются все строки. Вместо "недостающих" строк первой таблицы подставляется значение Null.

Для того, чтобы модифицировать текст запроса, превратив его из "левого" в "правый", достаточно заменить ЛЕВОЕ СОЕДИНЕНИЕ на ПРАВОЕ СОЕДИНЕНИЕ. Причем, это мы сделаем вручную, рис. 7.26.

Рис. 7.26.  Результат выполнения запроса

Вот какой текст запроса у нас получился:

ВЫБРАТЬ

Номенклатура.Наименование КАК Номенклатура,

ЕдиницыИзмерения.Наименование КАК ЕдиницаИзмерения

ИЗ

Справочник.Номенклатура КАК Номенклатура

ПРАВОЕ СОЕДИНЕНИЕ Справочник.ЕдиницыИзмерения КАК ЕдиницыИзмерения

ПО Номенклатура.ЕдиницаИзмерения = ЕдиницыИзмерения.Ссылка

Как видите, таблица ЕдиницыИзмерения представлена здесь в полном объеме, а вот из таблицы Номенклатура выбраны лишь те позиции, которым назначена единица измерения.

Если попытаться добиться такого же эффекта с помощью Конструктора запроса, то он, вместо того, чтобы использовать команду ПРАВОЕ СОЕДИНЕНИЕ, использует ЛЕВОЕ СОЕДИНЕНИЕ, но при этом изменяет запрос.

На рис. 7.27 вы можете видеть вкладку Связи Конструктора запросов. Здесь мы сняли галочку из поля Все таблицы Номенклатура и установили ее в поле Все для таблицы ЕдиницыИзмерения.

Рис. 7.27.  Конструктор запроса, вкладка Связи

В итоге мы получаем следующий запрос, сгенерированный автоматически:

ВЫБРАТЬ

Номенклатура.Наименование КАК Номенклатура,

ЕдиницыИзмерения.Наименование КАК ЕдиницаИзмерения

ИЗ

Справочник.ЕдиницыИзмерения КАК ЕдиницыИзмерения

ЛЕВОЕ СОЕДИНЕНИЕ Справочник.Номенклатура КАК Номенклатура

ПО Номенклатура.ЕдиницаИзмерения = ЕдиницыИзмерения.Ссылка

Выборка осуществляется уже из таблицы ЕдиницыИзмерения, ее элементам сопоставляются элементы таблицы Номенклатура, для которых выполняется условие соединения. Эффект от такого запроса точно такой же, рис. 7.28, как и от вышеописанного запроса с командой ПРАВОЕ СОЕДИНЕНИЕ, которую мы вводили вручную.

Рис. 7.28.  Результат выполнения запроса

Полное внешнее соединение

При полном внешнем соединении в результат запроса попадают все поля из таблиц, участвующих в запросе. В Конструкторе запроса это задается установкой галочек в двух полях Все на вкладке Связи, рис. 7.29.

Рис. 7.29.  Конструктор запроса, вкладка Связи

Текст запроса выглядит следующим образом:

ВЫБРАТЬ

Номенклатура.Наименование КАК Номенклатура,

ЕдиницыИзмерения.Наименование КАК ЕдиницаИзмерения

ИЗ

Справочник.ЕдиницыИзмерения КАК ЕдиницыИзмерения

ПОЛНОЕ СОЕДИНЕНИЕ Справочник.Номенклатура КАК Номенклатура

ПО (Номенклатура.ЕдиницаИзмерения = ЕдиницыИзмерения.Ссылка)

На рис. 7.30 представлен результат выполнения запроса:

Рис. 7.30.  Результат выполнения запроса

После того, как мы связывали таблицы правым соединением, наш запрос немного изменился. Сейчас мы, фактически, выбираем поля из таблицы ЕдиницыИзмерения и связываем с ними поля таблицы Номенклатура, однако такое изменение на правильность выполнения запроса не влияет.