// Процедура - устанавливает значения свойств "Доступность" и "Только просмотр"
// Форма - ФормаКлиентскогоПриложения -
// Элемент - ЭлементыФормы, Строка -
// Доступность - Булево - Значение свойства "Доступность". Свойство "Только просмотр" = Не "Доступность"
// ТолькоПросмотрГрупп - Булево - Устанавливает значение свойства "Только просмотр" для групп. По умолчанию ЛОЖЬ
Процедура УстановитьДоступностьЭлементовРекурсивно(Форма, Элемент, Доступность, ТолькоПросмотрГрупп = Ложь) Экспорт
ИзменяемыйЭлемент = Элемент;
Если ТипЗнч(Элемент) = Тип("Строка") Тогда
ИзменяемыйЭлемент = Форма.Элементы.Найти(Элемент);
Если ИзменяемыйЭлемент = Неопределено Тогда
Если ТипЗнч(ИзменяемыйЭлемент) = Тип("ГруппаФормы") Или ТипЗнч(ИзменяемыйЭлемент) = Тип("ФормаКлиентскогоПриложения") Тогда
ИзменяемыйЭлемент.ТолькоПросмотр = ТолькоПросмотрГрупп;
Для Каждого ПодчиненныйЭлемент Из ИзменяемыйЭлемент.ПодчиненныеЭлементы Цикл
УстановитьДоступностьЭлементовРекурсивно(Форма, ПодчиненныйЭлемент, Доступность, ТолькоПросмотрГрупп);
ИначеЕсли ТипЗнч(ИзменяемыйЭлемент) = Тип("КнопкаФормы") Или ТипЗнч(ИзменяемыйЭлемент) = Тип("ТаблицаФормы") Тогда
ИзменяемыйЭлемент.Доступность = Доступность;
ИначеЕсли ТипЗнч(ИзменяемыйЭлемент) = Тип("ПолеФормы") Тогда
ИзменяемыйЭлемент.ТолькоПросмотр = Не Доступность;
ИзменяемыйЭлемент.Доступность = Истина; // Поле ввода всегда доступно, управляем "ТолькоПросмотр"