Имя: Пароль:
1C
 
Переопределено получение формы объекта в зависимости от права доступа
0 shadowax
 
naïve
11.10.24
22:47
Есть справочник сотрудники в котором есть ФормаПользователя в которой имеется информация о сотрудниках и есть ФормаАдминистратора в которой есть все те же реквизиты что и в ФормеПользователя но и  возможность задавать пароль и уникальный инд. и вкл или вкл возможность сотрудника из справочника заходить под своим именем в ИБ как пользователь. Задача стоит в том что бы реализовать в модулем менеджера Справочник.Сотрудники переопределено получение формы объекта в зависимости от права доступа «Администрирование».
С формой элемента «ФормаАдминистратора» которая открывается для пользователей с правом доступа «Администрирование» и с формой элемента «ФормаПользователя» Которая открывается для пользователей без права доступа «Администрирование»

Не понимаю как это сделать. Сижу уже 3 час голову ломаю. Пытался через
Если ПользователиИнформационнойБазы.ТекущийПользователь().Роли.Содержит(Администатор) Тогда  ОткрытьФорму("Справочник.Сотрудники.Форма.ФормаАдминистратора");
Но додумать не получается.
1 Волшебник
 
11.10.24
22:48
Вы различаете "что бы" и "чтобы"?
2 shadowax
 
naïve
11.10.24
22:55
(1) я из Африка
3 denk32
 
11.10.24
22:56
(0) попробуйте использовать РольДоступна
4 denk32
 
11.10.24
22:58
Если РольДоступна("Администратор") тогда
   ФормаАдминистратора
Иначе
   ФормаПользователя
Конец
5 lEvGl
 
гуру
11.10.24
23:03
"Переопределено" - новый тип данных. Переопределено <> Неопределено
6 Волшебник
 
11.10.24
23:05
(2) Вы негр?
7 lEvGl
 
гуру
11.10.24
23:08
ну нерусский точно)
8 Волшебник
 
11.10.24
23:09
(7) Наверняка.
9 Волшебник
 
11.10.24
23:10
3 часа он голову ломает...
Падла...
Башка-то у тебя есть?
Сука! Мудила!
10 DiMel_77
 
13.10.24
17:43
(0) А как вы в модуле менеджера открываете форму?

То что вы хотите делается просто:
1) Добавляете предопределенную процедуру модуля менеджера ОбработкаПолученияФормы()
2) Прописываете условие типа Пользователи.РолиДоступны("ПолныеПрава") (Или администрирование)
3) Ставите обработчик переопределения выбранной формы.

Код должен быть типа такого:

   Если ВидФормы = "ФормаОбъекта" Тогда
	
		СтандартнаяОбработка = Ложь;

	Если Пользователи.РолиДоступны("ПолныеПрава") Тогда
	
	   ВыбраннаяФорма = "Справочник.Сотрудники.Форма.ФормаАдминистратора";

		Иначе

		   ВыбраннаяФорма = "Справочник.Сотрудники.Форма.ФормаПользователя";

		КонецЕсли;

   КонецЕсли;



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