gifts2017

Настройка доступа к контрагентам для УТ упрощенная

Опубликовал Foxes82 (Foxes82) в раздел Администрирование - Защита, права, пароли

Позволяет настроить права доступа к папкам или элементам справочника "Контрагенты" в одной удобной форме. Само разграничение прав - штатным механизмом, реализованным в типовой УТ.

ВАЖНО! Для того, чтобы штатный механизм ограничений доступа к контрагентам работал, надо поставить галочку в константах "Ограничение прав доступа на уровне записей".

Что именно делает обработка. Алгоритм следующий:

  1. При открытии обработка в правом окне формирует список пользователей, у которых отсутствуют полные права на базу (потому что тем, у кого полные права назначение разрешений не требуется). Список сортируется по имени пользователя и менять порядок и состав строк запрещено, дальше будет понятно почему...

  2. По тем пользователям, у которых проставите галочки, будет создана строка вида: Имя1;Имя2;Имя3 ... и т.д. Если в имени пользователя несколько слов, то берется первое. По этой строке ищется группа доступа к контрагентам, по совпадению наименования. Если такой нет - создается новая.

  3. Минус в том, что в типовой конфигурации длина наименования у этого справочника всего 25 символов, и наша строка может получиться больше. В таком случае программа проверит, если наша строка больше, то создается новая группа, с названием Имя1;Имя2;Им... Вообще по опыту редко случается необходимость назначить права к контрагенту больше чем двум, максимум трем пользователям одновременно, поэтому если увеличить длину наименования справочника до 150 этого за глаза должно хватить.

  4. Для каждого пользователя из отмеченных галочками ищется "группа пользователей", в которую он входит. По приоритету берется группа в которой он один в качестве участников, ну а если такой нет, то по увеличению кол-ва членов группы. Например, если нужно начальнику отдела дать права на контрагентов какого-то менеджера, то достаточно начальника добавить в группу которая привязана к этому менеджеру. Если найденных групп с текущим пользователем вообще не найдено, то она создается.

  5. Дальше пишутся настройки в регистры "НазначениеВидовОбъектовДоступа" и "НастройкиПравДоступаПользователей", с видом доступа "Контрагенты" и найденными/созданными группами "доступа" и "пользователей". Права на запись элементов разрешается.

  6. После всего этого обработка присваивает группу доступа контрагентам из левого списка.

Следует заметить, что если у вас был назначен доступ Менеджеру1 на какую-то папку или контрагента, и вы хотите дать разрешение на этого контрагента/папку Менеджеру2, то в обработке надо поставить галочки на ОБОИХ этих пользователей. Иначе будет создана новая группа доступа, она запишется в контрагента и Менеджер1 уже не увидит этого контрагента. Т.е. в правом окне надо ВСЕГДА проставлять ВСЕХ пользователей которые должны видеть контрагентов, указанных слева.

Код открыт, тестировалась на версиях УТ с 10.3.5.1 по 10.3.14.5.

На всякий случай добавил галочку "Всегда создавать новую группу доступа", это для тех у кого имена пользователей в базе содержат пробелы, например ФИО написано полностью. Т.к. берется первое слово из имени пользователя, то возможны "перехлесты" прав, например 2 человека с фамилией "Иванов" и им надо выдать разные права, если галочку не поставить, то программа найдет группу доступа 1-го и даст второму права на нее.

Вообще имена в базе лучше хранить в виде "ФамилияИО" без пробелов, а в полном наименовании писать что хочется, тогда проблемы с совпадениями будут крайне редко.

Скачать файлы

Наименование Файл Версия Размер
НазначениеПравДоступаУпрощенное.epf 79
.epf 10,99Kb
19.08.14
79
.epf 10,99Kb Скачать

См. также

Подписаться Добавить вознаграждение
Комментарии
1. Андрей Хрипунов (xavi) 16.12.11 13:50
Идея обработки хорошая - там черт ногу сломит с настройкой прав доступа, и справка не сильно помогает.
Но стоило бы подробнее расписать, что именно делает ваша обработка. В таблице Контрагенты указываются записи, к которым будет доступ у отмеченных пользователей из правой таблицы? Какие именно записи в регистрах прав досутпа при этом формируются?

Ни и проверить бы на последнем релизе не помешало.
2. Вячеслав Уразов (YODDHA) 23.01.12 19:22
было бы здоророво если б описано подробно было, весь механизм настройки прав для УТ
3. Foxes82 (Foxes82) 24.01.12 23:32
Да вроде и так уж как мог подробно расписал. Что именно интересует?
Вся настройка прав заключается в регистрах "НазначениеВидовОбъектовДоступа" и "НастройкиПравДоступаПользователей". В первом связь между группой пользователя и видом доступа (к Контрагентам или к Организациям), во втором связь: группа пользователей - группа доступа к контрагентам. Группа доступа к контрагенту указывается для каждого контрагента в форме элемента справочника.
Если есть предложения по усовершенствованию обработки, предлагайте, рассмотрим.
4. Александр (AloneWolf) 06.03.12 10:30
Хорошая обработка, но можно, напритмер добавить кнопку заполнить по менеджеру, чтобы не через подбор набирать контрагентов.
Но я это на CRM тестировал, может просто подбор криво работает из-за отличий.
Ну и не понял почему группы доступа контрагентов берут только первое слово.
При настройке доступа по менеджерам, чтобы каждый видел только своих, а не по группам менеджеров проще сделать название группы доступа к контрагенту точно по имени пользователя.
Себе я это допилил, сейчас пойду клиенту настраивать доступы.
5. Foxes82 (Foxes82) 07.03.12 07:53
Первое слово брал, потому что в типовой конфигурации длина наименования у справочника "Группы доступа к контрагентам" всего 25 символов, и к тому же могут быть случаи, когда контрагенту надо назначить 2-3 пользователей, которые его должны видеть. Для таких целей наименования может не хватить.
В идеале вообще бы справочнику "Группы доступа" прикрутить табличную часть, как это сделано у "групп пользователей" и искать по полному соответствию проставленным галочкам в обработке, но это надо в конфигурацию внедрятся.