Позиционирование в дереве значений

1. 260 13.10.21 01:38 Сейчас в теме
Есть объект дерево. В какой-то момент при изменении ячейки я пересчитываю всё дерево.
используя конструкцию

	
      ДеревоЗначений = РеквизитФормыВЗначение("Дерево", Тип("ДеревоЗначений"));
	ПересчитатьДерево(ДеревоЗначений);
	ЗначениеВРеквизитФормы(ДеревоЗначений,"Дерево");


В результате дерево сворачивается. После чего я разворачиваю дерево обходя ветки используя

Дерево.Развернуть

Далее я хочу установить курсор на той строчке, где я делал редактирование. Использую для этого оброщение к БСП

ОбщегоНазначенияКлиентСервер.ПолучитьИдентификаторСтрокиДереваПоЗначениюПоля


Нужная мне строчка Становится Активной. Но курсор находится на первой строке Дерева. Получается, как бы 2 активные строки с ориентированием на первую строчку. Если у меня много строчек и есть прокрутка. То после пересчета, выделенная строчка улетает вниз, а экран переходит на первую строку. Что делаю не так?

Активную строку объявляю как:
//Вначале делал только эту строчку
         Элементы.Дерево.ТекущаяСтрока = ИдентификаторСтроки;
//Когда не получилось как я хотел, добавил эту. Н овсе равно прыгает наверх.	
	ЭтаФорма.ТекущийЭлемент = Элементы.Дерево;
Ответы
В избранное Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
2. ISP 13.10.21 07:11 Сейчас в теме
ммм, может попробовать устанавливать через ПодключитьОбработчикОжидания. Сталкивался с такой не поняткой.
Или заполнить выделенную строку, хотя вряд ли
3. Evg-Lylyk 3651 13.10.21 09:36 Сейчас в теме
(1) Есть такая тема что после обновления дерева (при переполучении с сервера). Изменяются идентификаторы, нужно у строки завести свой идентификатор например (GUID), потом по нему найти нужную строку и активизировать.
Или делать все на клиенте или без обновления всего дерева, когда оно большое можно наблюдать замедление работы
4. Letos 260 13.10.21 09:46 Сейчас в теме
(3) Все так. По этому я и использую

[ОбщегоНазначенияКлиентСервер.ПолучитьИдентификаторСтрокиДереваПоЗначениюПоля]

Он находит новый идентификаторстроки. После чего по нему я и активирую ТекущуюСтроку. И нужная строка подсвечивается как активная. Но курсор остается на первой строке.



По факту у меня получается 2 активные строки, с позиционированием экрана и курсора на первой строке.
5. kuzev 44 13.10.21 09:48 Сейчас в теме
(4) В качестве текущего элемента нужно указать имя поля дерева, а не дерево.
Измените эту строчку
ЭтаФорма.ТекущийЭлемент = Элементы.Дерево;
6. Letos 260 13.10.21 09:51 Сейчас в теме
(5) Я понял, что это. Но не понял, какой она должна быть. Не могли бы вы уточнить? Спасибо.
8. kuzev 44 13.10.21 09:56 Сейчас в теме
(6) Давайте по-другому. Поменяйте местами строки. Напишите так:
ЭтаФорма.ТекущийЭлемент = Элементы.Дерево;
Элементы.Дерево.ТекущаяСтрока = ИдентификаторСтроки;
10. Letos 260 13.10.21 10:37 Сейчас в теме
(8) так я тоже пробовал - не работает. Все тоже самое.

Так же обратил внимание, что в отладчике если делаю так:

		Элементы.Дерево.ТекущаяСтрока         = ИдентификаторСтроки;
		ЭтаФорма.ТекущийЭлемент               = Элементы.Дерево;
		ЭтаФорма.ТекущийЭлемент.ТекущаяСтрока = ИдентификаторСтроки;


То ТекущийЭлемент.ТекущаяСтрока не присваивается новый индекс и он остается старым - что равно Индексу первой строки.
11. kuzev 44 13.10.21 10:50 Сейчас в теме
(10) Напишите так:
ЭтаФорма.ТекущийЭлемент = Элементы.Дерево;
Элементы.Дерево.ТекущаяСтрока = 2;

Все так же активна первая строка?
7. Evg-Lylyk 3651 13.10.21 09:55 Сейчас в теме
(4) Проверить под отладкой
У меня в проектах есть подобное. Устанавливаю ТекущуюСтрока и все, важно здесь передается идентификатор
Похоже что при установке идентификатор неверный, (может получаешь старый идентификатор)
Ну и как вариант попробовать ПодключитьОбработчикОжидания 0.1
Если смотреть рисунок сумму можно посчитать на клиенте. Скинь обработку пример или больше кода
9. Evg-Lylyk 3651 13.10.21 09:57 Сейчас в теме
5+ Можно просто ТекущийЭлемент
Я тут подумал может проблема связана с множественным выделением. Установить одиночное выделение ну или наверное задавать не текущую строку, а Выделенные строки
Оставьте свое сообщение
Вопросы с вознаграждением
Вакансии
Программист, аналитик, эксперт 1С
Санкт-Петербург
По совместительству

Программист 1С
Москва
зарплата от 150 000 руб. до 200 000 руб.
Полный день

Ведущий разработчик 1С
Москва
зарплата от 250 000 руб.
Полный день

Руководитель проектов 1С
Москва
зарплата от 200 000 руб.
Полный день

Программист 1С
Москва
зарплата от 150 000 руб.
Полный день