Имя: Пароль:
1C
1С v8
Насколько связанных с основной динамич. списков на управляемой форме. Тормозит!
0 SerGa
 
30.11.12
15:00
Есть на УФ основной динамический список при переходе по строкам которого должны обновляться несколько связанных с ним динамических списков.

сделал как в v8: Медленно работает динамический список в УФ. Что делаю не так?
через обработку ожидания + проверка текущей строки

&НаКлиенте
Процедура СписокСтатьиБюджетаПриАктивизацииСтроки(Элемент)
   ПодключитьОбработчикОжидания("ОбработкаОжидания", 0.1, Истина);    
   
КонецПроцедуры


&НаКлиенте
Процедура ОбработкаОжидания()
   ТекСтрока = Элементы.СписокСтатьиБюджета.ТекущаяСтрока;
   
   Если СписокСтатьиБюджетаТекущаяСтрока <> ТекСтрока Тогда
       СписокСтатьиБюджетаТекущаяСтрока = ТекСтрока;
       
       масСтатьи = Новый Массив;
       масСтатьи.Добавить(ТекСтрока);
       масСтатьи.Добавить(ПустаяСтатьяБюджета);
       
       СписокСоответствиеСтатейБюджетаИСтатейДДСУУ.Параметры.УстановитьЗначениеПараметра("СтатьяБюджета", масСтатьи);
   КонецЕсли;
КонецПроцедуры

сервер вызывается 1 раз, работает относительно быстро, хотя и заметно медленнее чем на обычной форме...

НО! если подчиненных списков несколько и в обработке ожидания делать несколько раз
Список1.Параметры.УстановитьЗначениеПараметра("СтатьяБюджета", Параметр1);
Список2.Параметры.УстановитьЗначениеПараметра("СтатьяБюджета", Параметр2);
Список3.Параметры.УстановитьЗначениеПараметра("СтатьяБюджета", Параметр3);
Список4.Параметры.УстановитьЗначениеПараметра("СтатьяБюджета", Параметр4);

то сервер вызывается 4 раза и работает очень медленно..

Как оптимизировать серверные вызовы в данном случае???
1 SerGa
 
03.12.12
11:47
up
2 Cube
 
03.12.12
11:49
А зачем обработчик ожидания? Что ПриАктивизацииСтроки нельзя сделать?
3 SerGa
 
03.12.12
11:55
(2) читай в v8: Медленно работает динамический список в УФ. Что делаю не так?   ПриАктивацииСтроки ещё медленнее работает + лишние вызовы сервера. Официальный ответ с партнерского форума 1С  надо через обработку ожидания делать...
4 Cube
 
03.12.12
11:58
(3) Ясно, а тебе реально нужно столько динамических списков на форме? Может изменить концепцию?
5 SUA
 
03.12.12
12:03
(0)УстановитьЗначенияВсехПараметровСразуНаСервере()
как минимум оставит 1 вызов
6 SUA
 
03.12.12
12:04
и уже там установка параметров
7 SerGa
 
03.12.12
12:23
(6) хм ... вынес  установку параметров в серверную процедуру...  почему-то  подчиненные динамические списки, для которых вызываю установку параметров теперь выводятся пустыми
8 SerGa
 
03.12.12
12:39
апну
9 Cube
 
03.12.12
12:43
Ты бы сделал обработочку, демонстрирующую косяк и выложил. Глядишь и процесс бы пошел активнее...
10 SerGa
 
03.12.12
13:54
(9) да собственно весь код в топике... единственное что поменял в ОбработкаОжидания()&НаКлиенте на &НаСервере
11 Cube
 
03.12.12
13:56
(10) Ну как хочешь...
12 SerGa
 
04.12.12
10:50
таким образом если после того как &НаСервере установил отбор для всех динамических списков
то на форме списки становятся пустыми...

если же после этого сделать &НаКлиенте  
Элементы.Список1.Обновить()
Элементы.Список2.Обновить()
Элементы.Список3.Обновить()

то опять получается несколько вызовов сервера с длительным временем выполнения...
замкнутый круг какойто...
Независимо от того, куда вы едете — это в гору и против ветра!