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