Добрый день, если у документа реквизит - статус в значение "утвержден", то как можно запретить группе пользователей редактировать этот документ?
---
Ну тут уже вступает Юзабилити.

У вас пользователь пыхтел в документе что-то правил, долго ... время потратил целых 5 минут например. потом нажимает записать - а ему в ответ - низя. И работу он свою уже никак не сохранит ... и придет к вам с вилами ...

А если вы ему при открытии установили только просмотр, то это другая совсем история. Согласны?

в итоге приходим к тому что правильно делать, так как делает 1С. И там и там, и при открытии и перед записью (только перед записью не на форме!, а перед записью в модуле)
---
а что у вас за конфигурация ? я обычно не делаю свою подписку, а добавляю в 1с-кую процедуру которая проверяет Дату запрета редактирования.
---
Есть несколько способов решения.
Один из них:
при открытии смотреть значение реквизита.
Если он в нужном статусе , то для нужной нам группы пользователей (скорее всего отделение идет по ролям) ставим свойство формы документа "Только просмотр" Истина.
---
кроме этого в подписку призаписи Отказ = Истина.
потому что динамически создаваемые элементы могут быть доступны
---
разве перевод формы в только просмотр не переводит автоматически все элементы в это же состояние?
---
я думаю что имелось ввиду - "программно создаваемые", а в этом случаи форма не открывается
---
то, что реквизиты создаются программно - понятно, я к тому, что если после создания всех реквизитов перевести форму целиком в 'ридонли', то и программные реквизиты также переведутся, нет?
---
да нет никакого - ридонли. нет формы. Есть объект и есть реквизиты. Весь код который обрабатывается на форме не играет.

Поэтому есть 2 процедуры(обработчика) ПриЗаписи - один находится в форме, другой в модуле объекта.
Тот который в модуле объекта - отрабатывает всегда, тот который в модуле формы - только в том случаи если объект создается интерактивно.
---
в таком случае все делать в "ПередЗаписью" нужно.
---
Ну тут уже вступает Юзабилити.

У вас пользователь пыхтел в документе что-то правил, долго ... время потратил целых 5 минут например. потом нажимает записать - а ему в ответ - низя. И работу он свою уже никак не сохранит ... и придет к вам с вилами ...

А если вы ему при открытии установили только просмотр, то это другая совсем история. Согласны?

в итоге приходим к тому что правильно делать, так как делает 1С. И там и там, и при открытии и перед записью (только перед записью не на форме!, а перед записью в модуле)
---
в случае интерактивной работы пользователя с документом, возвращаемся к вопросу в (4) , (8) про динамически созданные реквизиты на форме, которые могут быть доступны.
---
всё, извиняюсь. догнал ваш вопрос. Я живу большую часть времени в упп 1.3 и никаких реквизитов при открытии формы не дорисовывается слава богу :)

На вопрос - только просмотр на форму, вешает ли признак на реквизиты добавленные при открытии - не знаю. Проверьте. По логике правильно если добавляет.
---
согласен. Да, при записи может отрабатываться какой то код на изменение данных, но по факту если пользователь ничего на форме не поменял, то и в программных реквизитах ничего поменяться не должно, тк входные данные для процедур обработки этих реквизитов не изменились.

+ Обычно динамически создаются данные при создании нового документа.
А тут я так понимаю пользователи все же создавать документы могут, но не должны мочь редактировать уже созданные документы
---
это смотря куда вас логика бизнес процессов заведет ... вот вам простой пример:

изменение в реализации ведет к автоматическому изменению уже созданной счет фактуры. Если вы у пользователя отберете возможность редактировать счет фактуру напрямую, установкой формы при открытии в ТолькоПросмотр. То это не закроет тот код который изменяет счет фактуру при записи документа реализация ...

В типовом механизме Установка даты запрета редактирования, идет 2 функции - 1-я проверка в при открытии и установка Только просмотр, вторая перед записью. привожу пример из УПП 1.3
---
Тогда да, соглашусь, что лучше в событии "Перед записью" проставить Отказ = Истина, если у пользователя определенная Роль.
---
Лучше ещё сразу в ПередЗаписью в модуле, иначе рано или поздно вылезет где-то что программно редактируется из другого места