Для ускорения работы со списком документов, в котором при выводе строки выполняется запрос по регистрам или ещё что-нибудь трудоемкое, нужно уменьшить количество выполнений запроса.
Для того чтоб запрос не выполнялся каждый раз при переходах по списку можно использовать Соответствие, в котором будет храниться результат запроса. Если запрос по текущему документу уже выполнялся, его результат будет найден в соответствии.
Один недостаток, что данные в соответствии могут устареть за то время что открыт журнал. Но их можно обновить переоткрыв журнал.
Ниже пример кода в модуле формы списка:
Перем СводОстатков;
Процедура СписокПриВыводеСтроки(Элемент, ОформлениеСтроки, ДанныеСтроки)
НайденныйОстаток = СводОстатков.Получить(ДанныеСтроки.Ссылка);
Если НайденныйОстаток = Неопределено Тогда
Запрос = Новый Запрос;
Запрос.Текст="ВЫБРАТЬ
| ЗаказыПоставщикамОстатки.КоличествоОстаток
|ИЗ
| РегистрНакопления.ЗаказыПоставщикам.Остатки КАК ЗаказыПоставщикамОстатки
|ГДЕ
| ЗаказыПоставщикамОстатки.ЗаказПоставщику = &ссылка" ;
Запрос.УстановитьПараметр("Ссылка", ДанныеСтроки.Ссылка);
Рез = Запрос.Выполнить();
Если Рез.Пустой() Тогда
ОформлениеСтроки.ЦветФона = WebЦвета.Белый;
СводОстатков.Вставить(ДанныеСтроки.Ссылка,0);
Иначе
ОформлениеСтроки.ЦветФона = WebЦвета.СветлоКоралловый;
СводОстатков.Вставить(ДанныеСтроки.Ссылка,1);
КонецЕсли;
Иначе
Если НайденныйОстаток = 0 Тогда
ОформлениеСтроки.ЦветФона = WebЦвета.Белый;
Иначе
ОформлениеСтроки.ЦветФона = WebЦвета.СветлоКоралловый;
КонецЕсли;
КонецЕсли;
КонецПроцедуры
СводОстатков = Новый Соответствие();