Задать вопрос
@AlekseevVal
Мучаю 1С, а она меня.

ЗУП — Документ «ОтпускБезСохраненияОплаты» как предоставить доступ к элементам формы, для определенной группы доступа?

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

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

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

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

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

Базовые понятия:
1) У элемента формы есть свойство видимость, которым можно управлять программно
2) У элемента формы есть доступность по ролям, где можно для указанных ролей разрешить или запретить видимость
3) У элементов формы можно управлять видимостью по функциональным опциям
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы