Запрет автоматического сворачивания дерева значений. 1С 8.3

1. user708620_andrej_semenov88 30.08.17 20:02 Сейчас в теме
Доброго времени суток.

1С 8.3. Работаю с деревом значений на управляемых формах.

Заполняю дерево данными в иерархическом виде. По каждой строке можно вводить суммы, которые суммируются в общий итог. После, для записи данных из прикладного объекта в данные формы, использую процедуру ЗначениеВРеквизитФормы().

Так вот, после выполнения ЗначениеВРеквизитФормы(), дерево сворачивается. Как сделать так, чтобы дерево не сворачивалось, ну и позиционирование оставалась на прежнем месте.

Спасибо.
По теме из базы знаний
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. alxarz 32 30.08.17 22:45 Сейчас в теме
(1)
Как сделать так, чтобы дерево не сворачивалось, ну и позиционирование оставалась на прежнем месте.


вызвать что-то вроде Элементы.ДеревоНоменклатуры.Развернуть(0, Истина); после ЗначениеВРеквизитФормы().
3. vipetrov2 31.08.17 04:58 Сейчас в теме
Не понятно зачем в принципе использовать ЗначениеВРеквизитФормы(). Когда в форме должен быть реквизит с типом ДеревоЗначений, вот им и надо пользоваться. Реквизит1.ПолучитьЭлементы() - и так далее.
5. user708620_andrej_semenov88 01.09.17 16:12 Сейчас в теме
(3) Возможно я чего-то не до понимаю. Но ЗначениеВРеквизитФормы() использую для того, чтобы подсчитанные суммы отобразились на форме. Если есть другой способ, подскажите пожалуйста.
4. user708620_andrej_semenov88 01.09.17 16:09 Сейчас в теме
(2)
вызвать что-то вроде Элементы.ДеревоНоменклатуры.Развернуть(0, Истина); после ЗначениеВРеквизитФормы()


Да, так и сделал в итоге. Но теперь проблема с позиционированием текущей строки. То есть, после ввода некой суммы, курсор перескакивает на самый вверх. Частичном решением помог этот код:

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


Нужная строка выделяется, но вместе с ней выделенным становится и самый верхний узел дерева.

Все эти операции я провожу в событии дерева "ПриОкончанииРедактирования()". Если вынести в отдельную. кнопку, с позиционированием проблем нет. Одним словом, как побороть эту проблему ?
6. supryadkina 17.07.18 11:07 Сейчас в теме
У меня эта же проблема: То есть, после ввода некой суммы, курсор перескакивает на самый вверх. Как вы ее решили?
7. Cvetok1992 20.06.19 06:47 Сейчас в теме
Нужно написать на клиенте, после вызова серверной процедуры:

Строка = Элементы.ДеревоЗначений.ТекущаяСтрока;
Элементы.ДеревоЗначений.Развернуть(Строка, Истина);
8. RozalievAndrey 16.05.21 13:08 Сейчас в теме
&НаСервере
Процедура ОбновитьДанныеНаСервере()
	Дерево = ДанныеФормыВЗначение(ДП, Тип("ДеревоЗначений"));
	ПровестиВычисления(Дерево, ........ );
	СинхронизироватьДеревоФормы(Дерево, ДП.ПолучитьЭлементы());
КонецПроцедуры

&НаСервере
Процедура СинхронизироватьДеревоФормы(ДеревоИсточник, ЭлементыДереваФормы);
	// если могли добавиться новые строки
	Пока ДеревоИсточник.Строки.Количество() > ЭлементыДереваФормы.Количество() цикл
		ЭлементыДереваФормы.Добавить();
	КонецЦикла;
	// собственно перенос значений из расчётного дерева в форму
	для Ном = 0 по ДеревоИсточник.Строки.Количество()-1 цикл
		ЗаполнитьЗначенияСвойств(ЭлементыДереваФормы[Ном], ДеревоИсточник.Строки[Ном]);
		если ДеревоИсточник.Строки[Ном].Строки.Количество() > 0 тогда
			СинхронизироватьДеревоФормы(ДеревоИсточник.Строки[Ном], ЭлементыДереваФормы[Ном].ПолучитьЭлементы());
		КонецЕсли;
	КонецЦикла;
КонецПроцедуры
Показать
vladimir-89; KOTzilla; user1032673; khalimanov; d.zhukov; +5 Ответить
9. vsnazarov 26 09.11.22 19:07 Сейчас в теме
Скрыть и показать произвольную колонку Дерева значений после вызова ЗначениеВРеквизитФормы в моем случае помогло
	Элементы.ДЗТоварыКоличество.Видимость = Ложь;
	Элементы.ДЗТоварыКоличество.Видимость = Истина;

Ну и свойство Начальное отображение дерева должно быть установлено в Раскрывать все уровни или Раскрывать верхний уровень
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот