Имя: Пароль:
1C
1С v8
8.2 ПриВыводеСтроки Тормоза на ячейке ссылочного типа
0 deadkome
 
16.11.16
16:05
УПП 8.2 толстый клиент.
Внешняя обработка, обычная форма, ТабличноеПоле(Дерево значений).
Событие ПриВыводеСтроки:

ОформлениеСтроки.Ячейки["ОснПереработчик"].ТолькоПросмотр =  ДанныеСтроки.РодительНЕИспользован;

В поле "ОснПереработчик" СправочникСсылка.Контрагент.
"РодительНЕИспользован" - булево.

Запускаем замер производительности, скроллимся по полю, смотрим:
90% - вышеописанная строка.
Строчкой ниже выполняется аналогичное действие, но для ячейки с примитивным типом - 7%.

Мучает паранойя, нет ли тут неявного чтения базы, по причине ссылочного значения ячейки.

Есть ли способ ускорить выполнение этой строки?
1 h-sp
 
16.11.16
16:12
(0) зачем ТолькоПросмотр в оформлении строки делать? Просто ПриАктивизацииСтроки устанавливайте
2 d546
 
16.11.16
16:12
получение представления ссылки наверное тягается.
3 deadkome
 
16.11.16
17:48
(1) Спасибо за идею.
Увы метод ТабличноеПоле.ОформлениеСтроки() возвращает оформление только для чтения(не применяет изменения свойств к текущему оформлению).
СП намекнул: "Для того, чтобы изменения данного объекта отображались в табличном поле необходимо пользоваться обработчиками событий ПриВыводеСтроки или ПриПолученииДанных. ".
Решил потестить через "ПриПолученииДанных".
Вышло как-то так:

17%   Для каждого ОформлениеСтроки Из ОформленияСтрок Цикл
         ТекущаяСтрока = ОформлениеСтроки.ДанныеСтроки;    
26%      ОформлениеСтроки.Ячейки["Использование"].ТолькоПросмотр =  ТекущаяСтрока.ПотомковНет ИЛИ ТекущаяСтрока.РодительНЕИспользован ;
42%      ОформлениеСтроки.Ячейки["ОснПереработчик"].ТолькоПросмотр =  ТекущаяСтрока.РодительНЕИспользован;
      КонецЦикла;

Субъективно прироста не почувствовал, объективно метода сравнить пока не придумал.
Смутило изменение соотношения времени с 7/90 на 26/42.

Может есть хитрый способ обращения к ячейке без вероятного "неявного запроса"?
Или может как-то не правильно к свойствам обращаюсь?