0
guitar_player
09.01.13
✎
11:48
|
Коллеги! С новым рабочим годом!
Может кто-нибудь сможет мне прояснить некоторые моменты работы упр. форм.
На управляемой форме расположено 2 дерева, есть реквизит - вспомогательная таблица, в которой хранится связь элементов этих деревьев.
При активизации строки в первом дереве, второе дерево раскрашивается в событии при активизации строки.
У меня есть некоторое недопонимание, почему возникают лишние серверные вызовы и их длительность при попытке обойти таблицу связей. Сам алгоритм раскрашивания, каких либо вызов и задержек не создает.
// покажу только кусок кода, на котором происходят лишнии вызовы
// 1 вариант - весь код выполняется на клиенте - самый быстрый вариант раскрашивания дерева (0.1). После открытия формы (активизация первой строки) в счетчике показывается порядка 40 вызовов сервера, при активизации остальных строк дополнительные вызовы сервера не делаются.
Для Каждого ЭлементКоллекции Из ТаблицаСвязи Цикл
Если ЭлементКоллекции.Источник = Источник Тогда
Соответствие.Вставить(ЭлементКоллекции.Приемник, Истина);
КонецЕсли;
КонецЦикла;
// 2 вариант - весь код выполняется на клиенте - при активизации каждой строки в счетчике накапливается по 18 серверных вызовов. По времени получение связи и раскрашивание занимает 0.25 сек.
Для Каждого ЭлементКоллекции Из ТаблицаСвязи.НайтиСтроки(Новый Структура("Источник", Источник)) Цикл
Соответствие.Вставить(ЭлементКоллекции.Приемник, Истина);
КонецЦикла;
// 3 вариант - выполняю все на сервере, отображается 1 вызов сервера, по времени занимает 0.89 сек (в замере 99% времени тратится на сам вызов)
Поясните пожалуйста, почему такое может происходить?
|
|
3
guitar_player
09.01.13
✎
12:20
|
(1) Спасибо, про это я знал, но только сейчас понял почему в первом варианте делается много вызовов в самом начале, а затем не делается. А во втором варианте вызовы делаются каждый раз.
Но я до сих пор не могу понять почему контекстный вызов сервера (как в 3-ем варианте) отнимает столько времени и как его можно было бы облегчить...
(2) про условное оформление думал, спасибо, но для этого много чего переделать придется...
|
|