gifts2017

Гибкое администрирование прав пользователей на редактирование реквизитов

Опубликовал mdbm (mdbm) в раздел Программирование - Практика программирования

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

Предполагается, что у вас есть Справочник.Пользователи

Создайте подчиненный Справочник.ЗабаненныйРеквизиты

В нем создайте два реквизита:

1. ИдентификаторФормы (Строка) //сюда вписываем Вид() справочника или документа

2. Реквизит (Строка)

Принцип работы такой:

Если для пользователя Маша, создать элемент справочника  ЗабаненныйРеквизиты

в котором

ИдентификаторФормы = "Контрагенты"

а Реквизит = "ПочтовыйАдрес",

то при открытии Машей карточки любого Контрагента

реквизит ПочтовыйАдрес будет для нее недоступен для редактирования.

 

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

УправлениеДоступностьюРеквизитов(Контекст)

 

 

Теперь в глобальном модуле размещаем нашу функцию:

 

Функция УправлениеДоступностьюРеквизитов(Конт) Экспорт
 СпрПольз=СоздатьОбъект("Справочник.Пользователи");
 СпрПольз.НайтиПоКоду(СокрЛП(ИмяПользователя()));
 ТекВладелец=СпрПольз.ТекущийЭлемент();
 Спр=СоздатьОбъект("Справочник.ЗабаненныеРеквизиты");
 Спр.ИспользоватьВладельца(ТекВладелец);
 
 Контекст_ИдентификаторФормы=СокрЛП(Конт.Вид());
 
 Спр.ВыбратьЭлементы();
 Пока Спр.ПолучитьЭлемент()=1 цикл
  Если СокрЛП(Спр.ИдентификаторФормы)=Контекст_ИдентификаторФормы Тогда
  ЗабаненныйРеквизитФормы=Конт.Форма.ПолучитьАтрибут(СокрЛП(Спр.Реквизит));
  ЗабаненныйРеквизитФормы.Доступность(0);
  КонецЕсли;
 КонецЦикла;
КонецФункции



и всё.

 

 

Теперь чтоб заблокировать любой реквизит любого справочника для любого пользователя...

достаточно открыть подчиненный справочник ЗабаненныеРеквизиты

и в нем прописать в каком справочнике какой реквизит заблокировать для этого пользователя.

Отдельное спасибо поиску и Царькову Валерию

 

 

 

 

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

Наименование Файл Версия Размер
- 90
.1232561160 2,98Kb
25.09.09
90
.1232561160 2,98Kb Бесплатно

См. также

Подписаться Добавить вознаграждение
Комментарии
1. Епрст (Ёпрст) 22.01.09 01:51
(0) Погляди в сторону ...
http://infostart.ru/projects/1034/

Хотя, баловство всё это.
2. Федор (tdr1225) 22.01.09 10:35
(0) Почти во всем формах имеются УправлениеВидимостью() и УправлениеДоступностью(), работа которых перебивает действие команды "ЗабаненныйРеквизитФормы.Доступность(0)"
4. Алексей (Alav) 22.01.09 17:50
А почему

Спр.ВыбратьЭлементы();

а не
Спр.ВыбратьЭлементыПоРеквизиту("ИдентификаторФормы",Контекст_ИдентификаторФормы)
5. mdbm (mdbm) 19.11.09 22:11
Я ж говорю, этот метод - отправная точка, а не пункт назначения.