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



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

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

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

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

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

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

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

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

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

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

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

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

13 Comments

  1. Lukich66

    Без всех этих заморочек,проверку прав доступа можно осуществлять в самом внешнем отчете или обработке. Заказчик явно переусердствует. Вариант решения — любой каприз за ваши деньги. За программистов обидно.

    Reply
  2. dka80

    Считаю, что запрещать надо не запускать отчет, а запрещать доступ к определенным данным. То есть, если нет права Расчет зарплаты, например, то хоть зазапускайся, но расчетную ведомость не получишь.

    Reply
  3. TODD22

    А чем стандартный RLS не подошёл?

    Reply
  4. AltF1

    Имеет право на жизнь.

    Reply
  5. TODD22

    (2) dka80, не очень такой подход. Тот же ЗУП для того что бы доработанную карточку Т-2(выводятся сведения о компенсации отпуска) в клиент-серверном варианте мог выводить кадровик ему нужно или давать права расчетчика или давать право на чтение соответствующих регистров.

    Куда проще ограничить на запуск данной обработки. Чем давать или по сути полные права к подсистеме расчета или лезть в конфигуратор….

    Такой подход возможен если у тебя в конфигурации очень гибкая настройка ролей и прав. А если у тебя как в ЗУПе или в БП 2,5 роли…

    Reply
  6. Damian

    (3) TODD22, тем, что:

    1. Изменять конфигурацию нельзя.

    2. Пользователь с полными правами должен иметь возможность менять права доступа к отчету/обработке по своему усмотрению

    3. Каким Вы видите шаблон ограничений RLS для реализации этой задачи?

    Reply
  7. Styvi

    Как вариант разграничения прав — очень даже нормальный…

    Я за то, чтобы конкретную обработку мог пользовать именно тот, кому это положено, а не все, кто имеет доступ к обрабатываемым объектам…

    Reply
  8. DAnry

    Идея интересная, а главное механизм реально осуществим и работает! Согласен с (2) dka80 на 100%, но для этого необходимы изменения типовой конфигурации. Если же конфигурация на поддержке, и чуть не единственный способ что-то изменить — использование механизма внешних отчетов и обработок, представленый способ разграничения доступа — отличный. Еще раз спасибо за идею.

    Reply
  9. vx_gas

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

    Reply
  10. Damian

    (9) vx_gas, в текущем примере реализовано ограничение только по списку пользователей и ролей.

    Однако, полет фантазии не ограничен ничем 🙂

    Reply
  11. mikhailovaew

    (6) таким, как он реализован в типовых конфигурациях, в том же ЗУП. Там доступ к каждому внешнему отчету можно разрешить для группы или конкретного пользователя. Поэтому расчетчики, например, не видят кадровых отчетов, и наоборот.

    Reply
  12. Al777

    Для меня эта информация оказалась полезной, возьму на вооружение.

    Reply
  13. son_v

    Столкнулись с такой же проблемой. Доступ к данным есть у пользователей, но конкретными отчетами/выборками по этим данным имеют право пользоваться не все их них. Работаем в УТ11. Есть мысль запретить пользователям самостоятельно настраивать под себя список отчетов. Но для этого скорее всего придется снимать с поддержки часть объектов.

    Reply

Leave a Comment

Ваш адрес email не будет опубликован. Обязательные поля помечены *