Добрый день.
Управляемые формы.
Есть документ в табличную часть выгружено "дерево".
Тип данных табличной части - Данные формы дерево.
Для ускорения работы выгружен только 1 уровень дерева.
Необходимо при нажатии на "плюс", чтобы подгружались следующие уровни дерева.
Всего 3 уровня.
я выбрал данные, хочу их вставить нижнем уровнем текущей строки по событию - ПередРазворачиванием
Выгрузить по новой все дерево до 2 уровня или 3 уровня - не вариант.
Нужно выгружать именно только значения текущей строки.
Подскажите, как реализовать?
Управляемые формы.
Есть документ в табличную часть выгружено "дерево".
Тип данных табличной части - Данные формы дерево.
Для ускорения работы выгружен только 1 уровень дерева.
Необходимо при нажатии на "плюс", чтобы подгружались следующие уровни дерева.
Всего 3 уровня.
я выбрал данные, хочу их вставить нижнем уровнем текущей строки по событию - ПередРазворачиванием
Выгрузить по новой все дерево до 2 уровня или 3 уровня - не вариант.
Нужно выгружать именно только значения текущей строки.
Подскажите, как реализовать?
По теме из базы знаний
- Восстановление развернутых строк ДереваЗначений после его обновления (управляемая форма)
- Поиск по дереву значений рекурсией, методом НайтиСтроки(), с помощью СКД. Вывод результата поиска в отдельную таблицу. Активация строки в дереве значений при выборе в таблице
- Сортируем ДанныеФормыДерево на клиенте
- Отбор/фильтр в отчетах/СКД/обработках 1C: БП, УТ, ERP, Кронос: WMS по файлу Excel, текстовому файлу или списку текстовых строк (номер документа, артикул, ИНН, QR-код, штрих-код, наименование)
- Ценовая власть (УТ 11.5) - 3
Найденные решения
(6)Можно проверять количество подчиненных строк, как в (3) предложено.
ТекДанные = Элементы.МоеДерево.ТекущиеДанные;
СписокЭлементов = ТекДанные.ПолучитьЭлементы();
Если СписокЭлементов.Количество()= 0 Тогда
//значит подчиненных строк нет, надо добавить
НоваяСтрока = СписокЭлементов.Добавить();
КонецЕсли;
Остальные ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
что бы в строке дерева был плюсик, в нее надо поместить фиктивную подстроку, тогда сработает событие Перед разворачиванием,
а там примерно так
&НаКлиенте
Процедура ДеревоМетаданныхПередРазворачиванием(Элемент, Строка, Отказ)
ЗаполнитьСтрокуДереваНаСервере(Строка);
КонецПроцедуры
&НаСервере
Процедура ЗаполнитьСтрокуДереваНаСервере(Строка)
лкСтрока = ДеревоМетаданных.НайтиПоИдентификатору(Строка);
лкСтроки = лкСтрока.ПолучитьЭлементы();
Если лкСтроки.Количество() = 1 Тогда
лкСтроки.Очистить();
ЗаполнитьДеревоМетаданных(лкСтрока,0 ,Метаданные[лкСтрока.ПараметрИмя],0 ,лкСтрока.Картинка ,1 );
КонецЕсли;
КонецПроцедуры
Показать
а там примерно так
&НаКлиенте
Процедура ДеревоМетаданныхПередРазворачиванием(Элемент, Строка, Отказ)
ЗаполнитьСтрокуДереваНаСервере(Строка);
КонецПроцедуры
&НаСервере
Процедура ЗаполнитьСтрокуДереваНаСервере(Строка)
лкСтрока = ДеревоМетаданных.НайтиПоИдентификатору(Строка);
лкСтроки = лкСтрока.ПолучитьЭлементы();
Если лкСтроки.Количество() = 1 Тогда
лкСтроки.Очистить();
ЗаполнитьДеревоМетаданных(лкСтрока,0 ,Метаданные[лкСтрока.ПараметрИмя],0 ,лкСтрока.Картинка ,1 );
КонецЕсли;
КонецПроцедуры
(6)Можно проверять количество подчиненных строк, как в (3) предложено.
ТекДанные = Элементы.МоеДерево.ТекущиеДанные;
СписокЭлементов = ТекДанные.ПолучитьЭлементы();
Если СписокЭлементов.Количество()= 0 Тогда
//значит подчиненных строк нет, надо добавить
НоваяСтрока = СписокЭлементов.Добавить();
КонецЕсли;
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот