1с в условиях соединения запроса не допускается обращение к табличным частям
Язык запросов 1С позволяет сделать соединения двух и более таблиц. Под соединением понимается состыковка двух таблиц по ключевым полям.
Всего 4 вида соединений
Возможно выборка всех полей объединяемых таблиц (обращение к ним по псевдониму), но если соединение не внутреннее, то в отсутствующем поле будет значение NULL, поэтому следует рассматривать его особым образом или подменять значение через функцию ЕстьNULL().
Различные виды объединений используются для своих своих задач и целей:
Левое, когда требуется к одной основной таблице добавить какие-то свойства из другой. Например к списку контрагентов добавить задолженность, банковские реквизиты, фио руководителей.
При формировании такого запроса, следует добиться отсутствия в правой таблице дублей строк, этому способствует использование временных таблиц или вложенных. В противном случае в левой таблице появятся дубли контрагентов, что будет мешать верному восприятию.
Если задвоения будут в динамическом списке, это может вызвать ошибку дублирования ключевого поля.
Внутреннее соединение служит для максимально ограничения выборки, например: получить контрагентов у которых были реализации в выбранный период.
Требование к таким таблицам:
- различные их псевдонимы и непересечение имен ключей и таблиц.
- При множественных соединениях допустимо комбинация нескольких видов соединений.
Как задать соединение в конструкторе запроса:
Шаг 1: выберите необходимые таблицы, которые возможно соединить
- Это производится на вкладке таблицы конструктора запроса.
- Далее можно сразу выбрать нужные поля.
Контрагенты . Ссылка ,
КонтактныеЛица . Ссылка КАК КонтактноеЛицо
ИЗ
Справочник . Контрагенты КАК Контрагенты
ВНУТРЕННЕЕ СОЕДИНЕНИЕ Справочник . КонтактныеЛица КАК КонтактныеЛица
ПО Контрагенты . ОсновноеКонтактноеЛицо = КонтактныеЛица . Ссылка
И ( Контрагенты . ЮрФизЛицо = ЗНАЧЕНИЕ ( Перечисление . ЮрФизЛицо . ЮрЛицо )
Пример левого соединения
ВЫБРАТЬКонтрагенты . Ссылка ,
КонтактныеЛица . Ссылка КАК КонтактноеЛицо
ИЗ
Справочник . Контрагенты КАК Контрагенты
ЛЕВОЕ СОЕДИНЕНИЕ Справочник . КонтактныеЛица КАК КонтактныеЛица
ПО Контрагенты . ОсновноеКонтактноеЛицо = КонтактныеЛица . Ссылка
И ( Контрагенты . ЮрФизЛицо = ЗНАЧЕНИЕ ( Перечисление . ЮрФизЛицо . ЮрЛицо ) ВЫБРАТЬ
Контрагенты . Ссылка ,
КонтактныеЛица . Ссылка КАК КонтактноеЛицо
ИЗ
Справочник . Контрагенты КАК Контрагенты
ПОЛНОЕ СОЕДИНЕНИЕ Справочник . КонтактныеЛица КАК КонтактныеЛица
ПО Контрагенты . ОсновноеКонтактноеЛицо = КонтактныеЛица . Ссылка
И ( Контрагенты . ЮрФизЛицо = ЗНАЧЕНИЕ ( Перечисление . ЮрФизЛицо . ЮрЛицо )
На что следует обратить внимание:
ВЫБРАТЬКонтрагенты . Ссылка ,
КонтактныеЛица . Ссылка КАК КонтактноеЛицо
ИЗ
Справочник . Контрагенты КАК Контрагенты ,
Справочник . КонтактныеЛица КАК КонтактныеЛица
Я знаю, что трачу половину денег на рекламу впустую, но не знаю, какую именно половину.
— Джон Ванамакера
Читайте также: