Логично привязать каждый элемент к группе(условию).
У элементов формы есть свойство Подсказка. Именно здесь я указываю группу для элемента.
Например: @1 - элемент принадлежит к группе 1
@1@3 - элемент принадлежит к группе 1 и к группе 3
При открытии формы считываю элементы в ТЗ.
Процедура ПередОткрытием(Отказ, СтандартнаяОбработка)
ЭлементыФормыТЗ = Новый ТаблицаЗначений;
ЭлементыФормыТЗ.Колонки.Добавить("Элемент");
ЭлементыФормыТЗ.Колонки.Добавить("Подсказка");
Для Каждого эл из ЭлементыФормы Цикл
Если Найти(эл.Подсказка, "@") > 0 Тогда
НоваяСтрока = ЭлементыФормыТЗ.Добавить();
НоваяСтрока.Элемент = эл;
НоваяСтрока.Подсказка = эл.Подсказка;
эл.Подсказка = "";
КонецЕсли;
КонецЦикла;
КонецПроцедуры
А при выполнении уловия пробегаю по элементам ТЗ и выполняю необходимые действия(видимость, доступность, очистить значения и пр.)
Процедура ПереключитьВидимость(Группа, Значение) Экспорт
Для Каждого эл из ЭлементыФормыТЗ Цикл
Если Найти(эл.Подсказка, "@" + Группа) > 0 Тогда
эл.Элемент.Видимость = НЕ Значение;
КонецЕсли;
КонецЦикла;
КонецПроцедуры
Процедура ПереключитьДоступность(Группа, Значение) Экспорт
Для Каждого эл из ЭлементыФормыТЗ Цикл
Если Найти(эл.Подсказка, "@" + Группа) > 0 Тогда
Если Строка(эл.Элемент) = "Флажок" Или Строка(эл.Элемент) = "Надпись"
Или Строка(эл.Элемент) = "Кнопка" Или Строка(эл.Элемент) = "ПолеКартинки" Тогда
эл.Элемент.Доступность = Значение;
Иначе
эл.Элемент.ТолькоПросмотр = НЕ Значение;
КонецЕсли;
КонецЕсли;
КонецЦикла;
КонецПроцедуры
Процедура ОчиститьПоля(Группа) Экспорт
Для Каждого эл из ЭлементыФормыТЗ Цикл
Если Найти(эл.Подсказка, "@" + Группа) > 0 Тогда
Если Строка(эл.Элемент) = "Флажок" Тогда
эл.Элемент.Значение = Ложь;
ИначеЕсли Строка(эл.Элемент) = "ПолеВвода" Тогда
эл.Элемент.Значение = "";
ИначеЕсли Строка(эл.Элемент) = "ТабличноеПоле" Тогда
эл.Элемент.Значение.Очистить();
КонецЕсли;
КонецЕсли;
КонецЦикла;
КонецПроцедуры