Ограничение на изменение реквизита документа на уровне ролей #533407


#0 by drdroid
Создаю новую роль, в ней необходимо установить ограничение на редактирование документа - пользователь с этой ролью должен иметь право изменять в этом документе только один конкретный реквизит, для остальных реквизитов доступ только на чтение. Т.е. он может сохранить/провести документ только если не пытался изменить любой реквизит документа, кроме одного разрешенного. В книге знаний статья этого не описывает.
#1 by poligraf
Может я и не прав... Но RLS, например, тебе не поможет. Поскольку он отрабатывает в момент чтения данных, т.е. при открытии. А тебе надо при записи документа - пилить и пилить.
#2 by drdroid
В RLS есть право "Изменение", думаю можно наложить ограничение на него и запросом сравнить реквизиты до изменения и после, если все реквизиты, кроме указанного, остались без изменений то разрешить изменение иначе запретить, вот только как получить значения реквизитов до изменения и после изменения. Да и топорный это способ.
#3 by Defender aka LINN
Ну, расскажи, как ты получишь "реквизиты до изменения и после" в запросе RLS.
#4 by drdroid
О если б я знал как это сделать, в SQLPlus это сделать легко, а вот в запросе RLS... наверно надо дополнительный регистр с неким подобием версионирования - но это тот еще изврат... Наверно таки ПриЗаписи или доступность на форме менять...
#5 by AlexNew
Наверно таки ПередЗаписью
#6 by Mitriy
переходи на 8.2...
#7 by DmitrO
наверно таки ПриОткрытии :)
#8 by AlexNew
Проверку ПриОткрытии, или доступность реквизитов?
#9 by DmitrO
проверку роли или права и управление доступностью реквизитов и поведением стандартных кнопок а там что, разьве легче?
#10 by Mitriy
ну там как бы вплоть до реквизитов можно права устанавливать...
#11 by DmitrO
тока на просмотр ведь, пишется-то все равно весь объект.
#12 by Mitriy
"пользователь с этой ролью должен иметь право изменять в этом документе только один конкретный реквизит, для остальных реквизитов доступ только на чтение" я как-то неправильно понял эту фразу из сабжа?
#13 by Mily
Все реквизиты документа из однго месте? А если наложить запрет на регистр, в котором хранятся этот самый реквизит, например?
#14 by ILM
Эх, почему наши доблестные молодые коллеги любят решать всё шашкой, на козе, в валенках, по уши в г...не? Какую роль вы создаете? Для одного реквизита? А для другого другую роль? Вы случайно не функцию согласования или утверждения реализуете? Пилите БП и задачи пользователя. На Задачу делайте форму - пусть правит реквизит, и толкает процесс дальше. Господи, ну когда они наконец-то изучат 1С?
#15 by ILM
На краяйняк, добавьте этот реквизит в форме, как переменную нужного типа. И перед закрытием пишите в свой объект.
#16 by DmitrO
господи, сколько же болтунов на мисте
#17 by drdroid
Нет, не функция согласования и нет, роль не на один реквизит, и еще раз нет - тут БП городить нецелесообразно. Роль существенно ограничивает права, по сути для большинства объектов доступ только на чтение, но есть документ в котором необходимо менять статус, при этом надо исключить возможность умышленного/неумышленного изменения других реквизитов. Да, я думаю было бы удобно (и логично) реализовать это ограничениями RLS, но так как RLS не позволяет это сделать без костылей, то останавливаюсь на изменении доступности полей.
#18 by Jackman
#19 by drdroid
Спасибо, примерно так и думал.
#20 by Kerk
Как я понял это только на форме ограничение... Остается дырка программного изменения, так же обработка группового изменения (Геморно, но если "вредителю" нужно, он это сделает)...
#21 by drdroid
Это уже через RLS закрою возможность открытия внешних обработок/отчетов и некоторых внутренних.
Тэги:
Ответить:
Комментарии доступны только авторизированным пользователям

В этой группе 1С