Разграничение прав доступа по корреспондентам

1. Raniel 29.01.14 13:27 Сейчас в теме
Помогите, пожалуйста, решить задачку. Платформа 8.2, Док 1.3

За каждым корреспондентом закреплен свой менеджер (сделал доп. реквизит). Пытаюсь разграничить права доступа, чтобы менеджер видел только своих клиентов и относящиеся к ним внутренние документы. Каждому корреспонденту присвоил свою группу доступа корреспондентов. Для каждого менеджера создал свою группу доступа, где он единственный участник, и в ограничении прав указал группы доступа корреспондентов, с которым он может работать. (заполняется автоматом по реквизиту корреспондента)

Правилен ли такой подход? Уж слишком громоздко получается: клиентов много, пользователей тоже. Можно ли организовать права как-то по другому?

И возможно ли предоставить пользователю право только на чтение внутреннего документа, но позволить добавлять/изменять файлы к нему.
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. 29.01.14 17:40 Сейчас в теме
Самое простое решение в рабочей группе с её автозаполнением, то есть тот, кто создал документ и те, кто принимал участие в бизнес-процессах по этому документу смогут видеть документ, остальным он будет не виден.
Правами так не получится настроить, насколько я знаю, но можно настроить Доступность полей по состоянию, тогда получится решить и такую задачу.
3. Raniel 29.01.14 18:13 Сейчас в теме
Пробовал через рабочую группу - не для всех ситуаций подходит. Бывают сложные ситуации, когда пользователям нужно отдельно давать доступ на чтение/изменение и т.д., проблемы из за передачи клиентов и т.п. Много нюансов.

В общем, покопавшись в коде всей этой системы прав доступа, нашел в модуле менеджера объектов метаданных Функцию:

// Возвращает Истина, указывая тем самым что этот объект заполняет свои права
Функция ЕстьМетодЗаполнитьПраваДоступа() Экспорт
Возврат Истина;
КонецФункции

Если возвращает истина, то в процедуре (см. ниже) можно реализовать свою логику назначения прав

// Заполняет параметр ПраваДоступа правами доступа, вычисляя их на
// основании переданного дескриптора доступа.
// Если указан параметр ПротоколРасчетаПрав, то в него
// заносится список данных, которые были использованы для расчета прав.
Процедура ЗаполнитьПраваДоступа(ДескрипторДоступа, ПраваДоступа, ПротоколРасчетаПрав) Экспорт

КонецПроцедуры


Как выход из сложившейся ситуации решил делать через рабочие группы + собственная логика
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот