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