Вход | Регистрация

1С:Предприятие :: 1С:Предприятие 8 общая

Управляемые формы. Непонятные вызовы сервера.

Управляемые формы. Непонятные вызовы сервера.
Я
   guitar_player
 
09.01.13 - 11:48
Коллеги! С новым рабочим годом!
Может кто-нибудь сможет мне прояснить некоторые моменты работы упр. форм.

На управляемой форме расположено 2 дерева, есть реквизит - вспомогательная таблица, в которой хранится связь элементов этих деревьев.
При активизации строки в первом дереве, второе дерево раскрашивается в событии при активизации строки.

У меня есть некоторое недопонимание, почему возникают лишние серверные вызовы и их длительность при попытке обойти таблицу связей. Сам алгоритм раскрашивания, каких либо вызов и задержек не создает.


// покажу только кусок кода, на котором происходят лишнии вызовы
 

 // 1 вариант - весь код выполняется на клиенте - самый быстрый вариант раскрашивания дерева (0.1). После открытия формы (активизация первой строки) в счетчике показывается порядка 40 вызовов сервера, при активизации остальных строк дополнительные вызовы сервера не делаются.
 

Для Каждого ЭлементКоллекции Из ТаблицаСвязи Цикл
    Если ЭлементКоллекции.Источник = Источник Тогда  
        Соответствие.Вставить(ЭлементКоллекции.Приемник, Истина);    
    КонецЕсли;
КонецЦикла;
    
 // 2 вариант - весь код выполняется на клиенте - при активизации каждой строки в счетчике накапливается по 18 серверных вызовов. По времени  получение связи и раскрашивание занимает 0.25 сек.
 

Для Каждого ЭлементКоллекции Из ТаблицаСвязи.НайтиСтроки(Новый Структура("Источник", Источник)) Цикл
    Соответствие.Вставить(ЭлементКоллекции.Приемник, Истина);    
КонецЦикла;

 // 3 вариант - выполняю все на сервере, отображается 1 вызов сервера, по времени занимает 0.89 сек (в замере 99% времени тратится на сам вызов)
 

Поясните пожалуйста, почему такое может происходить?
 
 
   MadHead
 
1 - 09.01.13 - 11:58
Данные на тонком клиенте хранятся порциями(если говорить упрощенно то видимая область и еще немного) Когда ты оббегаешь циклом таблицу связей то клиенту приходится получать очередную порцию данных.
   MadHead
 
2 - 09.01.13 - 12:07
Попробуй сделать через условное оформление
   guitar_player
 
3 - 09.01.13 - 12:20
(1) Спасибо, про это я знал, но только сейчас понял почему в первом варианте делается много вызовов в самом начале, а затем не делается. А во втором варианте вызовы делаются каждый раз.
Но я до сих пор не могу понять почему контекстный вызов сервера (как в 3-ем варианте) отнимает столько времени и как его можно было бы облегчить...

(2) про условное оформление думал, спасибо, но для этого много чего переделать придется...

Список тем форума
Рекламное место пустует  Рекламное место пустует
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.
Тема не обновлялась длительное время, и была помечена как архивная. Добавление сообщений невозможно.
Но вы можете создать новую ветку и вам обязательно ответят!
Каждый час на Волшебном форуме бывает более 2000 человек.
Рекламное место пустует