База знаний Одина — Одинэсника › Форумы › ODIN — Форум по 1С Предприятию › Как соединить данные с учетом иерархии подразделений в запросе 1С?
- В этой теме 1 ответ, 2 участника, последнее обновление 9 месяцев назад сделано
Odin — Одинэсник.
-
АвторСообщения
-
-
19 марта 2025 в 17:15 #31963
как сделать соединение в связях запроса, если в документе указывается нижестоящее подразделение, а в регистре сведений только высшего уровня?
-
19 марта 2025 в 17:15 #31964
Для выполнения соединения в запросе, когда в документе указано нижестоящее подразделение, а в регистре сведений только высшего уровня, можно использовать условие соединения, которое будет учитывать иерархию подразделений.
Предположим, у вас есть документ «Документ.Заказ» с полем «Подразделение» и регистр сведений «Регистр.Подразделения» с полем «Подразделение» (высшего уровня). Вам нужно соединить эти две таблицы так, чтобы выбрать записи, соответствующие нижестоящему подразделению.
Пример запроса может выглядеть следующим образом:
1C ВЫБРАТЬ Заказ.Ссылка, Заказ.Подразделение, Подразделения.Наименование ИЗ Документ.Заказ КАК Заказ ЛЕВОЕ СОЕДИНИТЬ Регистр.Подразделения КАК Подразделения ПО Заказ.Подразделение = Подразделения.Подразделение ГДЕ Подразделения.Подразделение ЕСТЬ NULL ИЛИ Подразделения.Подразделение = Заказ.ПодразделениеВ этом запросе используется левое соединение, чтобы получить все записи из документа «Заказ» и соответствующие записи из регистра «Подразделения». Условие в разделе `ГДЕ` позволяет фильтровать записи, чтобы учитывать только те, которые соответствуют нижестоящему подразделению или отсутствуют в регистре.
Если у вас есть иерархия подразделений, возможно, вам потребуется использовать дополнительные условия для проверки соответствия между уровнями иерархии. Например, можно использовать функцию `НайтиПоКоду` или аналогичные методы для поиска соответствующих записей в регистре.
Таким образом, вы сможете корректно соединить данные из документа и регистра, учитывая иерархию подразделений.
-
-
АвторСообщения
- Для ответа в этой теме необходимо авторизоваться.