День добрый.
Столкнулся со следующей проблемой:
Есть простейший регистр сведений с двумя колонками: ГруппаПользователей и ОбъектДоступа. Необходимо выбрать пользователей всех групп для которых установлен доступ к указанному объекту. Сделал это таким простейшим запросом:
ВЫБРАТЬ РАЗЛИЧНЫЕ
Пользователи.Ссылка КАК Пользователь
ИЗ
Справочник.Пользователи КАК Пользователи
ГДЕ
Пользователи.ОсновнаяГруппаПользователей В
(ВЫБРАТЬ РАЗЛИЧНЫЕ
НастройкиПравДоступаГруппПользователей.ГруппаПользователей
ИЗ РегистрСведений.НастройкиПравДоступаГруппПользователей КАК НастройкиПравДоступаГруппПользователей
ГДЕ НастройкиПравДоступаГруппПользователей.ОбъектДоступа = &ОбъектДоступа)
Работает корректно, но есть нюанс. Объект доступа может быть элементом иерархического справочника и если в параметре передается всегда нижний элемент, то в регистре может находится и родительская группа. В таком случае условие тоже должно быть Истиной. Говоря языком дилетанта нужно что-то вроде
&ОбъектДоступа В ИЕРАРХИИ (НастройкиПравДоступаГруппПользователей.ОбъектДоступа)
Вот только конструкция не верна:
Неверные параметры "В ИЕРАРХИИ"
&ОбъектДоступа В ИЕРАРХИИ (<<?>>НастройкиПравДоступаГруппПользователей.ОбъектДоступа)
Требовать и эффективности, и гибкости от одной и той же программы — все равно, что искать очаровательную и скромную жену... по-видимому, нам следует остановиться на чем-то одном из двух. Фредерик Брукс-младший