Динамический список. Центрирование списка на выделенной строке.
Есть УФ. На ней динамический список, произвольный запрос с основной таблицей документов. Проблема в том, что при активации строки списка, платформа прокручивает список таким образом, что выделенная строка становиться по центру списка. Как это побороть?
Читал инет - решения не видел. Читал книгу "Разработка управляемого интерфейса" - решения не нашел, там вообще момент позиционирования в списке не освещен.
Читал инет - решения не видел. Читал книгу "Разработка управляемого интерфейса" - решения не нашел, там вообще момент позиционирования в списке не освещен.
Найденные решения
Остальные ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
Всем спасибо! Действительно при изменении заголовка надписи перерисовывалась вся форма, о чем мне и было сказано в (4), но прочитал невнимательно, потому прошу прощенья у сообщества за это. Остальные идеи достойны внимания и были полезны. Еще раз всем спасибо.
Убрал изменение заголовков надписей, таблички обновляю программно. В целом все хорошо.
Убрал изменение заголовков надписей, таблички обновляю программно. В целом все хорошо.
Процедура ПриАктивацииСтроки выполняет оповещение открытых форм на рабочем столе. Т.е. если не будет обработки активации строки не будет и перерисовки? Но оповещение нужно, не цены конечно отображать, но связанные данные.
Вот краткий пример как надо обрабатывать активизацию строки
&НаКлиенте
Процедура СписокПриАктивизацииСтроки(Элемент)
ПодключитьОбработчикОжидания("ОбработкаОжидания",0.2,Истина);
КонецПроцедуры
&НаКлиенте
Процедура ОбработкаОжидания()
Если Элементы.Список.ТекущаяСтрока<>Неопределено Тогда
ОбновитьПараметрыПодчиненныхНаСервере(Элементы.Список.ТекущаяСтрока);
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура СписокПриАктивизацииСтроки(Элемент)
ПодключитьОбработчикОжидания("ОбработкаОжидания",0.2,Истина);
КонецПроцедуры
&НаКлиенте
Процедура ОбработкаОжидания()
Если Элементы.Список.ТекущаяСтрока<>Неопределено Тогда
ОбновитьПараметрыПодчиненныхНаСервере(Элементы.Список.ТекущаяСтрока);
КонецЕсли;
КонецПроцедуры
Спасибо за идею, но разница лишь в том, что центрирование происходит не сразу, а с задержкой, как и обновление зависимых таблиц/форм. Это лишь может дать пользователю возможность беспрепятственно кликнуть два раза на нужной строке. Но проблемы не решает.
При обычной прокрутке конечно ничего не скачет, проблема только при активации строки.
Есть еще идеи?
При обычной прокрутке конечно ничего не скачет, проблема только при активации строки.
Есть еще идеи?
Сейчас опишу.
Форма. На ней три ДС. Основной ДС - список документов, две другие - вспомогательные, показывают связанную информацию с активной строкой ОсновногоДС. Т.е. я извиняюсь, дезинформировал, не формы оповещаются, а меняется отбор у вспомогательных списков. Соот-но идет перерисовка вспомогательных и очевидно всей формы.
Форма. На ней три ДС. Основной ДС - список документов, две другие - вспомогательные, показывают связанную информацию с активной строкой ОсновногоДС. Т.е. я извиняюсь, дезинформировал, не формы оповещаются, а меняется отбор у вспомогательных списков. Соот-но идет перерисовка вспомогательных и очевидно всей формы.
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот