Задача:
Сделать чтобы заказы покупателей, которые были закрыты документом "Закрытие заказа покупателей" или по которым уже была выполнена реализация отображались серым цветом в списке заказов покупателей.
Выполнение:
Задолженность по заказам покупателей запросом получаю из регистра "ЗаказыПокупателей". Если остаток по заказу существует и он положительный, то по заказу еще имеется долг, следовательно он не является закрытым. Этой информации вполне достаточно.
Запросом получаю заказы покупателей и вычисляю закрыт он или нет.
Осталось при выводе заказов раскрашивать их. Но.. как я и думал это стало вызывать достаточно неприятные "тормоза" при отображении списка заказов покупателей и при прокрутке этого списка.
Тогда решил сделать по такому алгоритму.
Вводим новый регистр сведений "ЗаказПокупателяСтатусЗакрыт" с измерением "ЗаказПокупателя" и ресурсом "дата установки статуса".
Значения этого регистра содержат список закрытых Заказов покупателей и дату, когда им этот статус присвоился.
Считаем статусы не за весь период работы базы, а за последние 5 месяцев, из них сразу отсеиваем док-ты которые уже есть в списке регистра "ЗаказПокупателейСтатусЗакрыт".
Считаем регламентным заданием. Задание выполняется по желанию клиента - раз в сутки. Задание не "тяжелое", выполняется менее 10 секунд.
А для признака оформления документов в списке заказов покупателей просто проверяем есть ли этот документ в регистре "ЗаказПокупателяСтатусЗакрыт".
В сам док-т Заказ клиента такой признак добавлять не стоит, т.к. придется перезаписывать документ при выполнении регламентного задания.