Технические вопросы
Разработка

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

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

Нравится

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

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

Разобрался как можно настроить доступ к конкретному пользователю:
К примеру:
[javascript]
var NameUser = 'User1';
var CurrentUserLoginName = Connector.CurrentUser.Name;
if (CurrentUserLoginName == NameUser ) {

ПунктМеню.IsVisible = true;
ПунктМеню.IsEnabled = true;

return;
[/javascript]
А вот как настроить доступ к определенной группе?
К примеру:
[javascript]
function ДоступМенюГруппа() {
//
if (ТекущийЮзер принадлежит Группе1) {
return true;
}
return false;
}
[/javascript]
Как прописать синтаксис?

Alex, можно так:
[javascript]
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();
[/javascript]

Сделал, как Вы рекомендовали:
[javascript]
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;
}
[/javascript]
В строчке
[javascript]
ApplyDatasetFilter(dsUserInGroup, 'GroupName', GroupName, true);
[/javascript]
пишет: "Предполагается наличие объекта". Что тут некорректно?

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

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

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