#0
by Rounder
УФ Есть ДинамическийСписок. Режим отображения - дерево. Прописываю НачальноеОтображениеДерева.РаскрыватьВсеУровни. В итоге получаю сколько элементов в списке, столько и обращений к серверу. Так и должно быть? Если да - то почему?
#1
by vmv
Сервер обходит все уровни классической рекурсией - так ему дали тупую команду: "Раскрыть все уровни" чему ты удивляешься, дложно быть по другому?
#2
by Rounder
Ну когда я на клиенте понятно. Но если я на сервере в ПриСоздании - разве это не должно быть в одном вызове?
#3
by kible
Добавь команду на форму. В процедуре на клиенте вызови процедуру на сервере и напиши НачальноеОтображениеДерева.РаскрыватьВсеУровни. Посмотри сколько вызовов сервера будет.
#4
by Rounder
Я так полагаю НачальноеОтображениеДерева.РаскрыватьВсеУровни оно потому и начальное отображение - что раскрывает уровни до того как отобразит список?
#6
by Rounder
Тогда что я делаю не так? &НаКлиенте Вызов сервера конечно же один. Но список остается неизменным. С открытым верхним уровнем как и был.
#10
by Rounder
Т.е. получается где бы я не устанавливал это свойство - я при открытии списка получаю N вызовов сервера, где N стремится к количеству элементов списка.
#11
by ChAlex
- ну так мало ли кто чего может считать. - не знаю сколько обращений к серверу делается, но вообще-то чего им баловаться? Кроме как ПриСозданииНаСервере оно пофиг (ну при открытии можно как-то управлять) - потом - вилы, оно не приводит ни к чему. А если ты считаешь количество обращений к серверу в этом событии - то у меня вопрос: а как ты это делаешь? Ведь событие само обрабатывается на сервере. В каком это месте вы просчитали эти самые вызовы?
#12
by Rounder
Все очень просто. Есть окошко, показывающее в режиме отладки Общее и текущее кол-во вызовов к серверу. Даже при Элементы.Список.НачальноеОтображениеДерева = НачальноеОтображениеДерева.РаскрыватьВсеУровни; в ПриСозданииНаСервере я получаю порядка 70 лишних вызовов к серверов.
#15
by ChAlex
- у меня ощущение, что вы путаете причину и следствие. Если вы смотрите на окошко Показатели производительности - то оно не зависит от того отладка это или нет и прочее, и тем более оно не считает количество вызовов в каких-то процедурах. Развернутое дерево - жрет много ресурсов. А разворачивается оно по мере подчитывания данных. Если попробуете раскрыть дерево справочника в котором порядка 5000 строк - то это времяя затянется ну так секунд на 10-15, а то и больше. Ждите - может когда и дойдут руки у разработчиков до оптимизации дерева значений, но надежд пока мало
#17
by Rounder
Кстати - вполне можно попробовать оптимизировать и самому. Если руки дойдут. На эту мысль натолкнуло то, что очень шустро открывается любая выбранная строка нижнего уровня. Т.е. я при открытии формы выбора подразделений организации устанавливал ТекущуюСтроку на основное подразделение организации пользователя. И дерево открывалось (с одной полностью открытой веткой) без всяческих видимых задержек в сравнении с полностью закрытым деревом.
#18
by ChAlex
- да это так. Недоделка 1С - да это тоже так. Можно ли было бы этого избежать - возможно да , а возможно идеология реализации модели платформы не позволяет - тут не скажу. Чисто с точки зрения логики - наверное можно было бы лучше это делать. Ведь просто список подчитывается динамически, а дерево - нет (читает и ищет все ветки). - ничего не получится. Открывается быстро в режиме не разворачивать или разворачивать только верхний уровень. Остальное вилы - пробовал уже (хотелось как в обычном интерфейсе отображать справочники с деревом) - в результате сделал кнопки на выбор и вида и предложение пользователю выбрать самому - или красоту или быстроку. :)
#19
by ChAlex
Иерархический справочник с 5000 строк открывается уже 3 минуты - еще не открылся. :) Так что лучше для больших списков это не делать.
#20
by Rounder
Может у кого есть объемный иерархический справочник, который вы не выводите в виде полностью раскрытого дерева в виду тормознутости раскрытия всех уровней? Попытался оптимизировать раскрытие уровней - но на малых справочниках выигрыш не велик. А больших нет и создавать не хочется. (предполагается выигрыш раза в два в зависимости от специфики справочника) Готов кто-нибудь потестить?
#22
by vmv
да предложение теста в корне глупо с точки зрения только объема таблицы базы данных, можно подумать, что коээфицент производительности зависит только от жира таблицы - как дети прям
#23
by ChAlex
- в данном случае - напрямую. Кроме всего из маленьких складывается большое. Так что недооценивайте мелочи
Тэги: 1С 8
Ответить:
Комментарии доступны только авторизированным пользователям
Похожие вопросы 1С
В этой группе 1С
- Группировка рисунков в табличном документе
- Прога для редактирования 1Cv8.1CD?
- 8.2. Не получается добавить программно командную панель в ТД
- v7: Ссылка описание ссылки на фотку в прайс листе
- Удалить проводки в ТЧ по условию...
- После обн. Windows Server 2008 R2 - ошибка доступа к SQL Server
- Неверные вспомогательные данные таблицы.
- Pfsense на Hyper-V
- Как отследить партию товаров если Требование-накладная создается не на основании
- Получение адресов из очерченной области - из какой ни будь системы
- Посоветуйте конфигурацию бэк-офиса для работы в связке с Frontol ?
- УПП 1.3.28.1 Корректировка реализации
- УТ 11 в пятницу не могу разобраться с документом поступление. подсобите
- Как зарегистрировать bmp_1c.ocx в Win7
- посоветуйте магазин в москве для покупки компьютера по комплектующим?
- Как узнать ссылку по GUID в бд
- Подключение внешней компоненты из макета внешней обработки в толстом клиенте
- v7: Проблема с Inserter 2.2 Encoder Edition
- Обмен УТ11-УПП. Есть где?
- СКД использование своего макета как применить условное оформление