Настройка дополнительных прав.

1. user606894_schana1w3 01.12.16 09:26 Сейчас в теме
Здравствуйте, у меня такая проблема - конкретный пользователь хочет ограничить редактирование 2-х документов, если стоит статус(принят оригинал)- это реквизит на форме с типом перечисления, то его может редактировать только он.
если статус другой, то могут редактировать все.
Добавить новую роль(пробовал, все работает, но мне сказали мол это не правильно(создавать новый объект конфы).
Есть такая штучка в планах видов характеристик - настройка прав пользователя(там я добавил новое правило(ограничение по статусу с типов булево).
потом в модуле формы документа (при открытии) написал:


Если НЕ планВидовХарактеристик.настройкаПрав.документы.ОграничениеПоСтатусу = Истина Тогда
этаФорма.ТолькоЧтение = Истина;


он вне зависимости есть там у пользователя галка или нет, всегда открывает документ в режиме только чтение, что я упустил?
По теме из базы знаний
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. ASG74 01.12.16 09:38 Сейчас в теме
Здравствуйте, вы всю форму в режим только чтение переводите: этаФорма.ТолькоЧтение.. А надо установить доступность только у некоторых элементов формы... посмотрите: ЭтаФорма.ЭлементыФормы
3. olbu 01.12.16 09:51 Сейчас в теме
УТ 10 нет под рукой, но вот в УПП есть:
Если Не УправлениеДопПравамиПользователей.ПравоЕстьУПользователя(ПланыВидовХарактеристик.ПраваПользователей.ОграничениеПоСтатусу, Ложь) тогда
        этаФорма.ТолькоПросмотр = Истина;
конецесли;//При отсутствии доп. права - для полных прав возвращает Истина, для не полных - значение по умолчанию(здесь ложь).
4. ASG74 01.12.16 09:59 Сейчас в теме
Ну да если управляемые формы тогда Элементы.[названиеэлемента].Доступность = ложь....
5. user606894_schana1w3 01.12.16 12:14 Сейчас в теме
Вопрос решен.
функция прочитатьПравоПользователя()
	
		//{{КОНСТРУКТОР_ЗАПРОСА_С_ОБРАБОТКОЙ_РЕЗУЛЬТАТА
	// Данный фрагмент построен конструктором.
	// При повторном использовании конструктора, внесенные вручную изменения будут утеряны!!!
	
	Запрос = Новый Запрос;
	Запрос.Текст = 
		"ВЫБРАТЬ
		|	ЗначенияДополнительныхПравПользователя.Значение
		|ИЗ
		|	РегистрСведений.ЗначенияДополнительныхПравПользователя КАК ЗначенияДополнительныхПравПользователя
		|ГДЕ
		|	ЗначенияДополнительныхПравПользователя.Пользователь = &Пользователь
		|	И ЗначенияДополнительныхПравПользователя.Право = &Право";
		
	
	Запрос.УстановитьПараметр("Пользователь", ПараметрыСеанса.ТекущийПользователь);
	Запрос.УстановитьПараметр("Право", ПланыВидовХарактеристик.ПраваПользователей.НайтиПоНаименованию("ЕслиСтатусПринятьОригинал"));
	
	РезультатЗапроса = Запрос.Выполнить();
	
	ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать();
	
	Если ВыборкаДетальныеЗаписи.Следующий() Тогда
		Возврат ВыборкаДетальныеЗаписи.Значение	
	КонецЕсли;
Показать

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

Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот