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