Есть реквизит объекта, который просто "Справочник", без указания вида. Но он может быть заполнен в том числе значениями определенного справочника.
Хочу в запросе выбрать объекты, в которых этот реквизит входит в заданный список.
Пробую создать временную таблицу через УложитьСписокОбъектов и далее по учебнику "IN (SELECT Val FROM ...)". Однако это условие на вхождение в уложенный список не срабатывает, если оно накладывается на реквизит "Справочник" без указания вида.
Подскажите, как лучше решить эту проблему. Перебор результатов снаружи устраивать не хочется.
На MSSQL было бы как то так, за точность синтаксиса не ручаюсь, пишу без проверки по памяти:
select
...
from
...
left join #уложеннаяТаблица as фильтр
on left(РеквизитСправочника, 4) = 'идВидаСправочникаЧерезМетаданные' and substring(РеквизитСправочника, 4, 9) = фильтр.val
where
фильтр.val is not null
(5) в "IN (SELECT Val FROM ...) "делай так:
IN (SELECT $ВидСправочника36.<ВидСправочника> + Val FROM #ВременнаяТаблицаСправочника)
Ну или если проверяешь на вхождение в выборку из нескольких справочников
IN (SELECT $ВидСправочника36.<ПервыйВидСправочника> + Val FROM #ВременнаяТаблицаСправочникаПервогоВида UNION ALL SELECT $ВидСправочника36.<ВторойВидСправочника> + Val FROM #ВременнаяТаблицаСправочникаВторогоВида)