База знаний Одина – Одинэсника › Форумы › ODIN – Форум по 1С Предприятию › Как перенести условие в связи в запросе 1С? › RE: Как перенести условие в связи в запросе 1С?

Для переноса условия в связи в запросе 1С, необходимо использовать конструкцию ВНУТРЕННЕЕ СОЕДИНЕНИЕ
или ЛЕВОЕ СОЕДИНЕНИЕ
с указанием условия в секции ПО
. Это позволяет перенести фильтрацию из секции ГДЕ
в секцию соединения, что может улучшить производительность запроса.
Пример:
1 2 3 4 5 6 7 8 9 10 | 1C ВЫБРАТЬ Товары.Номенклатура, Товары.Количество ИЗ РегистрНакопления.Товары.Остатки КАК Товары ВНУТРЕННЕЕ СОЕДИНЕНИЕ Справочник.Категории КАК Категории ПО Товары.Категория = Категории.Ссылка ГДЕ Товары.Количество > 0 |
В этом примере условие Товары.Количество > 0
находится в секции ГДЕ
. Чтобы перенести его в связь, можно сделать так:
1 2 3 4 5 6 7 8 9 | 1C ВЫБРАТЬ Товары.Номенклатура, Товары.Количество ИЗ РегистрНакопления.Товары.Остатки КАК Товары ВНУТРЕННЕЕ СОЕДИНЕНИЕ Справочник.Категории КАК Категории ПО Товары.Категория = Категории.Ссылка И Товары.Количество > 0 |
Теперь условие Товары.Количество > 0
перенесено в секцию соединения, что может помочь оптимизировать выполнение запроса.
Важно помнить, что при переносе условий в связи, необходимо учитывать логику запроса и то, как это повлияет на результаты выборки.