Проверить доступность свойства реквизита формы (УФ)

1. SantiouS 19.04.19 09:57 Сейчас в теме
Пытаюсь проверить наличие свойства реквизитов УФ в цикле с помощью функции, предложенной на этом портале, но на декорации код вылетает с ошибкой. Подскажите пожалуйста почему вылетает ошибка и как можно ее обойти.
Знаю что можно написать "проверку" свойства доступность через попытку, но как то не красиво...
Прикрепленные файлы:
По теме из базы знаний
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. user623969_dusa 19.04.19 10:04 Сейчас в теме
свойство есть для чтения но не для изменения значения
3. SantiouS 19.04.19 10:06 Сейчас в теме
(2) Если оно есть для чтения, тогда ошибка не должна была возникнуть во время выполнения процедуры ЗаполнитьЗначениеСвойств(), а просто в структуру "ЗначениеРеквизита" должно было бы переписаться значение данного свойства, но вместо этого возникает ошибка.
4. SlavaKron 19.04.19 10:23 Сейчас в теме
Очевидно, нужно проверять тип элемента и без всяких зондов регулировать Доступность / ТолькоПросмотр.
Например:
// запираем все элементы
Для Каждого Элемент Из Элементы Цикл
	Если ТипЗнч(Элемент) = Тип("ПолеФормы") ИЛИ ТипЗнч(Элемент) = Тип("ТаблицаФормы") Тогда
		Элемент.ТолькоПросмотр = Истина;
	ИначеЕсли ТипЗнч(Элемент) = Тип("КнопкаФормы") И Элемент.Вид <> ВидКнопкиФормы.КнопкаКоманднойПанели Тогда
		Элемент.Доступность = Ложь;
	КонецЕсли;
КонецЦикла;
Nikitos_NSK; SantiouS; +2 Ответить
5. SantiouS 19.04.19 10:30 Сейчас в теме
(4) Так и сделал уже. Просто в случае появления какого то другого элемента без доступности будет возникать ошибка, так как механизм не универсален.
6. Мысль1 05.10.20 12:36 Сейчас в теме
Функция СодержитСвойство(Переменная, ИмяСвойства)

	Попытка
		Тест=Переменная[ИмяСвойства];
		Возврат Истина;
	Исключение
		
		Возврат Ложь
	КонецПопытки;	
КонецФункции
Показать


.....
Если СодержитСвойство(ЭлементФормы,"Доступность") Тогда
		     ЭлементФормы.Доступность = Ложь;
КонецЕсли;

...
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот