новое событие
Информационный поток
Задания вакансии материалы разработки сообщения форума

Почему следует осторожно использовать свойство "Видимость" на управляемых формах

  • Добавить свою публикацию
  • для этого требуется регистрация

Изменение интерфейса

Флаг "Видимость" у элементов формы позволяет достаточно гибко определять состав элементов интерфейса в зависимостио от каких-либо условий. Но использование возможностей изменения видимости элементов может отрицательно сказаться на скорости работы отдельных частей конфигурации. 

Изображение

Об этом и пойдет речь далее. Пример будем реализовывать в рамках управляемого интерфейса.

Изменение видимости

Выше на скриншоте представлена управляемая форма, в которой содержится динамический список с запросом к справочнику "Номенклатура", кнопка командной панели команды формы "Предупредить", выводящая предупреждение пользователю, а также команда "Показать/скрыть команду "Предупредить"", изменяющая видимость кнопки "Предупредить". Вот так выглядит обработчик этой команды:

&НаКлиенте
Процедура СкрытьКомандуВидимость(Команда)
	
	Элементы.Предупредить.Видимость = НЕ Элементы.Предупредить.Видимость;
	
КонецПроцедуры

 Соответственно, при нажатии на кнопку "Скрыть/показать команду "Предупредить"" будет изменяться видимость кнопки "Предупредить".

Изображение

Но самое важное, что происходит при изменении видимости элементов формы, так это контекстное обращение к серверку при каждом изменении видимости элементов. Так, если мы изменим видимость кнопки "Предупредить", то платформа передает весь контекст формы (реквизиты, элементы формы и их свойства и т.д.) на сервер, затем изменяет видимость элементов, выполняет перерисовку формы и возвращает ее на клиента.

Изображение

 В зависимости от того, насколько "тяжелая" форма по объему передаваемых данных на сервер, а также от канала связи, изменение видимости элемента может привести к значительному замедлению работы программы. Попробуйте включить эмитацию задержек при вызове сервера и выполните изменение видимости элемента формы. А потом сравните с выполнением команды без изменения видимости элементов. Разница будет существенной.

Выводы

Таким образом, изменение видимости элементов во время интерактивной работы, является весьма опасной возможностью, способной снизить быстродействие программы в несколько раз из-за излишних обращений к серверу. В следующей статье мы поговорим об оптимальном способе изменения видимости элементов в управляемых формах.

 
0
Читайте также
Разработки
Табло для управляемого приложения, тонкий клиент
Обработка - табло управляемого приложения
Как свернуть все активные окна
Обработка - Как сворачивать активные окна
Еще от автора
≡ к списку статей