Вопрос

Скрытие полей "Средство связи1", "Средство связи2"

Собственно стоит следующая задача:
Нужно чтобы в списке всех контрагентов не отображались средства связи (телефоны, эл. почта, факс и т.д.), а так же контактное лицо. Так же нужно сделать так, чтобы пользователь не смог открывать карточку контрагента если он не является ответственным лицом последней или пользователем с правами администратора. т.е. иными словами пользователь сможет посмотреть детали контрагента только в том случае, если он является его ответственным лицом или администратором.
Далее это дело должно касаться и отчетов. Полная информация по контрагентам должна быть в отчете только по компаниям принадлежащим пользователю составляющим отчет. Хотя можно вообще скрыть эту информация в отчетах по всем контрагентам (тут уж как проще сделать).
Ну и вопрос на засыпку - как можно сменить ответственное лицо?
Какими средствами мне можно решить поставленную задачу?
Спасибо.

Нравится

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

Для скрытия полей откройте карточку контрагента (Accounts\General\Main Grid\wnd_AccountEdit) и для соответственных полей укажите для свойства IsVisible значение False.
Для того, чтобы ограничить просмотр карточек контрагентов, Вам на помощь придут права доступа к группам таблиц (Инструменты-Администрирование), где Вы сможете ограничить права для обычных пользователей на группу таблиц "Контрагенты". Автор, создавший карточку, сможет ее видеть и редактировать. Также к правам доступа Вы можете получить доступ из детали "Доступ", где указываются права доступа на конкретную запись.
Для решения вопроса с отчетами Вам нужно внести изменения в запрос на выборку отчета, где и реализовать проверку контрагента по пользователю.
Сменить ответственного можно в карточке редактирования. В том случае, если поле "Ответственный" не редактируемое, логика системы не предусматривает изменения ответственного.

Для скрытия полей откройте карточку контрагента (Accounts\General\Main Grid\wnd_AccountEdit) и для соответственных полей укажите для свойства IsVisible значение False.

спасибо, но это уже пройдено, а требуется вот что:
[URL=http://www.radikal.ru][IMG]http://s40.radikal.ru/i090/1103/ae/bc55d633c…]
т.е. чтобы в этом окне пользователь мог видеть ТОЛЬКО название контрагента и ТОЛЬКО ответственное лицо, а значит чтобы он не имел доступа к настройке полей.
ДалееЮ, если я убираю галку чтение поля контрагенты, то пользователю вообще не виден ни один контрагент. Может это все же лучше сделать через "Доступ", но где этот инструмент мне не известно. Подскажите этот вопрос, пожалуйста.
По воводу отчетов - опишите поподробней, пожалуйста, процедуру.
Огромное спасибо.

Вам нужно перейти в Инструменты - Администрирование - Права доступа к полям и там выставить необходимые поля для определенных пользователей или же групп пользователей. При таком способе раздачи прав на контрагентов в отчетах пользователи будут видеть только ту информацию, на которую у него есть права. Если к колонке запрещен доступ, то в отчет данные из этой колонки не попадут.

Виталий, а по поводу запрета изменения колонок - как запретить пользователю их настройку?

т.е. чтобы всегда были поля только контрагент и ответственный

Если у пользователя не будет прав на определенные поля таблицы, то он и не увидит данных в других колонках, кроме тех, на которые есть права. Скрытие настроек колонок правами не регулируется. Если даже пользователь и настроит какое-либо отображение, то настройки будут храниться в его профиле и на других пользователей не распространяться.

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

В запросе на выборку sq_Accounts есть фильтр MyAccounts. Вы можете его или включить в самом запросе, или же делать это скриптом
EnableDatasetFilters(Dataset, true, 'MyAccounts');
При включенном фильтре будут отображены контрагенты только данного контакта.
Можете также сделать в реестре контрагентов еще одно представление, которое привязать к данному фильтру. Оно будет отображать только контрагентов данного пользователя.
То же касается и отчетов - нужно включать фильтр и там. Или же создать его аналогичным образом для запроса на выборку, который фигурирует, как запрос на выборку данных отчета.

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