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

Дерево значений на управляемой форме.

Автор alex0402, 11 окт 2018, 14:44

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

alex0402

Привет всем.

На форме внешней обработки есть Таблица Путь - к данным реквизит с типом ДеревоЗначений.

Как после обновления данных позиционировать курсор на той же строке, при условии, что после обновления данных эта строка присутствует...

Спасибо за внимание.
Спасибо за Сказать спасибо

MuI_I_Ika

Я думаю надо ее запоминать, а потом позиционироваться на ней.

Возможно стоит запоминать ключевые поля для этой строки, чтобы потом ее искать и позиционироваться на ней.

LexaK

alex0402, ну вы же не первый день на форуме! самый главный вопрос: Форма какая? управляемая или обычная? это же две большие разницы как в них работать с коллекциями! :befhbt:
Добавлено: 11 окт 2018, 16:34


alex0402, виноват, пока читал пост, упустил из виду название темы, там как раз про управляемые формы! :xfbnsdfb:
если помогло нажмите: Спасибо!

alex0402

Цитата: MuI_I_Ika от 11 окт 2018, 15:31
Я думаю надо ее запоминать, а потом позиционироваться на ней.

Возможно стоит запоминать ключевые поля для этой строки, чтобы потом ее искать и позиционироваться на ней.
На управляемой форме ДеревоЗначений отображается через

ДанныеФормыДерево - реквизит формы.

Цитировать
ДанныеФормыДерево (FormDataTree)
Методы:

НайтиПоИдентификатору (FindByID)
ПолучитьЭлементы (GetItems)

Описание:

Предназначен для моделирования дерева в данных управляемой формы.

Доступность:

Тонкий клиент, веб-клиент, сервер, толстый клиент, мобильное приложение(клиент), мобильное приложение(сервер).
Может использоваться в реквизитах управляемой формы.
Методов мало и кодом искать не получается.

и ТаблицаФормы, которая и лежит на самой форме.
имеет реквизит ТекущаяСтрока, которая меняется после каждого обновления данных.
первый раз данные загрузились - ТекущаяСтрка с 1 по 10 (условно),
второй раз - с 11 по и т.д.

Позиционировать получается, если в качестве источника данных выступает ТабличнаяЧасть обработки, но тогда не понятно, как в ТЧ загрузить Дерево.

Спасибо.
Спасибо за Сказать спасибо

LexaK

да-а, так и не удалось, прикрутить
отдельно есть хороший поиск (причем рекурсивный) по строкам дерева значения, но как потом по этой (найденной строке) спозиционироваться на элементе формы ДЗ, так и не нашел. Пошел проторенным путем, поиском среди элементов дерева формы.
вот пример, вроед как работает позиционирование
2 кнопки заполнить ДЗ и Спозиционироваться
по перовй кнопке происходит запоминание выделенной строки ДЗ, и перезаполнение данных ДЗ
по 2-й кнопке позиционирование
одно радует что установка теукщей строки сразу разворачивает/раскрывает нужную ветку дерева
да и поиск происходи на клиенте (хоть и рекурсивный перебор, но без загрузки сервера) хотя если в дереве будет пара лимонов строк ...
была идея как-то использовать получение элемента по итенфикатору при поиске (в принциме тотже обход по циклу, только линейный)
если помогло нажмите: Спасибо!

Владимир Волков

После программного обновления реквизита формы типа "ДанныеФормыДерево" соответствующий ему элемент на форме сворачивается и позиционируется на неопределенной строке. Соответственно, для того чтобы в процессе этого вызвать программное позиционирование на нужной строке, необходимо в событии "ПередСворачиванием" элемента формы прописать следующий код:

Если Элемент.ТекущаяСтрока = Неопределено Тогда
    УстановитьСтроку(); // произвольное название процедуры позиционирования на нужной строке
КонецЕсли;

Теги:

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

Рейтинг@Mail.ru

Поиск