helpf.pro
Регистрация

Установить текущую строку в дереве значений 8.2 (Управляемая форма)

pepavi
01.06.2011 07:02Прочитано: 30357
Ребята помогите!
На управляемой форме есть дерево значений, заполняемое по запросу &НаСервере.
После добавления новой строки в дерево, после перезаполнения дерева, текущая строка устанавливается как Неопределено.
Хотелось бы чтобы после, она устанавливалась на добавленной строке.
Делаю так:
Элементы.МоеДерево.ТекущаяСтрока - содержит идентификатор
На Сервере, после заполнения дерева, получаю врДерево = РеквизитФормыВЗначение("МоеДерево")
нахожу нужную строку врДерево.Строки.Найти(НужнаяСсылка, "Ссылка")
но у полученной строки не могу получить идентификатор
чтобы установить его как текущую строку на форме в МоеДерево.
Какие есть соображения?
Yandex
Возможно, вас также заинтересует
Реклама на портале
E_Migachev
01.06.2011 09:33Ответ № 1
(0) pepavi,
Код 1C v 8.х
 Строки = Дерево.Строки.НайтиСтроки(Новый Структура("Колонка1",1), Истина);
Если Строки.Количество() > 0 Тогда
ЭлементыФормы.Дерево.ТекущаяСтрока = Строки[0];
КонецЕсли;
pepavi
01.06.2011 11:52Ответ № 2
(1) Е_Migachev
Код 1C v 8.2 УП
  Строки = Дерево.Строки.НайтиСтроки(Новый Структура("Колонка1",1), Истина);
Если Строки.Количество() > 0 Тогда
ЭлементыФормы.Дерево.ТекущаяСтрока = Строки[0];
КонецЕсли;


это хорошо в обычной форме, но к управляемой не подходит,
т.к. на сервере не установить текущую строку, а на клиенте не перебрать дерево чтобы найти нужную строку
Изменено 08.06.11 06:13:26
Marfeus
01.06.2011 14:45Ответ № 3
Не сильно понял что надо, может оно ?
Объект.Дерево[Объект.Дерево.Индекс(Объект.Дерево.НайтиПоИдентификатору(Элементы.Дерево.ТекущаяСтрока))]
pepavi
08.06.2011 06:04Ответ № 4
(3) Marfeus
Код 1C v 8.2 УП
 Объект.Дерево[Объект.Дерево.Индекс(Объект.Дерево.НайтиПоИдентификатору(Элементы.Дерево.ТекущаяСтрока))]   


Элементы.Дерево.ТекущаяСтрока - у меня нет текущей строки в таком виде, у меня есть некое значение в одной из колонок дерева, по которой я ищу нужную строку, которую нужно установить текущей
Изменено 08.06.11 06:12:41
Marfeus
08.06.2011 17:07Ответ № 5
Элементы.Дерево.ТекущаяСтрока = номерСтроки; так заполняй. Только учти если добавил две строки тогда последняя Элементы.Дерево.ТекущаяСтрока = 2; Если очистил таблицу и создал запись Элементы.Дерево.ТекущаяСтрока = 3; так что если ты очишаеш и заполняеш запросом запоминай последний элемент и от него пляши.Это если ты что программно там мутиш, а когда добавляеш новую строку она интерактивно выдает Элементы.Дерево.ТекущаяСтрока какое то число
pepavi
09.06.2011 06:12Ответ № 6
(5) Marfeus,
Элементы.Дерево.ТекущаяСтрока - содержит идентификатор строки, а не номер строки, как было в 8.1
его и нужно получить в найденной строке. Усложняется все это тем, что на Сервере можно перебрать дерево значений (на Клиенте не перебрать строки дерева) и найти нужную строку, но на сервере не возможно получить этот самый идентификатор строки, только на клиенте, так как и установить его.
Изменено 09.06.11 06:14:17
Marfeus
09.06.2011 09:21Ответ № 7
Получи идентификатор строки и установи прям на сервере, что то вроде этого Элементы.Дерево.ТекущаяСтрока = Объект.Дерево[0].ПолучитьИдентификатор();
pepavi
10.06.2011 09:33Ответ № 8
(7) Marfeus,
так и делаю, в самом начале я это написал, но выдает ошибку ПолучитьИдентификатор() не найден такой метод у найденной строки. В этом то и проблема
Marfeus
10.06.2011 10:20Ответ № 9
само собой ведь врДерево = РеквизитФормыВЗначение("МоеДерево") у тебя наверно тип ДокументТабличнаяЧасть , а ПолучитьИдентификатор() метод типа ДанныеФормыКоллеции преобразовуй обратно и вызывай этот метод
Подсказка: Щелкнув по значку (справа от названия вопроса), вы получите список ответов на похожие вопросы!
Вы не можете отправить комментарий анонимно, пожалуйста войдите или зарегистрируйтесь.