0
deadkome
16.11.16
✎
16:05
|
УПП 8.2 толстый клиент.
Внешняя обработка, обычная форма, ТабличноеПоле(Дерево значений).
Событие ПриВыводеСтроки:
ОформлениеСтроки.Ячейки["ОснПереработчик"].ТолькоПросмотр = ДанныеСтроки.РодительНЕИспользован;
В поле "ОснПереработчик" СправочникСсылка.Контрагент.
"РодительНЕИспользован" - булево.
Запускаем замер производительности, скроллимся по полю, смотрим:
90% - вышеописанная строка.
Строчкой ниже выполняется аналогичное действие, но для ячейки с примитивным типом - 7%.
Мучает паранойя, нет ли тут неявного чтения базы, по причине ссылочного значения ячейки.
Есть ли способ ускорить выполнение этой строки?
|
|
3
deadkome
16.11.16
✎
17:48
|
(1) Спасибо за идею.
Увы метод ТабличноеПоле.ОформлениеСтроки() возвращает оформление только для чтения(не применяет изменения свойств к текущему оформлению).
СП намекнул: "Для того, чтобы изменения данного объекта отображались в табличном поле необходимо пользоваться обработчиками событий ПриВыводеСтроки или ПриПолученииДанных. ".
Решил потестить через "ПриПолученииДанных".
Вышло как-то так:
17% Для каждого ОформлениеСтроки Из ОформленияСтрок Цикл
ТекущаяСтрока = ОформлениеСтроки.ДанныеСтроки;
26% ОформлениеСтроки.Ячейки["Использование"].ТолькоПросмотр = ТекущаяСтрока.ПотомковНет ИЛИ ТекущаяСтрока.РодительНЕИспользован ;
42% ОформлениеСтроки.Ячейки["ОснПереработчик"].ТолькоПросмотр = ТекущаяСтрока.РодительНЕИспользован;
КонецЦикла;
Субъективно прироста не почувствовал, объективно метода сравнить пока не придумал.
Смутило изменение соотношения времени с 7/90 на 26/42.
Может есть хитрый способ обращения к ячейке без вероятного "неявного запроса"?
Или может как-то не правильно к свойствам обращаюсь?
|
|