Пропадает выделение строки списка

1. kr_andrey 30.07.19 09:50 Сейчас в теме
Здравствуйте. Есть у меня управляемая форма списка. Есть несколько пользовательских отборов для этого списка. Также для списка установлено автообновление.
Включаю отбор по одному из реквизитов и при очередном автоматическом обновлении списка замечаю не совсем корректное поведение. После обновления данных списка выделение устанавливается на первую строку списка вместо той, на которой стояло. Позже проверил при принудительном обновлении списка - то же самое. Но если не включать один конкретный отбор, то всё нормально - выделение остаётся на своём месте. Другие отборы такую проблему не вызывают. Отбор самый обычный:
&НаКлиенте
Процедура УстановитьОтборПоСтатусу()		
	Если ОтборСтатусЗаявки <> ПредопределенноеЗначение("Перечисление.СтатусыЗаявкиНаРемонт.ПустаяСсылка") Тогда
		ЭлементОтбора = Список.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
		ЭлементОтбора.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("ЗаявкаНаРемонт.Р_Статус");
		ЭлементОтбора.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно;
		ЭлементОтбора.ПравоеЗначение = ОтборСтатусЗаявки;
		ЭлементОтбора.Использование = Истина;	
	КонецЕсли;
КонецПроцедуры
Показать

С точки зрения юзабилити очень раздражающий момент. Стою перед выбором, решать проблему или отключать автообновление.
Буду благодарен за помощь в решении проблемы.
По теме из базы знаний
Найденные решения
7. kr_andrey 30.07.19 14:08 Сейчас в теме
Проблема была в запросе, формировавшем динамический список. Из-за того, что там использовались временные таблицы, при каждом обновлении заново применялся отбор. Поэтому положение текущей строки сбрасывалось. Переписал запрос с использованием только соединений, и всё заработало как надо.
Остальные ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. danjer74 4 30.07.19 09:55 Сейчас в теме
(1)На вкладке "Использование" у динамического списка установить "ВосстанавливатьТекущуюСтроку" - как вариант
3. kr_andrey 30.07.19 10:02 Сейчас в теме
(2)Пробовал - не помогает.
Уже пробовал программно восстанавливать выделение нужной строки, но не знаю, как определять, где пользователь установил выделение, а где само установилось.
4. SlavaKron 30.07.19 10:09 Сейчас в теме
Это лишь предположение. Попробуйте ПредопределенноеЗначение("Перечисление.СтатусыЗаявкиНаРемонт.ПустаяСсылка") заранее инициализировать на клиенте, а в процедуре УстановитьОтборПоСтатусу использовать переменную, в которой хранится пустая ссылка.
5. kr_andrey 30.07.19 10:14 Сейчас в теме
6. palsergeich 30.07.19 11:29 Сейчас в теме
Такое поведение характерно для неявного контекстного серверного вызова
7. kr_andrey 30.07.19 14:08 Сейчас в теме
Проблема была в запросе, формировавшем динамический список. Из-за того, что там использовались временные таблицы, при каждом обновлении заново применялся отбор. Поэтому положение текущей строки сбрасывалось. Переписал запрос с использованием только соединений, и всё заработало как надо.
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот