Имя: Пароль:
1C
 
ЗУП - Док_ОтпускБезСохраненияОплаты - Доступ к элементам формы
0 eralval
 
06.03.24
16:11
Здравствуйте!
Подскажите пожалуйста куда копать может кто сталкивался...
Есть документ ОтпускБезСохраненияОплаты, необходимо дать доступ к некоторым элементам формы, для пользователей входящий в определенную группу доступа.
Делаю вот таким образом: Меняю значения свойств элементов формы (по умолчанию ЛОЖЬ) на Истина.
Для документа ПрогулНеявка данный способ работает, а вот для ОтпускБезСохраненияОплаты уже нет.

Да, есть Роль которую можно присвоить профилю группы доступа, однако тогда пользователю будут доступен избыточный функционал (по части ЗП).

Модуль формы:

&НаКлиенте
Процедура ПриОткрытии(Отказ)
	
	// СтандартныеПодсистемы.Свойства
	УправлениеСвойствамиКлиент.ПослеЗагрузкиДополнительныхРеквизитов(ЭтотОбъект);
	// Конец СтандартныеПодсистемы.Свойства
	
	// СтандартныеПодсистемы.ПодключаемыеКоманды
	ПодключаемыеКомандыКлиент.НачатьОбновлениеКоманд(ЭтотОбъект);
	// Конец СтандартныеПодсистемы.ПодключаемыеКоманды

	РезультатВыполнения = ПривилегияУтвержденияДляГруппы();
	
	Если РезультатВыполнения Тогда
		ЭтотОбъект.ТолькоПросмотр = Ложь;
				ЭтотОбъект.Элементы.ПерерасчетВыполнен.Доступность = Истина;
		ЭтотОбъект.Элементы.Рассчитал.Доступность = Истина;
	КонецЕсли;
	

КонецПроцедуры


&НаСервере
Функция ПривилегияУтвержденияДляГруппы()
	
		УстановитьПривилегированныйРежим(Истина);
	//Группа Табель	
	ГуидГруппаТабель = "1416c2cc-47ed-11ee-bf97-005056885445";
	ТекПользователь =  Пользователи.ТекущийПользователь();
	
	СсылкаГруппа = Справочники.ГруппыДоступа.ПолучитьСсылку(Новый УникальныйИдентификатор(ГуидГруппаТабель));
	
	Запрос = Новый Запрос;
	Запрос.Текст = 
	"ВЫБРАТЬ РАЗРЕШЕННЫЕ
	|	ГруппыДоступаПользователи.Пользователь КАК Пользователь,
	|	ГруппыДоступаПользователи.Ссылка КАК Ссылка
	|ИЗ
	|	Справочник.ГруппыДоступа.Пользователи КАК ГруппыДоступаПользователи
	|ГДЕ
	|	ГруппыДоступаПользователи.Пользователь = &Пользователь
	|	И ГруппыДоступаПользователи.Ссылка = &ГруппаДоступа";
	
	Запрос.УстановитьПараметр("Пользователь", ТекПользователь);
	Запрос.УстановитьПараметр("ГруппаДоступа", СсылкаГруппа);
	
	ДанныеЗапроса = Запрос.Выполнить().Выгрузить().ВыгрузитьКолонку(0); 
	Если  ДанныеЗапроса.Количество() <> 0 Тогда
		ЭтотОбъект.Объект.Рассчитал = ЭтотОбъект.Объект.Ответственный;
		УстановитьПривилегированныйРежим(Ложь);
		Возврат Истина;
	Иначе
		УстановитьПривилегированныйРежим(Ложь);
		Возврат Ложь;
	КонецЕсли;	
	
КонецФункции
1 Волшебник
 
06.03.24
16:11
РезультатВыполнения - плохое имя переменной
2 eralval
 
06.03.24
16:37
(1) Согласен.
Независимо от того, куда вы едете — это в гору и против ветра!