❓ Рубрика: Вопросы на собеседовании #вопросынасобесах №112
На позицию: Программист 1С
Вопрос:
Форма с большим числом реквизитов «подтормаживает» при заполнении. Вот фрагмент:
&НаКлиенте Процедура УстановитьВидимостьРеквизитов() Для Каждого РеквизитДанных Из СписокРеквизитов Цикл ИмяЭлемента = РеквизитДанных.Имя; Элементы[ИмяЭлемента].Доступность = РеквизитДанных.Разрешен; КонецЦикла; КонецПроцедуры
В чём причина «тормозов»?
Ответ: Здесь идут неявные обращения на сервер в цикле. Обращение к ряду свойств элементов управляемой формы (Доступность, Заголовок, ТолькоПросмотр, Подсказка и т.п.) на клиенте порождает скрытый вызов сервера. Отсюда и «тормоза», особенно по медленному каналу или через веб-клиент. То есть директива &НаКлиенте не гарантирует, что код не ходит на сервер: платформа сама инициирует обращения при доступе к таким свойствам. Как правильно (по стандарту ИТС): подобные изменения нужно выполнять на сервере за один вызов, а не поштучно на клиенте.
❗️ Есть что добавить, пиши в комментариях. Всем ОЧЕНЬ интересно 😉.
Подпишись на канал | Подпишись в max
В этом посте были ссылки, но мы их удалили по правилам Сетки