Имя: Пароль:
1C
1С v8
v8: Какие платформа предоставляет средства для разделения доступа
,
0 Cerera
 
07.02.13
11:47
RLS - это понятно. а в коде модулей проведения и т.п. как на вашь взгляд культурнее разграничивать права по ролям?
Если писать в коде
Если ИмяПользователя()="...." Или ИмяПользователя()="...." ...

это неверный подход. Заводить регистры сведений под различные ситуации и создавать функции типа
Если Не ЕстьПравоПроводитьЗаказБезКонтроля(ИмяПользователя()) Тогда
...

А ещё как получить список ролей пользователей, в 1с77 такая функция была, а теперь как получать список ролей пользователя?

В общем хочется поподробнее дискасс темы.
1 stepan73
 
07.02.13
11:50
Обычно такие вещи делаю через настройки пользователя
2 Maxus43
 
07.02.13
11:53
РольДоступна()

А вообще - не должно быть разницы в логике документа (при проведении например) из-за различий в правах
3 Cerera
 
07.02.13
11:56
(1)можно поподробнее?
(2)а при контроле проведения? Например, если Менеджеры не имеют право проводить документ, если не проставлены некоторые галочки там в договорах или не согласована цена, а финансовая служба чтоб имела?
4 Maxus43
 
07.02.13
12:00
(3) при контроле - см (2) например, это жёский контроль.
Сделать общую процедуру, чтоб можно было из любого документа вызвать ПроверитьВозможностьПроведения(ЭтотОбъект, Отказ);
и анализируй там, Отказ в нужное значение взводи от результатов.
5 Cerera
 
07.02.13
12:05
(4)а информационные сообщения на каком этапе выводить?
и в общей процедуре по каким принципам ограничивать? по настройкам пользователя и по доступности ролей?
6 Maxus43
 
07.02.13
12:12
(5) перед записью анализируй, в т.ч. и режим записи. сообщения - СообщитьОбОшибке(Текст, отказ) - само разберётся сможет ли вывсети на экран или в ЖР запишет.
по каким принципам - решать тебе, от конкретной задачи и объекта зависит, но не по пользователю ясно, более четкий критерий надо
7 Cerera
 
07.02.13
12:15
(6)но по настройкам в в справочнике пользователя и по регистру сведений ведь можно?
8 Maxus43
 
07.02.13
12:21
(7) как угодно можно
9 LehhaK
 
07.02.13
12:29
Из своего опыта: разграничил роли на те, на которые накладывается РЛС и на те, на которые есть ограничения в модуле. НАпример, у меня есть роль ИнтерентМагазин. В зависимости от ее доступности на формы документов выводятся разные реквизиты. Но нет никаких РлС на эту роль. Зато есть роль Менеджер ИМ, и вот на нее лежит РЛС, но нет проверки в модулях. Не знаю насколько это правильно. Но пока работает. Удобно, вроде
10 Stim
 
07.02.13
12:29
(2) ну.. с этим можно и поспорить.. в узкоспециализированных конфах документ может делать движения по различным регистрам, в зависимости от ролей пользователя.
11 Maxus43
 
07.02.13
13:08
(10) не могу придумать такой ситуации. разные движения - разные операции с точки зрения бизнес-логики
12 exchang
 
07.02.13
13:25
(11) включи воображение, абстрагируйся, думай шире, горизонт мироздания постигается силой мысли и духа
13 Maxus43
 
07.02.13
13:27
(12) я щетаю надо делать правильно, а не включать воображение, там где не надо) воображение после работы включать с женой надо
14 exchang
 
07.02.13
13:31
(13) ты истинный солдат, но не воин
15 exchang
 
07.02.13
13:33
(14) любой ценой стоять за Москву, и ни шагу назад, до Берлина
16 Maxus43
 
07.02.13
13:34
(14) я генерал, который хорошо учил историю, тактику и стратегию. Всё придумано до нас, и не надо изобретать хитрожопые манёвры чтобы победить. Всё решает конкретная ситуация и ландшафт будущего поля сражения. Нет примера необходимости в извращениях (10) - будем по науке
17 exchang
 
07.02.13
13:40
(16) а я генералисимус)
18 Maxus43
 
07.02.13
13:42
(17) ходить в атаку на руках и стрелять зажмурившись - выигрышное дело?)
19 exchang
 
07.02.13
13:49
(18) зануда
20 Maxus43
 
07.02.13
13:56
(19) пятница завтра, сегодня мы работаем серъёзно
21 Aleksey
 
07.02.13
13:57
"Если писать в коде
Если ИмяПользователя()="...." Или ИмяПользователя()="...." ...

это неверный подход"

Почему?
22 Aleksey
 
07.02.13
13:58
И еще авто объясни как ты

Если Не ЕстьПравоПроводитьЗаказБезКонтроля(ИмяПользователя())

заменишь на RLS ?
23 Aleksey
 
07.02.13
14:01
(9) Во-во, а то из-за погоней на универсальность и всё под одну гребенку и получается вызовы 20 процедур и запросы на 16 тысяч строк, так где можно тупо воткнуть условие и сократить все это в 10 раз
Пользователь не знает, чего он хочет, пока не увидит то, что он получил. Эдвард Йодан