|
|
|
Ограничение доступа к данным через RLS
|
|||
|---|---|---|---|
|
#18+
Добрый вечер! Подскажите пожалуйста, как средствами RLS обеспечить доступ пользователя только к своим контрагентам? Для справочника Контрагенты (иерархический - иерархия групп и элементов) пишу следующее ограничение для права на чтение: ГДЕ Менеджер = &ТекущийПользователь. (ТекущийПользователь - параметр сеанса, Менеджер - это реквизит справочника Контрагенты типа СправочникСсылка.пользователи). В итоге в режиме Предприятия не вижу ни одного контрагента. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.12.2009, 16:25 |
|
||
|
Ограничение доступа к данным через RLS
|
|||
|---|---|---|---|
|
#18+
Странно, должен отрабатывать. Попробуйте в консоле запроса написать и посмотреть что выведет Код: plaintext 1. 2. 3. Этот запрос аналогичен правилу RLS вида Код: plaintext 1. 2. 3. P.S. Я все RLS сначала в консоли проверяю, после уже копирую в конфигурацию. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.12.2009, 08:41 |
|
||
|
Ограничение доступа к данным через RLS
|
|||
|---|---|---|---|
|
#18+
Это своя конфигурация, в ней нет консоли запросов. Вот еще странность, если писать условие ГДЕ Менеджер <> &ТекущийПользователь. Тогда работает совершенно правильно, то есть показывает контрагентов, у которых менеджер не текущий пользователь. Но надо-то наоборот, а наоборот не работает((( ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.12.2009, 11:19 |
|
||
|
Ограничение доступа к данным через RLS
|
|||
|---|---|---|---|
|
#18+
Нашла консоль запросов, проверила этим запросом, тоже ничего не выводит, хотя я в процедуре УстановкаПараметровСеанса() устанавливаю параметр ТекущийПользователь... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.12.2009, 11:29 |
|
||
|
Ограничение доступа к данным через RLS
|
|||
|---|---|---|---|
|
#18+
Раз консоль запросов ничего не выводит, значит проблема в запросе. Хотя это очень странно. Вы параметр ТекущийПользователь в консоле запросов как устанавливаете? (Надо через клавную панель формы "Параметры запроса" -> "Получить из запроса") Еще посмотрите тип переменной &ТекущийПользователь и его значение в режиме отладки. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.12.2009, 12:54 |
|
||
|
Ограничение доступа к данным через RLS
|
|||
|---|---|---|---|
|
#18+
Консоль все правильно выводит, оказывается неправильно параметр задавала. Только в справочнике Контрагенты все равно не видно ни одного элемента. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.12.2009, 13:07 |
|
||
|
Ограничение доступа к данным через RLS
|
|||
|---|---|---|---|
|
#18+
К сожалению больше посоветовать ничего не могу. Придется вам самой внимательно все просмотреть, там не так все сложно настраивается. Главное понять принцип. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.12.2009, 15:21 |
|
||
|
Ограничение доступа к данным через RLS
|
|||
|---|---|---|---|
|
#18+
Вся проблема по-моему в том, что справочник иерархический и имеет группы. Если групп нет, то пользователю видны именно его контрагенты. Но так как все контрагенты находятся в группах (а у группы нет менеджера), не виден ни один из них. Пробовала назначать ограничение только прочим полям, но это не помогло. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.12.2009, 10:29 |
|
||
|
Ограничение доступа к данным через RLS
|
|||
|---|---|---|---|
|
#18+
КристинкаВся проблема по-моему в том, что справочник иерархический и имеет группы. Если групп нет, то пользователю видны именно его контрагенты. Но так как все контрагенты находятся в группах (а у группы нет менеджера), не виден ни один из них. Пробовала назначать ограничение только прочим полям, но это не помогло. Совершенно верно. Сталкивался с этой же ситуацией. Могу посоветовать сделать следующее: если в спр-ке Контрагентов для реквизита "Менеджер" использование установлено "Для элемента", изменить на "Для групп и элементов", дальше по ситуации - если у Вас все контрагенты в группах относятся к одному менеджеру - просто проставляйте его для групп и тогда будете видеть всё, что внутри. Если же в гурппе собраны контрагенты для разных менеджеров, можно сделать, например, предопределенного такого "общего" менеджера в спр-ке пользователей и добавить его проверку в RLS через ИЛИ ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.12.2009, 12:23 |
|
||
|
Ограничение доступа к данным через RLS
|
|||
|---|---|---|---|
|
#18+
nicktcherЕсли же в гурппе собраны контрагенты для разных менеджеров, можно сделать, например, предопределенного такого "общего" менеджера в спр-ке пользователей и добавить его проверку в RLS через ИЛИ[/quot] Ситуация именно такая. Не совсем понятно, что значит "общего" менеджера и как это будет работать? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.12.2009, 07:59 |
|
||
|
Ограничение доступа к данным через RLS
|
|||
|---|---|---|---|
|
#18+
Кристинка, Я имею в виду - создать в спр-ке пользователей предопределенный элемент с именем "Менеджер", а в RLS прописать что-то наподобие ... ГДЕ (Менеджер = &ТекущийПользователь) ИЛИ (Родитель.Менеджер = Справочники.Пользователи.Менеджер И Менеджер = &ТекущийПользователь) Но имхо лучше упорядочить спр-к контрагентов так, чтобы группы содержали контрагентов только по одному менеджеру, его же проставить в реквизит "Менеджер" у группы. Я бы сделал так) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.12.2009, 12:41 |
|
||
|
Ограничение доступа к данным через RLS
|
|||
|---|---|---|---|
|
#18+
Спасибо большое, nicktcher! К сожалению, упорядочить спр-к контрагентов так, чтобы группы содержали контрагентов только по одному менеджеру, не получится. Так что буду использовать общего менеджера. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.12.2009, 13:13 |
|
||
|
|

start [/forum/topic.php?fid=28&msg=36351433&tid=1522954]: |
0ms |
get settings: |
11ms |
get forum list: |
18ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
184ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
59ms |
get tp. blocked users: |
1ms |
| others: | 264ms |
| total: | 559ms |

| 0 / 0 |
