Управление доступом к элементам формы объектов


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

Были созданы три регистра сведений.

Первый "ДоступКОбъектамКонфигурации" 
(в нем хранится Имя объекта и пользователь,а так же признаки доступ разрешен(это создание и открытие) и толькопросмотр(толькоПросмотр=истина если признак установлен))
измерения
-Объект(тип строка)
-Пользователь(справочник ссылка "Пользователи")
Ресурсы 
-ДоступРазрешен(булево)
-ТолькоПросмотр(булево)

Второй "ДоступКОбъектамКонфигурации_Реквизиты"
в данном регистре хранится имя объекта и имя реквизита объекта,а также признак доступа(Если ДоступРазрешен_Реквизит=истина,то будет доступен элемент формы с данным реквизитом)
измерения
-Объект(тип строка)
-ИмяРеквизита(тип строка)
-Пользователь(справочник ссылка "Пользователи")
Ресурсы 
-ДоступРазрешен_Реквизит(булево)

 Третий"ДоступКОбъектамКонфигурации_ТабличныеЧасти"
в данном регистре хранится имя объекта ,имя табличной части объекта ,имя реквизита  таб. части объекта,а также признак доступа(Если ДоступРазрешен_РеквизитТабличнойЧасти=истина,то будет доступен элемент формы табличной части с данным реквизитом)
измерения
-Объект(тип строка)
-Объект_ТабличнаяЧасть(тип строка)
-ИмяРеквизита_ТабличнойЧасти(тип строка)R03;R03;R03;R03;R03;
-Пользователь(справочник ссылка "Пользователи")
Ресурсы 
-ДоступРазрешен_РеквизитТабличнойЧасти(булево)

Код весь из модуля обработки я вынес в общий модуль и вызываю процедуру из формы ПередОткрытием().

Название процедуры для вызова из формы. 

Работа_С_Доступом_К_ЭлементамФормыОбъекта.ПроверитьИУстановитьДоступКЭлементамФормы(Работа_С_Доступом_К_ЭлементамФормыОбъекта.ОпределитьВидОбъектаПоТипуДляОбъекта(ЭтотОбъект),ЭтотОбъект.Ссылка,ЭтаФорма,ПараметрыСеанса.ТекущийПользователь,Отказ);    

Это, конечно, более актуально для новых объектов, которые создаются в базе (новых справочников и документов), потому что некоторые "тяжелые" документы надо тестировать, чтобы какие-то надписи, статусы  правильно отображались, но если поставить цель, можно и это сделать)))).

Некоторые "не тяжелые" объекты уже перевел, и работает хорошо.

Сейчас перейдем к пункту, как это работает.

Выбираем пользователя. Для него отображается список объектов и его параметров доступа. По умолчанию все указаны будут в значении, равном ложь.

Если ставим галку для объекта (пример справочник Номенклатура") "доступ разрешен" тогда можно открывать и создавать новые элементы.

Если ставим галку для объекта "только просмотр" тогда ЭлементыФормы.толькоПросмотр= истина.

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

Подойдет для любой конфигурации.

Тестировалось на УТ 10.3. Версия платформы — 8.3 (8.3.5.1625)

Надеюсь, кому-то понадобится моя разработка) буду благодарен за критику и советы. Всем мир!)

6 Comments

  1. ice-net
    Также можно устанавливать доступ к реквизитам формы для каждого конкретного реквизита, как реквизита документа, так и реквизита табличной части.

    только надо позаботиться, что бы доступность/видимость/толькопросмотр запрещаемого элемента формы не изменялся при взаимодействии с другими элементами формы.

    Reply
  2. serg-lom89

    (2)это надо тестировать для объектов которые уже в базе.для новых все норм должно быть.

    Reply
  3. StMel

    Добрый день. Скачал вашу обработку, но там отсутствует сам код, который, вы говорите, вынесли в общий модуль Работа_С_Доступом_К_ЭлементамФормыОбъекта, можно ли его как то получить?

    Reply
  4. serg-lom89

    (4)

    Работа_С_Доступом_К_ЭлементамФормыОбъекта

    напишите свой адрес электронной почты я с вам свяжусь по почте.

    Reply
  5. StMel
  6. serg-lom89

    (6) отправил на почту

    Reply

Leave a Comment

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