Имя: Пароль:
1C
1С v8
тонкая настройка RLS в БСП 2.4.2.124
0 novichok79
 
04.10.17
16:45
Дратути, уважаемые укротители 1С. Имеется четкая самописка на базе БСП 2.4.2.124. А также имеется задача - нужно манагерам по продажам дать доступ на чтение всех элементов справочника "Контрагенты", но если "Менеджер" <> ПараметрыСеанса.ТекущийПользователь, то доступны на просмотр / отбор / упорядочивание только поля "Наименование", "ИНН", "КПП". Группы доступа копал - не подойдут они.
А теперь, внимание, вопрос - каким образом реализовать сею хотелку (желательно средствами RLS)? Или же в платформе 8.3.10.2299 сей каприз не реализуем и надо слать лесом "хочунов" таких чудес?
Всем помогающим ставлю царский лойс, как сейчас модно говорить.
1 Волшебник
 
модератор
04.10.17
16:48
Не лойс, а лайк.
2 novichok79
 
04.10.17
16:49
(1) ну и лайк тоже, разумеется.
3 novichok79
 
04.10.17
16:56
Делал таким образом:
В праве "Чтение" роли Менеджера сделал следующие ограничения по полям:

1) кроме поля "Наименование, ИНН, КПП" ограничение доступа на чтение:
ГДЕ Менеджер В (&ТекущийПользователь, ЗНАЧЕНИЕ(Справочник.Пользователи.ПустаяСсылка))
2) на прочие поля ограничение доступа на чтение:
ГДЕ ИСТИНА

при таких раскладах выводится только свои элементы справочника и те, где менеджер не задан, при попытке записи элемента справочника контрагенты после замены менеджера на любого, 1С виснет намертво, а во всплывающем окне внизу пишет что-то типа 'Запись объекта "объект не найден"'
4 novichok79
 
04.10.17
18:04
короче можно сделать, но получится дичь, а именно:
в формах списков сделать дин. списки, с заменой полей на пустые, ну и версии отчетов для манагеров сделать тоже отдельные. по-другому, не знаю как решить подобную задачу.
5 _Batoo
 
04.10.17
18:23
(3)

Попробуй "Прочие поля" с условием, а "Наименование, ИНН, КПП" ГДЕ ИСТИНА.

И тут

ГДЕ Менеджер В (&ТекущийПользователь, ЗНАЧЕНИЕ(Справочник.Пользователи.ПустаяСсылка))

&ТекущийПользователь = ПараметрыСеанса.ТекущийПользователь все-таки
6 novichok79
 
04.10.17
18:42
(5) а как удалить надписи "объект не найден", в случае отсутствия прав - через ОбработкуПолученияПредставления?
7 _Batoo
 
04.10.17
18:53
(6)

Добавить к "Наименование, ИНН, КПП" Ссылку.
8 novichok79
 
04.10.17
19:39
(5) параметры в запросе RLS берутся из параметров сеанса, насколько я знаю. разве нет?
9 _Batoo
 
04.10.17
20:48
(8)

Да, верно, это я попутал.
10 novichok79
 
05.10.17
08:56
(9) печальные известия, а именно:
в праве "Чтение" я пробовал разные позиции, в итоге - в списках 1С показывает только тех контрагентов, где менеджер = &ТекущийПользователь или не указанный пользователь. если контрагент другого менеджера указан в документах, которые доступны текущему менеджеру, открыть или выбрать "чужого контрагента" нельзя. делать походу все равно придется, но через ректальным способом.
11 _Batoo
 
05.10.17
10:36
(10)

Ну да, у себя так сделал, чтобы пользователь не видел "Объект не найден", но и посмотреть/использовать элемент не мог.
И в СКД эти поля будут "видны", для группировок и прочего.
12 novichok79
 
05.10.17
10:57
(11) ответ заказчика был суров и краток - "к сожалению, придется делать так". так = как было в FireBird самописке на дельфях.