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

Работает корректно, но есть нюанс. Объект доступа может быть элементом иерархического справочника и если в параметре передается всегда нижний элемент, то в регистре может находится и родительская группа. В таком случае условие тоже должно быть Истиной. Говоря языком дилетанта нужно что-то вроде
&ОбъектДоступа В ИЕРАРХИИ (НастройкиПравДоступаГруппПользователей.ОбъектДоступа)
1 Mans
 
21.12.11
10:50
&ОбъектДоступа В ИЕРАРХИИ (НастройкиПравДоступаГруппПользователей.ОбъектДоступа)
это и есть , последнее условие туда включается
2 DirectMaster
 
21.12.11
11:31
Вот только конструкция не верна:
Неверные параметры "В ИЕРАРХИИ"
&ОбъектДоступа В ИЕРАРХИИ (<<?>>НастройкиПравДоступаГруппПользователей.ОбъектДоступа)
Выдавать глобальные идеи — это удовольствие; искать сволочные маленькие ошибки — вот настоящая работа. Фредерик Брукс-младший