После отключения режима совместимости с 8.2 в конфигурации посыпались ошибки
"Метод недоступен для невидимого элемента."
Например для строки

```1c
    Элементы.СписокSMS.Обновить();
```

Проблема в том, что СписокSMS.Видимость = Истина
Невидимой является одна из групп/страниц, в которые он входит. Не говоря уже о том, что форма может быть изменена в режиме пользователя.
Есть ли какой-то способ проверить видимость элемента?
Или только оборачивать в

```1c
    Попытка
    Исключение
```
---
Нужно выяснить видимость с учётом вложенности

```1c
    Р=Элементы.СписокSMS.Родитель();
    Пока Р <> Неопределено Цикл
    Если не Р. Видимость Тогда
    Возврат Ложь
    КонецЕсли;
    Р=Р.Родитель();
    КонецЦикла;
    Возврат Истина;
```
---
Ага, думал о таком.

```1c
    Функция ВидимостьЭлемента(Элемент) Экспорт

    Если Не Элемент.Видимость Тогда
    Возврат Ложь;
    КонецЕсли;

    Р = Элемент.Родитель;
    Пока Р <> Неопределено Цикл
    Если не Р.Видимость Тогда
    Возврат Ложь;
    КонецЕсли;
    Р=Р.Родитель;
    КонецЦикла;
    Возврат Истина;

    КонецФункции
```
---
Нужно выяснить видимость с учётом вложенности

```1c
    Р=Элементы.СписокSMS.Родитель();
    Пока Р <> Неопределено Цикл
    Если не Р. Видимость Тогда
    Возврат Ложь
    КонецЕсли;
    Р=Р.Родитель();
    КонецЦикла;
    Возврат Истина;
```
---
Ага, думал о таком.

```1c
    Функция ВидимостьЭлемента(Элемент) Экспорт

    Если Не Элемент.Видимость Тогда
    Возврат Ложь;
    КонецЕсли;

    Р = Элемент.Родитель;
    Пока Р <> Неопределено Цикл
    Если не Р.Видимость Тогда
    Возврат Ложь;
    КонецЕсли;
    Р=Р.Родитель;
    КонецЦикла;
    Возврат Истина;

    КонецФункции
```
---
Уточненный вариант. К сожалению, не могу отредактировать сообщение выше.

```1c
    Функция ВидимостьЭлемента(Элемент) Экспорт

    Если Не Элемент.Видимость Тогда
    Возврат Ложь;
    КонецЕсли;

    Р = Элемент.Родитель;
    Пока Р <> Неопределено Цикл
    Если ТипЗнч(Р) = Тип("ФормаКлиентскогоПриложения") Тогда
    Возврат Истина;
    КонецЕсли;
    Если не Р.Видимость Тогда
    Возврат Ложь;
    КонецЕсли;
    Р=Р.Родитель;
    КонецЦикла;
    Возврат Истина;

    КонецФункции
```
---
Только не Родитель(), а родитель - это свойство, а не метод
---
Наверное, по памяти писал.
---
К сожалению, такой метод тоже не подходит. Похоже, что когда группы скрыты через "Изменить форму", то Видимость остается Истина.
Механизм изменения формы в режиме пользователя вообще мало согласуется с прочими мезанизмами платформы.
---
Похоже, что когда группы скрыты через "Изменить форму", то Видимость остается Истина. Можно перед проверкой сбросить пользовательские настройки формы
```1c
    ХранилищеСистемныхНастроек.Удалить(ИмяФормы + "/НастройкиФормы", ", ИмяПользователя())
```
но это варварство.
---
Нельзя. У нас такой формат работы, что пользователям делаются специальные настройки в режиме пользователя, и они копируются определенным группам пользователей. Т.е. режим изменения формы используется активно.
---
Тогда попытка / исключение тут минимальное зло, по-моему)
---
я так и решил. Тем более, что, оказалось, что вызов метода Обновить() применительно к динамическому списку не так уж часто встречается в моей конфигурации.