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