тонкая настройка RLS в БСП 2.4.2.124 #805998


#0 by novichok79
Дратути, уважаемые укротители 1С. Имеется четкая самописка на базе БСП 2.4.2.124. А также имеется задача - нужно манагерам по продажам дать доступ на чтение всех элементов справочника "Контрагенты", но если "Менеджер" <> ПараметрыСеанса.ТекущийПользователь, то доступны на просмотр / отбор / упорядочивание только поля "Наименование", "ИНН", "КПП". Группы доступа копал - не подойдут они. А теперь, внимание, вопрос - каким образом реализовать сею хотелку (желательно средствами RLS)? Или же в платформе 8.3.10.2299 сей каприз не реализуем и надо слать лесом "хочунов" таких чудес? Всем помогающим ставлю царский лойс, как сейчас модно говорить.
#1 by Волшебник
Не лойс, а лайк.
#2 by novichok79
ну и лайк тоже, разумеется.
#3 by novichok79
Делал таким образом: В праве "Чтение" роли Менеджера сделал следующие ограничения по полям: 1) кроме поля "Наименование, ИНН, КПП" ограничение доступа на чтение: ГДЕ Менеджер В (&ТекущийПользователь, ЗНАЧЕНИЕ(Справочник.Пользователи.ПустаяСсылка)) 2) на прочие поля ограничение доступа на чтение: ГДЕ ИСТИНА при таких раскладах выводится только свои элементы справочника и те, где менеджер не задан, при попытке записи элемента справочника контрагенты после замены менеджера на любого, 1С виснет намертво, а во всплывающем окне внизу пишет что-то типа 'Запись объекта "объект не найден"'
#4 by novichok79
короче можно сделать, но получится дичь, а именно: в формах списков сделать дин. списки, с заменой полей на пустые, ну и версии отчетов для манагеров сделать тоже отдельные. по-другому, не знаю как решить подобную задачу.
#5 by _Batoo
Попробуй "Прочие поля" с условием, а "Наименование, ИНН, КПП" ГДЕ ИСТИНА. И тут ГДЕ Менеджер В (&ТекущийПользователь, ЗНАЧЕНИЕ(Справочник.Пользователи.ПустаяСсылка)) &ТекущийПользователь = ПараметрыСеанса.ТекущийПользователь все-таки
#6 by novichok79
а как удалить надписи "объект не найден", в случае отсутствия прав - через ОбработкуПолученияПредставления?
#7 by _Batoo
Добавить к "Наименование, ИНН, КПП" Ссылку.
#8 by novichok79
параметры в запросе RLS берутся из параметров сеанса, насколько я знаю. разве нет?
#9 by _Batoo
Да, верно, это я попутал.
#10 by novichok79
печальные известия, а именно: в праве "Чтение" я пробовал разные позиции, в итоге - в списках 1С показывает только тех контрагентов, где менеджер = &ТекущийПользователь или не указанный пользователь. если контрагент другого менеджера указан в документах, которые доступны текущему менеджеру, открыть или выбрать "чужого контрагента" нельзя. делать походу все равно придется, но через ректальным способом.
#11 by _Batoo
Ну да, у себя так сделал, чтобы пользователь не видел "Объект не найден", но и посмотреть/использовать элемент не мог. И в СКД эти поля будут "видны", для группировок и прочего.
#12 by novichok79
ответ заказчика был суров и краток - "к сожалению, придется делать так". так = как было в FireBird самописке на дельфях.
Тэги: 1С 8
Ответить:
Комментарии доступны только авторизированным пользователям

В этой группе 1С