Форум 1С
Программистам, бухгалтерам, администраторам, пользователям
Задай вопрос - получи решение проблемы
16 апр 2024, 10:37

Управляемые формы. Установить текущую строку в дереве на форме

Автор Natain14, 13 ноя 2015, 08:11

0 Пользователей и 1 гость просматривают эту тему.

Natain14

Добрый день, помогите, пожалуйста, не могу установить текущую строку в дереве на форме:

ТекущаяАктивнаяСтрока = Элементы.ДеревоРезервов.ТекущиеДанные;
СтрокаРеквезита=ДеревоРезервов.НайтиПоИдентификатору(ТекущаяАктивнаяСтрока.ПолучитьИдентификатор());
.........
.........
.........
Элементы.ДеревоРезервов.ТекущаяСтрока=СтрокаРеквезита.ПолучитьИдентификатор();

Это последний вариант, уже всяко пробовала( :dfbsdfbsdf:

vitasw

По приведенному коду получается, что операции выполняются над одной и той же строкой.

Natain14

Спасибо, поняла в чем была проблема :zebzdr:

Решила так:
ТекущаяАктивнаяСтрока = Элементы.ДеревоРезервов.ТекущиеДанные;
....
....
....
УстановитьТекущуюСтроку(ДеревоРезервов,ТекущаяАктивнаяСтрока.КлючСвязи);



&НаКлиенте
Процедура УстановитьТекущуюСтроку(ДеревоРезервовПередачи, КлючСвязи)
   
   Для каждого ТекущаяСтрока Из ДеревоРезервовПередачи.ПолучитьЭлементы() Цикл
      Если ТекущаяСтрока.КлючСвязи=КлючСвязи Тогда      
          Элементы.ДеревоРезервов.ТекущаяСтрока=ТекущаяСтрока.ПолучитьИдентификатор();
          Возврат;
       иначе
           УстановитьТекущуюСтроку(ТекущаяСтрока, КлючСвязи);      
      КонецЕсли;      
   КонецЦикла;   
   
КонецПроцедуры

Сметанин

Добрый день!
Аналогичная проблема. Есть таблица на форме с источником данных дерево значений. При нажатии кнопки пользователем происходит изменение данных и дерево перезаполняется. Проблема установить текущей ту же строку что была до изменения.
Пробую так:
ИдСтроки = Элементы.Таблица.ТекущаяСтрока;
ЗаполнитьДерево();
ЭтаФорма.Прочитать();
......................
Элементы.Таблица.ТекущаяСтрока = ИдСтроки;
Не работает.
Элементы.Таблица.ТекущиеДанные.КлючСвязи сразу выдает ошибку.


Добавлено: 10 дек 2020, 07:02


Получилось так:
Отбор = Новый Структура("Поле1, Поле2, Поле3");
ЗаполнитьЗначенияСвойств(Отбор, Элементы.Таблица.ТекущиеДанные);
ЗаполнитьДерево();
ЭтаФорма.Прочитать();
....................
ИдСтроки = ПоискПодереву(Дерево.ПолучитьЭлементы(), Отбор);
Элементы.Таблица.ТекущаяСтрока = ИдСтроки;

&НаКлиенте
Функция ПоискПодереву(Группы, Отбор)

Для каждого Гр из Группы цикл
ВлЭлементы = Гр.ПолучитьЭлементы();
Для каждого Эл из ВлЭлементы цикл
Если Эл.Поле1 = Отбор.Поле1 и Эл.Поле2 = Отбор.Поле2 И Эл.Поле3 = Отбор.Поле3 Тогда
Возврат Эл.ПолучитьИдентификатор();
КонецЕсли;
КонецЦикла;
КонецЦикла;
Возврат 0;

КонецФункции

Теги:

Похожие темы (5)

Рейтинг@Mail.ru

Поиск