|
Как разграничить доступы на записи в одном справочнике? | ☑ | ||
---|---|---|---|---|
0
Lavr
12.05.16
✎
13:07
|
Имеется справочник, на который имеют полные права все пользователи конфигурации, требуется только чтобы все пользователи не могли изменять/удалять записи друг друга, но видеть. Это можно реализовать только через код?
Если да, то подскажите пожалуйста в какую сторону смотреть? Благодарю |
|||
1
ДенисЧ
12.05.16
✎
13:10
|
В форме элемента
Если ПользовательНеИмеетПраваИзменятьЭлемент(глТекущийПользователь) Тогда Форма.ТолькоПросмотр = Истина; КонецЕсли; |
|||
2
КМ155
12.05.16
✎
13:11
|
(0) RLS
подписка перед записью блокировка контрола |
|||
3
lodger
12.05.16
✎
13:12
|
(1) зато юзер может где-то инициировать код способный к изменению реквизитов.
(0) по старой доброй традиции я бы нагородил RLS с доступом через реквизит Автор :D |
|||
4
ДенисЧ
12.05.16
✎
13:13
|
(3) Ну можно код вставить в ПриЗаписи...
|
|||
5
ДенисЧ
12.05.16
✎
13:14
|
РЛС уж слишком сильно тормоза добавляет...
|
|||
6
КМ155
12.05.16
✎
13:16
|
(4) перед записью
|
|||
7
ДенисЧ
12.05.16
✎
13:19
|
(6) Убедил.
|
|||
8
Lavr
13.05.16
✎
09:53
|
Простите забыл указать - у меня Управляемое приложение, 1С 8.2
В форме элемента НаКлиенте Процедура ЗаписьСПриИзменении(Элемент) Если ПользовательНеИмеетПраваИзменятьЭлемент(глТекущийПользователь) Тогда Форма.ТолькоПросмотр = Истина; КонецЕсли; КонецПроцедуры Как то так? |
|||
9
lxs
13.05.16
✎
10:08
|
(8) Убил))
|
|||
10
Карупян
13.05.16
✎
10:13
|
RLS на запись - это ЗЛО
|
|||
11
Тролль главный
13.05.16
✎
10:22
|
&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) ТолькоПросмотр = ПользовательНеИмеетПраваИзменятьЭлемент(ПараметрыСеанса.ТекущийПользователь); КонецПроцедуры |
|||
12
Lavr
13.05.16
✎
13:24
|
процедура или функция с указанным именем не определена.
|
|||
13
Nuobu
13.05.16
✎
13:25
|
(12) Сам эту функцию напиши.
|
|||
14
КМ155
13.05.16
✎
13:33
|
(10) +100500
подписка перед записью наше всё |
|||
15
Lavr
16.05.16
✎
13:48
|
В форме элемента сделал так:
&НаСервере Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) Если НЕ ЗначениеЗаполнено(Объект.Сотрудник) Тогда Объект.Сотрудник = ПараметрыСеанса.ТекущийПользователь; КонецЕсли; ЭтаФорма.ТолькоПросмотр=(Объект.Сотрудник <> ПараметрыСеанса.ТекущийПользователь); КонецПроцедуры Все работает, подскажите пожалуйста как сделать для формы списка этого же справочника? |
|||
16
Lavr
23.05.16
✎
15:33
|
Необходимо чтобы текущий пользователь имел полные права на свои записи в справочнике в форме списка, но чужие записи мог только просматривать.
В форме элемента все получилось, как написано выше, но в форме списка любую запись любой пользователь может удалить. |
|||
17
ДенисЧ
23.05.16
✎
15:35
|
(16) Ты разрешил пользователям непосредственное удаление? blame on you!
|
|||
18
RomanYS
23.05.16
✎
15:40
|
(15)
Если НЕ ЗначениеЗаполнено(Объект.Сотрудник) Тогда Объект.Сотрудник = ПараметрыСеанса.ТекущийПользователь; КонецЕсли; Забавно: кто первый встал того и тапки? |
|||
19
YFedor
23.05.16
✎
15:48
|
(16) Так в модуле объекта проверяй
|
|||
20
Lavr
25.05.16
✎
14:26
|
Может так как то:
&НаСервере Процедура СписокПередНачаломИзменения(Элемент, Отказ) Если Элементы.Сотрудник <> ПараметрыСеанса.ТекущийПользователь Тогда ЭтаФорма.ТолькоПросмотр=Истина; КонецЕсли; КонецПроцедуры |
|||
21
Lavr
03.06.16
✎
11:10
|
В модуле объекта:
Процедура ПередЗаписью () Сотр=Справочники.ЛёвинВА.НайтиПоРеквизиту(Сотрудник); Если Сотр <> ПараметрыСеанса.ТекущийПользователь Тогда ТолькоПросмотр=Истина; КонецЕсли; КонецПроцедуры ? Управляемое приложение, через веб-интерфейс не работает. Помогите пожалуйста как правильно сделать? |
|||
22
aleks_default
03.06.16
✎
11:18
|
"Справочники.ЛёвинВА."
жги еще |
|||
23
senior
03.06.16
✎
11:34
|
(10) че так?
|
|||
24
Lavr
08.06.16
✎
12:31
|
Вопрос закрыт. ДенисЧ, lodger, КМ155, Тролль главный и YFedor благодарю вас.
Модуль Объекта: Процедура ПередЗаписью(Отказ) Если НЕ ПараметрыСеанса.ТекущийПользователь = Сотрудник Тогда Отказ = Истина; КонецЕсли; КонецПроцедуры Процедура ПередУдалением(Отказ) Если НЕ ПараметрыСеанса.ТекущийПользователь = Сотрудник Тогда Отказ = Истина; КонецЕсли; КонецПроцедуры Процедура ПриЗаписи(Отказ) КонецПроцедуры ФормаЭлемента: &НаСервере Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) Если НЕ ЗначениеЗаполнено(Объект.Сотрудник) Тогда Объект.Сотрудник = ПараметрыСеанса.ТекущийПользователь; КонецЕсли; ЭтаФорма.ТолькоПросмотр=(Объект.Сотрудник <> ПараметрыСеанса.ТекущийПользователь); КонецПроцедуры |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |