|
как в 1С написать ограничение по правам | ☑ | ||
---|---|---|---|---|
0
Егор123
21.03.17
✎
11:41
|
Добрый день, подскажите как в 1С написать ограничение по правам, т.е. например, если у текущего юзера есть доступ к бизнес процессу на исполнение, то исполнить следующий код.
Пробовал так: Если ПравоДоступа("Чтение", БизнесПроцессы.Исполнение, &ТекущийПользователь,) ТОГДА ОбластьОставшиесяЗадачиФИОДаты.Параметры.ДатаПлановая = ?(ЗначениеЗаполнено(СтрокаДетальныеЗаписи.ДатаНачала), Формат(СтрокаДетальныеЗаписи.ДатаНачала, "ДФ=dd.MM.yyyy"), "Не определено"); КонецЕсли; |
|||
1
DrShad
21.03.17
✎
11:45
|
RLS
|
|||
2
Жан Пердежон
21.03.17
✎
11:46
|
Получай только те бизнес-процессы только на которые есть права.
|
|||
3
Егор123
21.03.17
✎
11:52
|
(1) мне не в РЛС надо, а во внешней обработке. Чтобы на Печатной форме не отображалась та информация, на которую у юзеров нет доступа.
|
|||
4
FIXXXL
21.03.17
✎
11:55
|
(0) этот код смысла не имеет
если у пользователя нет Роли с галкой Чтение - он не получит доступ к объекту никак, без использования привелегерованного доступа а если доступ есть, в чем смысл проверки? заполняй сразу |
|||
5
Егор123
21.03.17
✎
11:56
|
(4) тут не доступ к объекту, а отображение на Печатной форме. мне нужно, чтобы у юзера, не имеющего доступ к объекту не отображалось слово "Не определено".
|
|||
6
FIXXXL
21.03.17
✎
11:57
|
(5) как без доступа к объекту откроется форма?
|
|||
7
RomanYS
21.03.17
✎
11:58
|
ПравоДоступа("Чтение", Метаданные.БизнесПроцессы.БизнесПроцесс1)
|
|||
8
FIXXXL
21.03.17
✎
11:58
|
или ты не в форме объекта право которого проверяешь?
|
|||
9
Егор123
21.03.17
✎
12:08
|
(7) не сработало
|
|||
10
Егор123
21.03.17
✎
12:09
|
(8) я не в форме объекта.
|
|||
11
YFedor
21.03.17
✎
12:28
|
Если ПравоДоступа("Чтение", Метаданные.БизнесПроцессы.Исполнение, &ТекущийПользователь,) ТОГДА
ОбластьОставшиесяЗадачиФИОДаты.Параметры.ДатаПлановая = "ЕСТЬ ДОСТУП"; Иначе "НЕТ ДОСТУПА" КонецЕсли; дарю, отлаживай |
|||
12
YFedor
21.03.17
✎
12:29
|
Если ПравоДоступа("Чтение", Метаданные.БизнесПроцессы.Исполнение, &ТекущийПользователь,) ТОГДА
ОбластьОставшиесяЗадачиФИОДаты.Параметры.ДатаПлановая = "ЕСТЬ ДОСТУП"; Иначе ОбластьОставшиесяЗадачиФИОДаты.Параметры.ДатаПлановая = "НЕТ ДОСТУПА" КонецЕсли; |
|||
13
mistеr
21.03.17
✎
12:31
|
(3) Кто тебе мешает во внешней обработке сделать запрос ВЫБРАТЬ РАЗРЕШЕННЫЕ?
|
|||
14
Егор123
21.03.17
✎
12:33
|
(12) спасибо за столь щедрый, но ошибка вылетает всё та же )
{ВнешняяОбработка.КарточкаМероприятияЭЛМ.МодульОбъекта(823,75)}: Ожидается выражение Если ПравоДоступа("Чтение", Метаданные.БизнесПроцессы.Исполнение,<<?>> &ТекущийПользователь,) ТОГДА (Проверка: Сервер) |
|||
15
Егор123
21.03.17
✎
12:35
|
(13) в запросе итак это есть:
|ВЫБРАТЬ РАЗРЕШЕННЫЕ |ЕСТЬNULL(втЗадачи.ДатаНачала, ДАТАВРЕМЯ(1, 1, 1)) КАК ДатаНачала, |
|||
16
mistеr
21.03.17
✎
13:09
|
(15) А зачем лишний код тогда?
|
|||
17
Егор123
21.03.17
✎
13:19
|
(16) в запросе можно вывести слово "неопределено" для разрешённых? и как тогда?
|
|||
18
mistеr
21.03.17
✎
13:35
|
(17) Можно. Выводи для всех, не ошибешься.
> и как тогда? Сделай так, чтобы юзер вообще не видел объектов, на которые у него нет доступа. |
|||
19
FIXXXL
21.03.17
✎
13:35
|
чуть выше
ОбластьОставшиесяЗадачиФИОДаты.Параметры.ДатаПлановая = ""; и &ТекущийПользователь - это что? что отладчик говорит? |
|||
20
Егор123
21.03.17
✎
14:03
|
(19) ошибка вот (14). Текущий пользователь системы. В РЛС так прописывается.
|
|||
21
FIXXXL
21.03.17
✎
14:33
|
(20) ну то РЛС, он пользователя из параметров сеанса берет
тебе же самому придется указать |
|||
22
FIXXXL
21.03.17
✎
14:36
|
ТекущийПользователь() к примеру
|
|||
23
RomanYS
21.03.17
✎
14:54
|
(21) СП говорит, что указывать текущего не обязательно.
"Вызов метода всегда требует административных прав, если явно указан третий параметр - <Пользователь/Роль>, права которого проверяются. Если пользователь не указан, то проверяются права текущего пользователя, и для этого наличие административных прав не требуется." |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |