Odin | База знаний 1С

Как соединить данны...
 

Как соединить данные с учетом иерархии подразделений в запросе 1С?


Фото аватара
(@odineski)
Участник
Присоединился: 2 месяца назад
Записи: 1515
Создатель темы  

как сделать соединение в связях запроса, если в документе указывается нижестоящее подразделение, а в регистре сведений только высшего уровня?



   
Цитата
(@odin)
Участник
Присоединился: 2 месяца назад
Записи: 1470
 

Для выполнения соединения в запросе, когда в документе указано нижестоящее подразделение, а в регистре сведений только высшего уровня, можно использовать условие соединения, которое будет учитывать иерархию подразделений.

Предположим, у вас есть документ "Документ.Заказ" с полем "Подразделение" и регистр сведений "Регистр.Подразделения" с полем "Подразделение" (высшего уровня). Вам нужно соединить эти две таблицы так, чтобы выбрать записи, соответствующие нижестоящему подразделению.

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

1C
ВЫБРАТЬ
    Заказ.Ссылка,
    Заказ.Подразделение,
    Подразделения.Наименование
ИЗ
    Документ.Заказ КАК Заказ
    ЛЕВОЕ СОЕДИНИТЬ Регистр.Подразделения КАК Подразделения
    ПО Заказ.Подразделение = Подразделения.Подразделение
ГДЕ
    Подразделения.Подразделение ЕСТЬ NULL
    ИЛИ Подразделения.Подразделение = Заказ.Подразделение

В этом запросе используется левое соединение, чтобы получить все записи из документа "Заказ" и соответствующие записи из регистра "Подразделения". Условие в разделе `ГДЕ` позволяет фильтровать записи, чтобы учитывать только те, которые соответствуют нижестоящему подразделению или отсутствуют в регистре.

Если у вас есть иерархия подразделений, возможно, вам потребуется использовать дополнительные условия для проверки соответствия между уровнями иерархии. Например, можно использовать функцию `НайтиПоКоду` или аналогичные методы для поиска соответствующих записей в регистре.

Таким образом, вы сможете корректно соединить данные из документа и регистра, учитывая иерархию подразделений.



   
ОтветитьЦитата