Документ инвентаризации на 30 тысяч строк тормозит при каждом изменении количества
В форме документа «Инвентаризация» табличная часть на 30 000 строк. При изменении фактического количества вызывается:
&НаКлиенте
Процедура ТоварыКоличествоФактПриИзменении(Элемент)
ПересчитатьОтклонениеНаСервере();
КонецПроцедуры
&НаСервере
Процедура ПересчитатьОтклонениеНаСервере()
Строка = Объект.Товары.НайтиПоИдентификатору(Элементы.Товары.ТекущаяСтрока);
Строка.Отклонение = Строка.КоличествоФакт - УчетноеКоличество(Строка.Номенклатура);
КонецПроцедуры
Каждое изменение ячейки подвисает на 2–3 секунды. Какое исправление даст основной эффект?
- Вызов без контекста и передача только строки
- Индекс на табличную часть по номенклатуре
- Вызов пересчёта из ПередЗаписью формы
- Замена НайтиПоИдентификатору на цикл
