Доступ к невизуальному компоненту

Начал только осваивать Террасофт. Разбираюсь с правами доступа.
Создал невизуальный компонент - пункт контекстного меню для wnd_MyGridArea. Как настроить, чтобы этот пункт меню видела только группа к примеру Бухгалтерия?

Нравится

6 комментариев

Спасибо за Ваше обращение. Мы зарегистрировали его в Службе технической поддержки и назначили специалиста, который сможет Вас компетентно проконсультировать по данному вопросу.

Разобрался как можно настроить доступ к конкретному пользователю:
К примеру:

var NameUser		= 'User1'; 
	var CurrentUserLoginName	= Connector.CurrentUser.Name;
	if (CurrentUserLoginName == NameUser ) {	
 
         	ПунктМеню.IsVisible = true;
		ПунктМеню.IsEnabled = true;
 
		return;

А вот как настроить доступ к определенной группе?
К примеру:

function ДоступМенюГруппа() {
	//
	if (ТекущийЮзер принадлежит Группе1) {
		return true;
	}
	return false;
}

Как прописать синтаксис?

Alex, можно так:

	var dsUserInGroup = Services.GetNewItemByUSI('ds_UserInGroup');
	var UserName = Connector.CurrentUser.Name;
	var GroupName = 'GroupName';
	ApplyDatasetFilter(dsUserInGroup, 'GroupName', GroupName, true);
	ApplyDatasetFilter(dsUserInGroup, 'UserName',
		UserName, true);
	dsUserInGroup.Open();
	if (!dsUserInGroup.IsEOF) {
		//пользователь в группе
	}
	dsUserInGroup.Close();

Сделал, как Вы рекомендовали:

 function MyUserInGroup() {
 
   	var dsUserInGroup = Services.GetNewItemByUSI('ds_UserInGroup');
    var UserName = Connector.CurrentUser.Name;  
    var GroupName = 'Группа1';
         ApplyDatasetFilter(dsUserInGroup, 'GroupName', GroupName, true); 
         ApplyDatasetFilter(dsUserInGroup, 'UserName', UserName, true);
        dsUserInGroup.Open();
    if (!dsUserInGroup.IsEOF) {
 
                return true;
    }
        dsUserInGroup.Close();
 
	return false;
}

В строчке

         ApplyDatasetFilter(dsUserInGroup, 'GroupName', GroupName, true); 

пишет: "Предполагается наличие объекта". Что тут некорректно?

Alex, остановитьесь дебаггером и посмотрите содержание переменных dsUserInGroup и GroupName.

Может, подойдёт стандартная функция GetIsCurrentUserHas(RecordAdminUnitID) из скрипта scr_Access?

Показать все комментарии