Как не отображать колонки в гриде для некоторіх пользователей

На вкладе контрагенты пытаюсь сделать так что бы для все колонки в гриде были видны только администратору или ответственному за контрагента. а Другие могли видеть только название контрагента. Что бы не могли увидеть данные контрагентов пользователи которые их не видут

Думал дописать так

function wnd_AccountsGridAreaOnPrepare(Window) {
        wnd_BaseGridAreaOnPrepare(Window);
       Window.ComponentsByName('colName').IsVisible = false;
        Initialize(Window);
       
}

но тогда поле не доступно по всем контрагентам.

где он собственно формируется, что бы можно было проверить каждую строку?

Или как это правильно делать?

Нравится

2 комментария

Здравствуйте Сергей,
Мне немного непонятна логика как быть в таком случае с данными в карточке контрагентов?
В случае если Вы хотите скрыть все колонки за исключением администраторов можно поступить так

function wnd_AccountsGridAreaOnPrepare(Window) {
	wnd_BaseGridAreaOnPrepare(Window);	
	if (!Connector.CurrentUser.IsAdmin) {
	Window.ComponentsByName('colName').IsVisible = false;
	}		
	Initialize(Window);
 
}

Сергей, реализовать данный функционал можно следующим образом:

отображать в реестре вычисляемые поля, содержимое им присваивать в зависимости от прав пользователя.

Алгоритм доработки:

1. Создать вычисляемые поля в датасете. Создать обработчик события OnCalcFields и присваивать значения колонок, связанных с базой данных, вычисляемым полям.

2. Привязать соответствующие колонки карточки реестра к вычисляемым полям, а не полям справочника, как это реализовано сейчас.

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