Показать сообщение отдельно
Старый 11.04.2018, 11:15   #1  
Natali77 is offline
Natali77
Участник
 
39 / 10 (1) +
Регистрация: 05.09.2016
Как ограничить доступ к редактированию полей на форме определенной группе пользователей
Добрый день.

Подскажите, пожалуйста, как ограничить доступ к редактированию полей на форме определенной группе пользователей.
Предистория - есть группа пользователей "Бухгалтерия" и группа пользователей "Закупка". Закупщики создают договоры, поставщиков и регистрируют заказ на покупку, счет на оплату.
У бухгалтеров на все это тоже есть полный доступ, в каких-то случаях они сами все это делают, + имеется куча других прав.
Теперь бухгалтеры хотят, чтобы Закупщики создавали Договоры, Поставщиков, но после сохранения не могли редактировать данные.
Доступ на редактирование должен быть только у бухгалтеров и у админов.

Делала так, но теперь у Закупщиков при создании договора данные поля не доступны совсем. Как еще это можно сделать, чтобы выполнялись требования бухгалтерии?

Делала на форме RContractTable метод init()

public void init()
{
Args args = this.args();

super();
if (args.parmEnumType() == enumnum(RcontractPartnerTypeAll))
{
contractType.selection(args.parmEnum());

}
contractType.visible(! this.args().dataset() && contractType.selection() == RcontractPartnerTypeAll::All);
this.updateDesign();


// -->
if(UserInfoHelp::userInUserGroup(curUserId(), 'Закупка' )&&!UserInfoHelp::userInUserGroup(curUserId(), 'Admin' )&&!UserInfoHelp::userInUserGroup(curUserId(), 'Бухгалтерия' ))
{
allowEdit = UserInfoHelp::userInUserGroup(curUserId(), 'Закупка');
RContractTable_SubContract.allowEdit(!allowedit);
RContractTable_ContractDate.allowEdit(!allowedit);
RContractTable_RContractNumber.allowEdit(!allowedit);
RContractTable_BusinessNum.allowEdit(!allowedit);
RContractTable_PrivateNum.allowEdit(!allowedit);
RContractTable_ContractAmount.allowEdit(!allowedit);
RContractTable_RContractStatus.allowEdit(!allowedit);
RContractTable_PostingProfile.allowEdit(!allowedit);
RContractTable_Sign_DeferredCharges.allowEdit(!allowedit);
RContractTable_MainContractAccount.allowEdit(!allowedit);
LongContract.allowEdit(!allowedit);


}

// <--

}


P.S. Перенесла тему из раздела Функционал. Советовали перекрыть метод active. Мне бы примеры. Спасибо.