Есть объект дерево. В какой-то момент при изменении ячейки я пересчитываю всё дерево.
используя конструкцию
В результате дерево сворачивается. После чего я разворачиваю дерево обходя ветки используя
Дерево.Развернуть
Далее я хочу установить курсор на той строчке, где я делал редактирование. Использую для этого оброщение к БСП
Нужная мне строчка Становится Активной. Но курсор находится на первой строке Дерева. Получается, как бы 2 активные строки с ориентированием на первую строчку. Если у меня много строчек и есть прокрутка. То после пересчета, выделенная строчка улетает вниз, а экран переходит на первую строку. Что делаю не так?
Активную строку объявляю как:
используя конструкцию
ДеревоЗначений = РеквизитФормыВЗначение("Дерево", Тип("ДеревоЗначений"));
ПересчитатьДерево(ДеревоЗначений);
ЗначениеВРеквизитФормы(ДеревоЗначений,"Дерево");
В результате дерево сворачивается. После чего я разворачиваю дерево обходя ветки используя
Дерево.Развернуть
Далее я хочу установить курсор на той строчке, где я делал редактирование. Использую для этого оброщение к БСП
ОбщегоНазначенияКлиентСервер.ПолучитьИдентификаторСтрокиДереваПоЗначениюПоля
Нужная мне строчка Становится Активной. Но курсор находится на первой строке Дерева. Получается, как бы 2 активные строки с ориентированием на первую строчку. Если у меня много строчек и есть прокрутка. То после пересчета, выделенная строчка улетает вниз, а экран переходит на первую строку. Что делаю не так?
Активную строку объявляю как:
//Вначале делал только эту строчку
Элементы.Дерево.ТекущаяСтрока = ИдентификаторСтроки;
//Когда не получилось как я хотел, добавил эту. Н овсе равно прыгает наверх.
ЭтаФорма.ТекущийЭлемент = Элементы.Дерево;
По теме из базы знаний
Ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
(1) Есть такая тема что после обновления дерева (при переполучении с сервера). Изменяются идентификаторы, нужно у строки завести свой идентификатор например (GUID), потом по нему найти нужную строку и активизировать.
Или делать все на клиенте или без обновления всего дерева, когда оно большое можно наблюдать замедление работы
Или делать все на клиенте или без обновления всего дерева, когда оно большое можно наблюдать замедление работы
(3) Все так. По этому я и использую
[ОбщегоНазначенияКлиентСервер.ПолучитьИдентификаторСтрокиДереваПоЗначениюПоля]
Он находит новый идентификаторстроки. После чего по нему я и активирую ТекущуюСтроку. И нужная строка подсвечивается как активная. Но курсор остается на первой строке.
По факту у меня получается 2 активные строки, с позиционированием экрана и курсора на первой строке.
[ОбщегоНазначенияКлиентСервер.ПолучитьИдентификаторСтрокиДереваПоЗначениюПоля]
Он находит новый идентификаторстроки. После чего по нему я и активирую ТекущуюСтроку. И нужная строка подсвечивается как активная. Но курсор остается на первой строке.
По факту у меня получается 2 активные строки, с позиционированием экрана и курсора на первой строке.
(8) так я тоже пробовал - не работает. Все тоже самое.
Так же обратил внимание, что в отладчике если делаю так:
То ТекущийЭлемент.ТекущаяСтрока не присваивается новый индекс и он остается старым - что равно Индексу первой строки.
Так же обратил внимание, что в отладчике если делаю так:
Элементы.Дерево.ТекущаяСтрока = ИдентификаторСтроки;
ЭтаФорма.ТекущийЭлемент = Элементы.Дерево;
ЭтаФорма.ТекущийЭлемент.ТекущаяСтрока = ИдентификаторСтроки;
То ТекущийЭлемент.ТекущаяСтрока не присваивается новый индекс и он остается старым - что равно Индексу первой строки.
(4) Проверить под отладкой
У меня в проектах есть подобное. Устанавливаю ТекущуюСтрока и все, важно здесь передается идентификатор
Похоже что при установке идентификатор неверный, (может получаешь старый идентификатор)
Ну и как вариант попробовать ПодключитьОбработчикОжидания 0.1
Если смотреть рисунок сумму можно посчитать на клиенте. Скинь обработку пример или больше кода
У меня в проектах есть подобное. Устанавливаю ТекущуюСтрока и все, важно здесь передается идентификатор
Похоже что при установке идентификатор неверный, (может получаешь старый идентификатор)
Ну и как вариант попробовать ПодключитьОбработчикОжидания 0.1
Если смотреть рисунок сумму можно посчитать на клиенте. Скинь обработку пример или больше кода
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот