Имя: Пароль:
1C
1С v8
Фильтр журнала документовпо ролям
,
0 Антиквар
 
12.03.14
12:23
Всем привет!
Такая задача на 1С 8.1.:
Имеем несколько ролей, среди которых три роли "дружественные", а именно в некоторых документах эти роли имеют равные ограниченные права.
Если пользователь имеет одну из этих трех ролей, то ему нужно в журнале документов показывать не все документы, а только документы, созданные пользователями с такой же или аналогичной "дружественной" ролью.

Грубо говоря, допустим есть менеджеры с разными ролями, но все они менеджеры, и все имеют одинаковые права на документ отгрузки. И все они должны видеть отгрузочные документы только менеджеров. Документы админов или ещё кого-то видеть не должны. Так понятнее наверное :)
Как лучше реализовать?

На ум приходит только такой способ:
при открытии журнала документов получать список всех пользователей ИБ, затем в цикле по каждому пользовтелю проверять принадлежащую ему коллекцию ролей. Если в коллекции есть одна из ролей менеджера, то включать такого пользователя в список значений.
И при открытии журнала делать отбор по реквизиту "Ответственный", чтобы он входил в мой список значений.
1 mikecool
 
12.03.14
12:25
рлс не предлагать?
2 Антиквар
 
12.03.14
12:45
(1) предлагать :)
только ни разу не использовал ранее, и не пойму как там можно условие на список ролей сделать. Условие на просмотр по текущему пользователю представляю, а вот чтоб по списку ролей...
3 Wobland
 
12.03.14
12:48
пораскидать юзеров по группам доступа? с УПП можно сдёрнуть механизм управления доступом
4 Антиквар
 
12.03.14
13:15
(3) с УПП не работал, но Ваш вариант - это наверное что-то глобальное. Нам нужно так сделать всего в одном журнале документов, думаю не стоит ради этого механизм управления доступом внедрять. Но возьму на заметку, мало ли
5 Wobland
 
12.03.14
14:13
(4) ты же понимаешь, что рядом с журналом спокойно открывается форма списка со своим отбором ?
6 Антиквар
 
12.03.14
14:25
(5) Ну да, я про форму списка и имел ввиду. И в первом посте написал свой вариант решения .открывать форму списка со своим отбором. Просто мне показалось, что отбор там через одно место какой-то
7 Wobland
 
12.03.14
14:32
ты определись как-то - хочешь ли ты запрещать читать что-то или желаешь добиться удобного поведения какой-то формы
8 Антиквар
 
12.03.14
14:50
(7) мне нужно всего лишь ограничить видимость документов в форме списка, в зависимости от ролей пользователей, создавших документы
9 Wobland
 
12.03.14
15:47
то есть, хочется удобства работы с формой. удаляюсь ;)
10 Антиквар
 
12.03.14
18:28
Да, нужен запрет видимости на уровне формы списка. Но проблема: метод ПользователиИнформационнойБазы.ПолучитьПользователей() доступен только для пользователей с административными правами. У обычного пользователя метод вызывает ошибку :(
Как чувствовал, что не тем путем иду.
Как же тогда из-под обычного пользователя получить список пользователей с определенными ролями?
Или в самом деле попробовать через RLS? Есть там такая возможность, наложить ограничение просмотра на документы, созданные пользователями с определенными ролями?
11 shuhard
 
12.03.14
18:30
(10) зря
нужно тупо выгрузить журнал во внешнее хранилище в нем ставить отборы
12 Fedor-1971
 
12.03.14
18:35
(10) Справочник, Регистр сведений - они доступны для пользователей.
Еще предстоит решить задачу: как управлять составом группы пользователей? Сегодня конкретному юзеру позволено работать с документом, завтра нет будешь код конфигурации менять?
13 Антиквар
 
12.03.14
18:44
(11) Первый раз слышу про такой метод, что за внешнее хранилище?
(12) На конкретных юзеров ничего завязываться не будет, только по ролям может быть распределение. У меня много где используется РольДоступна(), а в данном случае нужно получить тот же результат, но не для текущего пользователя, а для всех, узнать кому доступна такая-то роль.
Понятно, что можно внести в систему свой справочник или регистр, но эта задача возникла только для одной формы списка одного документа. Не хочется масштабных изменений ради одного документа.
14 Антиквар
 
12.03.14
18:55
думаю видимо самый оптимальный вариант в моем случае - это сделать справочник групп пользователей. Тут мне предлагали посмотреть его реализацию в УТ. Но мне будет достаточно предопределенной группы, у которой табличная часть из юзеров, которые в эту группу входят. Соответственно фильтр по авторам документа я смогу сделать просто взяв всех пользователей из нужной предопределенной группы.
2 + 2 = 3.9999999999999999999999999999999...