Имя: Пароль:
1C
1С v8
Быстродействие ОтбораСтрок на клиенте
,
0 Andrewww123
 
21.11.14
04:07
Есть документ, имеющий 5 ТЧ, связанных между собой. При активизации строки первой таблицы устанавливается ОтборСтрок в четырех остальных. Если открыть записанный и заполненный документ и активизировать строку первой таблицы, то остальные отборы устанавливаются секунд 15.
Если добавить в процедуру "ПриОткрытии" обход каждой ТЧ с помощью цикла(внутри цикла пусто, ничего не делается), отборы станут устанавливаться менее чем за секунду. Теперь вопрос: как же так? Глюки платформы(8.3.4.496)?
1 Andrewww123
 
21.11.14
04:13
Забыл: форма управляемая
2 Andrewww123
 
21.11.14
08:42
Поднимем. Интересный же момент
3 Fragster
 
гуру
21.11.14
09:50
строк сколько?
4 pessok
 
21.11.14
10:18
подпишусь почитать
5 Ненавижу 1С
 
гуру
21.11.14
10:24
кеширование?
6 Maxus43
 
21.11.14
10:26
(5) всё равно платформа не должна себя так вести, при открытии формы данные объекта же считываются
7 Лефмихалыч
 
21.11.14
10:26
(0) в талмуде же русским по белому сказано, что объект читается со всеми табличными частями. Ты уверен, что тебе не показалось?
8 olegves
 
21.11.14
10:27
(0) все ТЧ в динсписках?
9 Kalambur
 
21.11.14
10:28
(0) отбор НаСервере наверно делаешь?
10 olegves
 
21.11.14
10:29
(0) как ты умудрился все 5 Тч одновременно на экран поместить?
11 Drac0
 
21.11.14
10:29
(6) Не все. ОтборСтрок, НайтиСтроки на больших таблицах делают серверный вызов. Особо замечательно это выглядит в цикле -_-
12 Ненавижу 1С
 
гуру
21.11.14
10:29
(6) не должна конечно, но ведет
13 Drac0
 
21.11.14
10:30
(7) Ему не показалось :)
14 Лефмихалыч
 
21.11.14
10:34
(13) кругом сплошное обманилово...
15 Andrewww123
 
21.11.14
10:37
(3) Строк в самой тяжелой таблице 24 500.
(9) Отбор на клиенте делается
16 Andrewww123
 
21.11.14
10:38
(8) Все таблицы - обычные таблицы
17 herfis
 
21.11.14
10:39
(7) В талмуде речь именно об объекте. А не об УФ объекта.
18 herfis
 
21.11.14
10:42
(15) Неплохо. Интересно бы на последнем релизе тестануть.
19 Andrewww123
 
21.11.14
10:43
(5) Похоже как раз на кеширование. Я понимаю так, что пока ко всем строкам не обратишься явно, на клиенте их не существует. Может быть только видимая часть строк на клиенте загружается, а остальные по мере необходимости. Но это было бы странно. Как-то так..
20 ssh2QQ6
 
21.11.14
10:43
(15) посмотри обмен с сервером, серверные вызовы. Тянет данные с сервера при отборе видимо
21 ssh2QQ6
 
21.11.14
10:44
(19) не загружуаются все строки, где то читал про это. Да иопять же включи просмотр серверных вызовов и посмотри что при прокрутке ТЧ будет
22 Drac0
 
21.11.14
10:44
(19) Так и есть. Поэтому надо быть аккуратнее с этими методами.
23 Andrewww123
 
21.11.14
10:44
(18) Согласен, пока нет возможности.
(20) Понятно что тянет. Не понятно в честь чего. На клиенте же тоже должна существовать ТЧ в момент открытия объекта
24 ssh2QQ6
 
21.11.14
10:44
обращения к серверу будут при прокрутке
25 Andrewww123
 
21.11.14
10:46
(21) (22) Если так, то вопросов нет. Погуглить нужно будет на эту тему. Смущает то, что документ открывается секунд 10-15, как бы похоже что объект считывается полностью
26 Drac0
 
21.11.14
10:46
(23) Используй ДС. Они оптимальнее будут в этой ситуации, если запросы не очень сложные, которые эти таблицы собирают.
27 herfis
 
21.11.14
10:47
(19) Почему странно? Как раз логично. Иначе открытия "тяжелых" документов вообще можно было бы не дождаться на тонких каналах связи. Косяк именно в отработке отбора. Очевидно, что не оптимизировали его для ТЧ большого размера. Например, порционно тянут все данные на клиента, а потом отбирают. В итоге получается еще медленнее, чем сразу все при открытии затянуть.
28 Andrewww123
 
21.11.14
10:55
(26) Попробую, спасибо.
(27) Странно учитывая то, что написал в (25). Форма документа тогда должна быстро открываться.
Хотя, наверное, форма на клиенте ждет пока форма на сервере полностью получит все данные от СУБД и только после этого открывается. Это бы всё объясняло
29 hhhh
 
21.11.14
11:02
(28) наверно еще что-то вписал в при открытии или в при создании на сервере. Еще что-то кроме отбора.
30 herfis
 
21.11.14
11:09
(28) Сначала на сервере создается объект. И в него как раз все данные считываются полностью. А потом создается форма, куда данные, судя по всему, засылаются частично.
31 Andrewww123
 
21.11.14
11:09
(29) Только отборы
32 ssh2QQ6
 
21.11.14
11:10
При прокрутке, делается два серверных вызова сразу. Во втором идет обращение к SQL серверу, получаются представления ссылок для следующих 35 строк.
33 ssh2QQ6
 
21.11.14
11:10
Посмотрел
34 Andrewww123
 
21.11.14
11:11
(30) Вот и я говорю, может быть форма на клиенте ждет пока на сервере все данные считаются и только после этого открывается. Но это было бы немного странно, учитывая что на клиенте форме нужно только 15-20 строк чтобы отобразиться
35 Andrewww123
 
21.11.14
11:12
(32) Да, платформа считывает часть строк сверху и часть снизу, если правильно помню. Читал где-то давно
36 herfis
 
21.11.14
11:13
(34) Хотя, скорее всего, ты прав тоже и в серверный экземпляр формы они тоже все засасываются. А вот на клиент уже частично.
Это логично, потому что нужно где-то держать "слепок" всех данных изменяемого объекта.
37 ssh2QQ6
 
21.11.14
11:13
+ (32) строки из тч не считываются, а идет получение представлений из соответствующих справочников,  в каждом запросе  отбором по конкретным ссылкам, 35 штук
38 Andrewww123
 
21.11.14
11:14
В общем, более-менее прояснилось. Всем спасибо, Приморье заканчивает свою работу :)
39 herfis
 
21.11.14
11:16
Может, в новых релизах работу отбора уже оптимизировали. Интересно бы проверить, да недосуг...
40 Ненавижу 1С
 
гуру
21.11.14
11:21
УФ это неведомая уйня
41 olegves
 
21.11.14
11:25
(38) ДС тебе не удастся создать - кроме случая с отключением его преимуществ (отключение основной таблицы и динамич считывания) - ДС не любит дублей строк по ключевым полям
Оптимизация формы документа тебе поможет - одновременно отображать не более 2 ТЧ на форме (закладки) - при этом включать отбор при активации закладки
42 olegves
 
21.11.14
11:26
(40) УФ - нормальная клиент-серверная архитектура, а уйня возникает от неумения ее готовить (или от лени, или от недостатка ума)
Закон Брукера: Даже маленькая практика стоит большой теории.