helpf.pro
Регистрация

v8.2 УП: Как разграничить доступы на записи в одном справочнике?

Lavr
12.05.2016 10:43Прочитано: 1250

Имеется справочник, на который имеют полные права все пользователиконфигурации, требуется только чтобы все пользователи не моглиизменять/удалять записи друг друга, но видеть. Это можно реализовать только через код?

Если да, то подскажите пожалуйста в какую сторону смотреть?

Благодарю.

Yandex
Возможно, вас также заинтересует
Реклама на портале
all4cf
13.05.2016 05:19Ответ № 1

При записи и Перед удалением делай проверку на пользователя

Lavr
13.05.2016 13:23Ответ № 2

Может так надо?

&НаСервере Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) ТолькоПросмотр = ПользовательНеИмеетПраваИзменятьЭлемент(ПараметрыСеанса.ТекущийПользователь); КонецПроцедуры

Lavr
16.05.2016 13:45Ответ № 3

В форме элемента сделал так:

&НаСервереПроцедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)Если НЕ ЗначениеЗаполнено(Объект.Сотрудник) Тогда Объект.Сотрудник = ПараметрыСеанса.ТекущийПользователь;КонецЕсли;

ЭтаФорма.ТолькоПросмотр=(Объект.Сотрудник <> ПараметрыСеанса.ТекущийПользователь);

КонецПроцедуры

Все работает, подскажите пожалуйста как сделать для формы списка этого же справочника?

all4cf
19.05.2016 17:49Ответ № 4

(3) так это же просто список, что ты там хочешь ограничить? или ты хочешь сделать отбор в списке по сотруднику?

Lavr
23.05.2016 10:27Ответ № 5

Необходимо чтобы текущий пользователь имел полные права на свои записи в справочнике в форме списка, но чужие записи мог только просматривать.

В форме элемента все получилось, как написано выше, но в форме списка любую запись любой пользователь может удалить.

Lavr
26.05.2016 08:37Ответ № 6

Может так как то:

&НаСервере Процедура СписокПередНачаломИзменения(Элемент, Отказ)  Если Элементы.Сотрудник <> ПараметрыСеанса.ТекущийПользователь Тогда  ЭтаФорма.ТолькоПросмотр=Истина;  КонецЕсли; КонецПроцедуры[/pre]

Lavr
03.06.2016 11:08Ответ № 7

В модуле объекта:

Процедура ПередЗаписью () Сотр=Справочники.ЛёвинВА.НайтиПоРеквизиту(Сотрудник); Если Сотр <> ПараметрыСеанса.ТекущийПользователь Тогда ТолькоПросмотр=Истина; КонецЕсли;КонецПроцедуры

Управляемое приложение, через веб-интерфейс не работает.

Помогите пожалуйста как правильно сделать?

all4cf
06.06.2016 11:41Ответ № 8

У каждого объекта как правило есть реквизит ответсвенный, в нем указан сотрудник - который этот объект создал. и тогда можно:

В модуле объекта:

Процедура ПередЗаписью ()

Примерно так:

Если НЕ ПараметрыСеанса.ТекущийПользователь = Ответсвенный Тогда

ОТказ = Истниа;

КонейЕсли;

Lavr
07.06.2016 08:32Ответ № 9

Не работает - Ответственный переменная не определена

all4cf
07.06.2016 20:54Ответ № 10

Поправочка, у тебя не ответственный а сотрудник нужно использовать:

Код 1C v 8.3
 Процедура ПередЗаписью(Отказ)
Если НЕ ПараметрыСеанса.ТекущийПользователь = Сотрудник Тогда
Отказ = Истина; 
КонецЕсли;

//Сотр=Справочники.ЛёвинВА.НайтиПоРеквизиту(Сотрудник);
//Если Сотр <> ПараметрыСеанса.ТекущийПользователь Тогда
//ТолькоПросмотр=Истина;
//КонецЕсли;
//Отказ = ПометкаУдаления И Сотрудник;
КонецПроцедуры
Lavr
08.06.2016 12:21Ответ № 11

Да, благодарю, все получилось.

Подсказка: Для выделения Кода используйте (в редакторе).
Вы не можете отправить комментарий анонимно, пожалуйста войдите или зарегистрируйтесь.