Используя обычные формы не всегда возможно через Роли ограничить редактирование форм документа, поэтому, можно обойтись ниже вариантом
Процедура ДоступностьЭлементовФормы() Если Не РольДоступна("вх_МенеджерРядовый") Тогда Возврат; КонецЕсли; Для Каждого Элемент Из ЭлементыФормы Цикл Если Элемент.Имя = "ОсновныеДействияФормы" Или Элемент.Имя = "ДействияФормы" Тогда Продолжить; КонецЕсли; Если Элемент.Имя = "ОплатаПлатежнымиКартами" Тогда Для Каждого Колонка Из Элемент.Колонки Цикл Если Колонка.Имя = "ВидОплаты" Тогда Продолжить; КонецЕсли; Колонка.ТолькоПросмотр = Истина; КонецЦикла; Продолжить; КонецЕсли; Если ТипЗнч(Элемент) = Тип("ПолеВвода") Тогда Элемент.ТолькоПросмотр = Истина; ИначеЕсли ТипЗнч(Элемент) = Тип("КоманднаяПанель") Тогда Элемент.Доступность = Ложь; ИначеЕсли ТипЗнч(Элемент) = Тип("Надпись") Тогда Элемент.Доступность = Ложь; ИначеЕсли ТипЗнч(Элемент) = Тип("ТабличноеПоле") Тогда Элемент.ТолькоПросмотр = Истина; ИначеЕсли ТипЗнч(Элемент) = Тип("Флажок") Тогда Элемент.Доступность = Ложь; КонецЕсли; КонецЦикла; КонецПроцедуры
Процедура ДоступностьЭлементовФормы() Если Не РольДоступна("вх_МенеджерРядовый") Тогда Возврат; КонецЕсли; Для Каждого Элемент Из ЭлементыФормы Цикл Если Элемент.Имя = "ОсновныеДействияФормы" Или Элемент.Имя = "ДействияФормы" Тогда Продолжить; КонецЕсли; Если Элемент.Имя = "ОплатаПлатежнымиКартами" Тогда Для Каждого Колонка Из Элемент.Колонки Цикл Если Колонка.Имя = "ВидОплаты" Тогда Продолжить; КонецЕсли; Колонка.ТолькоПросмотр = Истина; КонецЦикла; Продолжить; КонецЕсли; Если ТипЗнч(Элемент) = Тип("ПолеВвода") Тогда Элемент.ТолькоПросмотр = Истина; ИначеЕсли ТипЗнч(Элемент) = Тип("КоманднаяПанель") Тогда Элемент.Доступность = Ложь; ИначеЕсли ТипЗнч(Элемент) = Тип("Надпись") Тогда Элемент.Доступность = Ложь; ИначеЕсли ТипЗнч(Элемент) = Тип("ТабличноеПоле") Тогда Элемент.ТолькоПросмотр = Истина; ИначеЕсли ТипЗнч(Элемент) = Тип("Флажок") Тогда Элемент.Доступность = Ложь; КонецЕсли; КонецЦикла; КонецПроцедуры
Комментариев нет:
Отправить комментарий