11.12.2006, 16:42 | #1 |
Участник
|
Права доступа на поля формы.
Необходимо на форме Номенклатурные единицы на вкладке Цена/Скидка на группу полей Закупка настроить права доступа в режим Нет доступа.
А Axapta позваляет снять доступ например для поля Цена сразу для все групп полей (Закупка, Склад, Заказ), а снять доступ для поля Цена из какой либо конкретной группы полей не позволяет. Может я что то не нашел или так задумано?
__________________
Алексей |
|
11.12.2006, 16:52 | #2 |
NavAx
|
Советую ограничивать на поля таблицы для нужных групп пользователей.
Последний раз редактировалось raz; 11.12.2006 в 16:56. |
|
|
За это сообщение автора поблагодарили: Logger (3). |
11.12.2006, 17:08 | #3 |
Злыдни
|
Не получится, т.к. поле цена находится в InventTableModule и это единственное поле. Надо добавлять ключи доступа и анализировать в коде
__________________
люди...считают, что если техника не ломается, то ее не нужно ремонтировать. Инженеры считают, что если она не ломается, то нуждается в совершенствовании. |
|
11.12.2006, 17:40 | #4 |
NavAx
|
Стормозил.
Тогда проще свой секьюрити кей сделать и повесить его на поле или группу контролов на форме. И им рулить. Можно и в коде, но проще повесить на контролы. |
|
11.12.2006, 20:56 | #5 |
Участник
|
По хорошему, если SecurityKey вешается на контрол, то надо бы для поля устанавливать AllowAdd в False, иначе, если у пользователя будет право добавлять поля на форму, он сможет его изменять
__________________
Axapta v.3.0 sp5 kr2 |
|
12.12.2006, 11:50 | #6 |
Administrator
|
В принципе, есть другой метод (без создания SecurityKey), хотя он, возможно, и менее надежен.
Есть такие таблички - SysSecurityFormTable и SysSecurityFormControlTable. Обычно они используются для настройки доступа к контролам, привязанным к display- или edit- методам, но на самом деле их можно использовать для настройки доступа к любому произвольному контролу формы. Не буду вдаваться в подробности, кому интересно - смотрите класс SysSecurityFormSetup, просто опишу, как настроить доступ так, как написано в первом сообщении. Во-первых, создайте запись в форме SysSecurityFormTable (можно использовать обычный Table browser). В поле FormName напишите InventTable, DomainId - домен, в котором Вы настраиваете доступ, UserGroupId - соответственно, группа, для которой этот доступ настраивается. Далее, создайте запись в таблице SysSecurityFormControlTable. В поле SysSecurityFormId выберите ссылку на запись, созданную в SysSecurityFormTable (это RecId, так что имеет смысл воспользоваться lookup'ом). В FormControlName укажите PriceDiscPurch. Это имя контрола из формы InventTable (та самая группа полей Закупка на закладке Цена/Скидка). FormControlType - Group. Далее, важный момент, нужно указать FormControlId. Если у вас есть доступ к разработке, то самое простое - зайти в форму InventTable и после super() в методе init() написать что-нибудь вроде: X++: info(int2str(control::PriceDiscPurch)); В свое время я, помнится, писал интерфейс для этих действий. Сделано это было в рамках одного из проектов, так что, думаю, теперь этот интерфейс можно считать собственностью mazzy
__________________
Not registered yet? Register here! Have comments, questions, suggestions or anything else regarding our web site? Don't hesitate, send them to me |
|
|
За это сообщение автора поблагодарили: Logger (1). |
12.12.2006, 12:02 | #7 |
Administrator
|
Как вариант, забрать у пользователя права на ключ Development/Morph X/Add fields, но тогда нельзя будет добавлять поля ни в одной форме, а не только в InventTable.
__________________
Not registered yet? Register here! Have comments, questions, suggestions or anything else regarding our web site? Don't hesitate, send them to me |
|