Версия для печати темы (https://pro1c.org.ua/index.php?s=efd537264d71cd4830d503346718e0a0&showtopic=67420)

Нажмите сюда для просмотра этой темы в обычном формате

Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7 _ Программирование в 1С Предприятие 8.3 _ Роли, РЛС, право Изменения

Автор: AnryMc 05.01.24, 14:34

Задача:
У документа есть реквизит "Выполнено" (тип Булево).
Нужно: Если Выполнено = Истина - запретить редактирование документа для определенной Роли.
Реализация: Для нужной Роли настраивается правило "Изменение" Документа:

Документ ГДЕ Документ.Выполнено = ЛОЖЬ


Все вроде нормально: Документ у которого Выполнено = ИСТИНА открывается на просмотр, если Выполнено = ЛОЖЬ - на редактирование.

ПРОБЛЕМА: Если пользователь открыл документ и установил Выполнено = ИСТИНА, то у него исчезло право на Изменение и он не может сохранить документ. "У пользователя недостаточно прав для действий над базой"

ВОПРОС: Как выйти из этой ситуации, чтобы можно было записать? Т.е. правило должно работать для Документа за писаного в базу а не открытого у пользователя.

Автор: AnryMc 05.01.24, 15:38

AnryMc @ Сегодня, 15:34 * ,

Варианты через реквизит формы (отображающий реквизит документа) и Установить УстановитьПривилегированныйРежим мне понятен но не совсем устраивает (не нравиться).

Хотелось бы узнать другой вариант.
Например как в запросе правила РЛС дать ссылку на значение реквизита редактируемого объекта и/или реквизита в записаном в базу объекта...

Автор: alex-l1904 05.01.24, 15:40

AnryMc @ Сегодня, 15:34 * ,
Думаю тут краще в модулі форми прописати умови, ніж РЛС

Автор: Vofka 09.01.24, 9:03

1. Сделать реквизит формы "Выполнено", который не связан с реквизитом документа и при записи документа дублировать его в реквизит;
2. Вместо галки сделать кнопку, при нажатии на которую переспросить и если "да", тогда устанавливать признак и записывать.

Но я бы такое не через РЛС делал, а как выше alex-l1904 написал.

Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7
https://pro1c.org.ua