ВЫБРАТЬ
ВложенныйЗапрос.Контейнер КАК Контейнер,
ВложенныйЗапрос.Пользователь КАК Пользователь,
ЕСТЬNULL(МАКСИМУМ(ВложенныйЗапрос.Чтение), ЛОЖЬ) КАК Чтение,
ЕСТЬNULL(МАКСИМУМ(ВложенныйЗапрос.Добавление), ЛОЖЬ) КАК Добавление,
ЕСТЬNULL(МАКСИМУМ(ВложенныйЗапрос.Изменение), ЛОЖЬ) КАК Изменение,
ЕСТЬNULL(МАКСИМУМ(ВложенныйЗапрос.Удаление), ЛОЖЬ) КАК Удаление,
ЕСТЬNULL(МАКСИМУМ(ВложенныйЗапрос.УправлениеПравами), ЛОЖЬ) КАК УправлениеПравами
ПОМЕСТИТЬ ПраваПользователейКонтейнеров
ИЗ
(ВЫБРАТЬ
ПользователиВКонтейнерах.Контейнер КАК Контейнер,
ПользователиВКонтейнерах.Пользователь КАК Пользователь,
ИСТИНА КАК Чтение,
ПраваПоДескрипторамДоступаОбъектов.Добавление КАК Добавление,
ПраваПоДескрипторамДоступаОбъектов.Изменение КАК Изменение,
ПраваПоДескрипторамДоступаОбъектов.Удаление КАК Удаление,
ПраваПоДескрипторамДоступаОбъектов.УправлениеПравами КАК УправлениеПравами
ИЗ
РегистрСведений.ДескрипторыДляОбъектов КАК ДескрипторыДляОбъектов
ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.ПраваПоДескрипторамДоступаОбъектов КАК ПраваПоДескрипторамДоступаОбъектов
ПО ДескрипторыДляОбъектов.Дескриптор = ПраваПоДескрипторамДоступаОбъектов.Дескриптор
ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.ПользователиВКонтейнерах КАК ПользователиВКонтейнерах
ПО (ПользователиВКонтейнерах.Пользователь = ПраваПоДескрипторамДоступаОбъектов.Пользователь)
ГДЕ
ДескрипторыДляОбъектов.Объект = &Объект
И ПользователиВКонтейнерах.Контейнер В(&Контейнеры)
И (ДескрипторыДляОбъектов.ТипДескриптора = 0
ИЛИ ДескрипторыДляОбъектов.ТипДескриптора = 4)
И НЕ ПользователиВКонтейнерах.Пользователь.Недействителен
ОБЪЕДИНИТЬ ВСЕ
ВЫБРАТЬ
ПользователиВВыбранныхКонтейнерах.Контейнер,
ПользователиВВыбранныхКонтейнерах.Пользователь,
ПраваРолей.ЧтениеБезОграничения,
ПраваРолей.ИзменениеБезОграничения,
ПраваРолей.ИзменениеБезОграничения,
ПраваРолей.ИзменениеБезОграничения,
ЛОЖЬ
ИЗ
РегистрСведений.ПолномочияПользователей КАК ПолномочияПользователей
ВНУТРЕННЕЕ СОЕДИНЕНИЕ Справочник.ПрофилиГруппДоступа.Роли КАК ПрофилиГруппДоступаРоли
ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.ПраваРолей КАК ПраваРолей
ПО ПрофилиГруппДоступаРоли.Роль = ПраваРолей.Роль
ПО ПолномочияПользователей.Полномочия = ПрофилиГруппДоступаРоли.Ссылка
ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.ПользователиВКонтейнерах КАК ПользователиВоВсехКонтейнерах
ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.ПользователиВКонтейнерах КАК ПользователиВВыбранныхКонтейнерах
ПО ПользователиВоВсехКонтейнерах.Пользователь = ПользователиВВыбранныхКонтейнерах.Пользователь
ПО ПолномочияПользователей.Владелец = ПользователиВоВсехКонтейнерах.Контейнер
ГДЕ
ПраваРолей.ЧтениеБезОграничения
И ПользователиВВыбранныхКонтейнерах.Контейнер В(&Контейнеры)
И НЕ ПользователиВВыбранныхКонтейнерах.Пользователь.Недействителен
И ПраваРолей.ОбъектМетаданных = &Идентификатор) КАК ВложенныйЗапрос
СГРУППИРОВАТЬ ПО
ВложенныйЗапрос.Контейнер,
ВложенныйЗапрос.Пользователь
;
////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
ПользователиВКонтейнерах.Контейнер КАК Контейнер,
ЕСТЬNULL(ПраваПользователейКонтейнеров.Чтение, ЛОЖЬ) КАК Чтение,
ЕСТЬNULL(ПраваПользователейКонтейнеров.Добавление, ЛОЖЬ) КАК Добавление,
ЕСТЬNULL(ПраваПользователейКонтейнеров.Изменение, ЛОЖЬ) КАК Изменение,
ЕСТЬNULL(ПраваПользователейКонтейнеров.Удаление, ЛОЖЬ) КАК Удаление,
ЕСТЬNULL(ПраваПользователейКонтейнеров.УправлениеПравами, ЛОЖЬ) КАК УправлениеПравами,
ПользователиВКонтейнерах.Пользователь КАК Пользователь
ИЗ
РегистрСведений.ПользователиВКонтейнерах КАК ПользователиВКонтейнерах
ЛЕВОЕ СОЕДИНЕНИЕ ПраваПользователейКонтейнеров КАК ПраваПользователейКонтейнеров
ПО (ПользователиВКонтейнерах.Контейнер = ПраваПользователейКонтейнеров.Контейнер)
И (ПользователиВКонтейнерах.Пользователь = ПраваПользователейКонтейнеров.Пользователь)
ГДЕ
ПользователиВКонтейнерах.Контейнер В(&Контейнеры)
И НЕ ПользователиВКонтейнерах.Пользователь.Недействителен
И ЕСТЬNULL(ПраваПользователейКонтейнеров.Чтение, ЛОЖЬ)= ЛОЖЬ