Ограничение доступа к внешним отчетам и обработкам

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

Как разграничить доступ к внешним отчетам и обработкам, находящимся в справочнике "Внешние обработки" без вмешательства в типовую конфигурацию?

Исходные данные.

  1. Типовая конфигурация, находящаяся на поддержке. Вносить изменения Заказчик категорически отказывается.
  2. Все "нетиповые" отчеты и обработки реализованы внешними и хранятся в справочнике "Внешние обработки".
  3. Высказано пожелание иметь возможность самостоятельно, без привлечения программиста, управлять доступом к вышеуказанным отчетам и обработкам.

Способ реализации.

В отчет (обработку) добавлена табличная часть "Права доступа", в которой перечислены либо список пользователей, либо роли. Галочками пользователь с полными правами может рулить - кому давать доступ, кому нет.

Хранение таблицы прав организовано в регистре сведений "Настройки пользователей", более подробно об этом здесь: "Внешний" справочник или Хранение данных между сеансами работы внешних обработок.

Перед открытием формы происходит заполнение таблицы прав доступа либо из сохраненной ранее настройки, либо значениями по-умолчанию (при первом старте, например).

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

Минусы реализации.

  1. Достаточная трудоемкость при наличии большого количества внешних отчетов/обработок.
  2. Некоторая неуниверсальность, поскольку при создании нового отчета/обработки необходимо помнить об этом механизме разграничения прав.

Возможно, минусов еще больше, но как альтернативный вариант реализации, я думаю, имеет право на существование.

Отчет, предлагаемый для скачивания, не содержит функциональной нагрузки и призван только продемонстрировать пример реализации этого механизма.

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

Наименование Файл Версия Размер
Пример ограничения доступа к внешнему отчету.erf
.erf 16,27Kb
24.12.13
35
.erf 16,27Kb 35 Скачать

См. также

Комментарии
1. Владимир Лагутин (Lukich66) 79 25.12.13 06:29 Сейчас в теме
Без всех этих заморочек,проверку прав доступа можно осуществлять в самом внешнем отчете или обработке. Заказчик явно переусердствует. Вариант решения - любой каприз за ваши деньги. За программистов обидно.
2. dka80 ~ (dka80) 15 25.12.13 06:40 Сейчас в теме
Считаю, что запрещать надо не запускать отчет, а запрещать доступ к определенным данным. То есть, если нет права Расчет зарплаты, например, то хоть зазапускайся, но расчетную ведомость не получишь.
3. борян петров (TODD22) 15 25.12.13 07:26 Сейчас в теме
А чем стандартный RLS не подошёл?
4. kiv82 (AltF1) 25.12.13 09:21 Сейчас в теме
5. борян петров (TODD22) 15 25.12.13 09:22 Сейчас в теме
(2) dka80, не очень такой подход. Тот же ЗУП для того что бы доработанную карточку Т-2(выводятся сведения о компенсации отпуска) в клиент-серверном варианте мог выводить кадровик ему нужно или давать права расчетчика или давать право на чтение соответствующих регистров.
Куда проще ограничить на запуск данной обработки. Чем давать или по сути полные права к подсистеме расчета или лезть в конфигуратор....

Такой подход возможен если у тебя в конфигурации очень гибкая настройка ролей и прав. А если у тебя как в ЗУПе или в БП 2,5 роли...
6. Damian (Damian) 859 25.12.13 10:46 Сейчас в теме
(3) TODD22, тем, что:
1. Изменять конфигурацию нельзя.
2. Пользователь с полными правами должен иметь возможность менять права доступа к отчету/обработке по своему усмотрению
3. Каким Вы видите шаблон ограничений RLS для реализации этой задачи?
7. Степашка Никулин (Styvi) 5 25.12.13 16:41 Сейчас в теме
Как вариант разграничения прав - очень даже нормальный...
Я за то, чтобы конкретную обработку мог пользовать именно тот, кому это положено, а не все, кто имеет доступ к обрабатываемым объектам...
8. DAnry (DAnry) 6 26.12.13 00:19 Сейчас в теме
Идея интересная, а главное механизм реально осуществим и работает! Согласен с (2) dka80 на 100%, но для этого необходимы изменения типовой конфигурации. Если же конфигурация на поддержке, и чуть не единственный способ что-то изменить - использование механизма внешних отчетов и обработок, представленый способ разграничения доступа - отличный. Еще раз спасибо за идею.
9. vx_gas vx_gas (vx_gas) 17 30.12.13 14:05 Сейчас в теме
а группы пользователей не подойдет для данных целей, добавил в начале группу, а потом уже в группы накидывай или удаляй пользователей как хочется
10. Damian (Damian) 859 30.12.13 14:54 Сейчас в теме
(9) vx_gas, в текущем примере реализовано ограничение только по списку пользователей и ролей.
Однако, полет фантазии не ограничен ничем :)
11. mikhailovaew (mikhailovaew) 128 16.04.14 14:56 Сейчас в теме
(6) таким, как он реализован в типовых конфигурациях, в том же ЗУП. Там доступ к каждому внешнему отчету можно разрешить для группы или конкретного пользователя. Поэтому расчетчики, например, не видят кадровых отчетов, и наоборот.
mailrum2004; +1 Ответить
12. Александр Жерздев (Al777) 04.07.14 09:08 Сейчас в теме
Для меня эта информация оказалась полезной, возьму на вооружение.
13. Ольга (son_v) 2 31.10.14 10:25 Сейчас в теме
Столкнулись с такой же проблемой. Доступ к данным есть у пользователей, но конкретными отчетами/выборками по этим данным имеют право пользоваться не все их них. Работаем в УТ11. Есть мысль запретить пользователям самостоятельно настраивать под себя список отчетов. Но для этого скорее всего придется снимать с поддержки часть объектов.