Имя: Пароль:
1C
1С v8
ДеревоЗначений + Терминал
0 yw_prog
 
26.01.14
18:17
Платформа 8.2 релиз : 8.2.19.68
Нужно использовать дерево значений, для вывода справочника товаров в виде дерева.

;(function($)){
    Процедура ТоварыДеревоПриВыводеСтроки(Элемент, ОформлениеСтроки, ДанныеСтроки)
    Если ДанныеСтроки <> Неопределено Тогда
        Если ДанныеСтроки.Уровень()=0 Тогда
            ОформлениеСтроки.ЦветФона = WebЦвета.СветлоСерый;
            Шрифт = Новый Шрифт (,,Истина);
            ОформлениеСтроки.Шрифт = Шрифт;
        КонецЕсли;
        ДанныеСтроки.КоличествоПланВЕдиницахОстатков = ?(ДанныеСтроки.Коэффициент = 0, 0, ДанныеСтроки.КоличествоПлан * ДанныеСтроки.Номенклатура.ЕдиницаХраненияОстатков.Коэффициент/ДанныеСтроки.Коэффициент);
        ДанныеСтроки.КоличествоФактВЕдиницахОстатков = ?(ДанныеСтроки.Коэффициент = 0, 0, ДанныеСтроки.Количество * ДанныеСтроки.Номенклатура.ЕдиницаХраненияОстатков.Коэффициент/ДанныеСтроки.Коэффициент);
        ДанныеСтроки.Отклонение = ДанныеСтроки.КоличествоПланВЕдиницахОстатков - ДанныеСтроки.КоличествоФактВЕдиницахОстатков;
    КонецЕсли;
КонецПроцедуры
})(jQuery);

В обычном режиме все работает нормально, а вот в терминале начинаются жидкие тормоза. Я думая, что это из-за обновления строк в дереве значений. Помогите разобраться.
1 sttt
 
26.01.14
18:29
используй ПриПолученииДанных
2 yw_prog
 
26.01.14
18:30
Спасибо.
3 yw_prog
 
27.01.14
22:40
Переделали.

Процедура ТоварыДеревоПриПолученииДанных(Элемент, ОформленияСтрок)
                Для Каждого ОформлениеСтроки Из ОформленияСтрок Цикл
                               Если ОформлениеСтроки.ДанныеСтроки.Уровень() = 0 Тогда
                                               ОформлениеСтроки.ЦветФона = WebЦвета.СветлоСерый;
                                              Шрифт = Новый Шрифт (,,Истина);
                                               ОформлениеСтроки.Шрифт = Шрифт;
                               КонецЕсли;
                               ОформлениеСтроки.ДанныеСтроки.КоличествоПланВЕдиницахОстатков = ?(ОформлениеСтроки.ДанныеСтроки.Коэффициент = 0, 0, ОформлениеСтроки.ДанныеСтроки.КоличествоПлан * ОформлениеСтроки.ДанныеСтроки.Номенклатура.ЕдиницаХраненияОстатков.Коэффициент/ОформлениеСтроки.ДанныеСтроки.Коэффициент);
                               ОформлениеСтроки.ДанныеСтроки.КоличествоФактВЕдиницахОстатков = ?(ОформлениеСтроки.ДанныеСтроки.Коэффициент = 0, 0, ОформлениеСтроки.ДанныеСтроки.Количество * ОформлениеСтроки.ДанныеСтроки.Номенклатура.ЕдиницаХраненияОстатков.Коэффициент/ОформлениеСтроки.ДанныеСтроки.Коэффициент);
                               ОформлениеСтроки.ДанныеСтроки.Отклонение = ОформлениеСтроки.ДанныеСтроки.КоличествоПланВЕдиницахОстатков - ОформлениеСтроки.ДанныеСтроки.КоличествоФактВЕдиницахОстатков;
                КонецЦикла;
КонецПроцедуры

Визуально не трмозит, но загрузка процессора - 20-30 %
4 Yea-Yea
 
28.01.14
01:02
Так ты на код посмотри. Хороший процессор если только на 20-30%
5 MadHead
 
28.01.14
01:05
по моему это беда. Вечный цикл скорее всего у тебя. Надо текст ячеек устанавливать, а не значение. А терминал просто не успевает так часто картинку обновлять
6 zladenuw
 
28.01.14
01:13
(5)  если текст, то меньше будет нагрузки ?
7 MadHead
 
28.01.14
02:03
(6) если на процессор есть нагрузка даже когда список не прокручивается -- это означает что при присваивании значения снова вызывается обработчик.
8 zladenuw
 
28.01.14
11:28
(7) а как этого избежать ?
9 MadHead
 
28.01.14
19:10
(8) Изменять текст ячеек, а не их данные
10 yw_prog
 
28.01.14
22:12
Пробуем.
11 yw_prog
 
29.01.14
00:49
Все работает. Всем спасибо !!!
12 Infsams654
 
29.01.14
08:46
(11) да, и проверять оформленные данные, что если например, уже ОформлениеСтроки.ЦветФона = WebЦвета.СветлоСерый,
то еще раз не переустанавливать его