Как не отображать колонки в гриде для некоторіх пользователей
На вкладе контрагенты пытаюсь сделать так что бы для все колонки в гриде были видны только администратору или ответственному за контрагента. а Другие могли видеть только название контрагента. Что бы не могли увидеть данные контрагентов пользователи которые их не видут
Думал дописать так
wnd_BaseGridAreaOnPrepare(Window);
Window.ComponentsByName('colName').IsVisible = false;
Initialize(Window);
}
но тогда поле не доступно по всем контрагентам.
где он собственно формируется, что бы можно было проверить каждую строку?
Или как это правильно делать?
Нравится
Здравствуйте Сергей,
Мне немного непонятна логика как быть в таком случае с данными в карточке контрагентов?
В случае если Вы хотите скрыть все колонки за исключением администраторов можно поступить так
function wnd_AccountsGridAreaOnPrepare(Window) { wnd_BaseGridAreaOnPrepare(Window); if (!Connector.CurrentUser.IsAdmin) { Window.ComponentsByName('colName').IsVisible = false; } Initialize(Window); }
Сергей, реализовать данный функционал можно следующим образом:
отображать в реестре вычисляемые поля, содержимое им присваивать в зависимости от прав пользователя.
Алгоритм доработки:
1. Создать вычисляемые поля в датасете. Создать обработчик события OnCalcFields и присваивать значения колонок, связанных с базой данных, вычисляемым полям.
2. Привязать соответствующие колонки карточки реестра к вычисляемым полям, а не полям справочника, как это реализовано сейчас.