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