Запрет автоматического сворачивания дерева значений. 1С 8.3
Доброго времени суток.
1С 8.3. Работаю с деревом значений на управляемых формах.
Заполняю дерево данными в иерархическом виде. По каждой строке можно вводить суммы, которые суммируются в общий итог. После, для записи данных из прикладного объекта в данные формы, использую процедуру ЗначениеВРеквизитФормы().
Так вот, после выполнения ЗначениеВРеквизитФормы(), дерево сворачивается. Как сделать так, чтобы дерево не сворачивалось, ну и позиционирование оставалась на прежнем месте.
Спасибо.
1С 8.3. Работаю с деревом значений на управляемых формах.
Заполняю дерево данными в иерархическом виде. По каждой строке можно вводить суммы, которые суммируются в общий итог. После, для записи данных из прикладного объекта в данные формы, использую процедуру ЗначениеВРеквизитФормы().
Так вот, после выполнения ЗначениеВРеквизитФормы(), дерево сворачивается. Как сделать так, чтобы дерево не сворачивалось, ну и позиционирование оставалась на прежнем месте.
Спасибо.
По теме из базы знаний
Ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
(2)
Да, так и сделал в итоге. Но теперь проблема с позиционированием текущей строки. То есть, после ввода некой суммы, курсор перескакивает на самый вверх. Частичном решением помог этот код:
Нужная строка выделяется, но вместе с ней выделенным становится и самый верхний узел дерева.
Все эти операции я провожу в событии дерева "ПриОкончанииРедактирования()". Если вынести в отдельную. кнопку, с позиционированием проблем нет. Одним словом, как побороть эту проблему ?
вызвать что-то вроде Элементы.ДеревоНоменклатуры.Развернуть(0, Истина); после ЗначениеВРеквизитФормы()
Да, так и сделал в итоге. Но теперь проблема с позиционированием текущей строки. То есть, после ввода некой суммы, курсор перескакивает на самый вверх. Частичном решением помог этот код:
Элементы.ДеревоЗначений.ТекущаяСтрока = НайденнаяСтрока.ПолучитьИдентификатор();
Нужная строка выделяется, но вместе с ней выделенным становится и самый верхний узел дерева.
Все эти операции я провожу в событии дерева "ПриОкончанииРедактирования()". Если вынести в отдельную. кнопку, с позиционированием проблем нет. Одним словом, как побороть эту проблему ?
&НаСервере
Процедура ОбновитьДанныеНаСервере()
Дерево = ДанныеФормыВЗначение(ДП, Тип("ДеревоЗначений"));
ПровестиВычисления(Дерево, ........ );
СинхронизироватьДеревоФормы(Дерево, ДП.ПолучитьЭлементы());
КонецПроцедуры
&НаСервере
Процедура СинхронизироватьДеревоФормы(ДеревоИсточник, ЭлементыДереваФормы);
// если могли добавиться новые строки
Пока ДеревоИсточник.Строки.Количество() > ЭлементыДереваФормы.Количество() цикл
ЭлементыДереваФормы.Добавить();
КонецЦикла;
// собственно перенос значений из расчётного дерева в форму
для Ном = 0 по ДеревоИсточник.Строки.Количество()-1 цикл
ЗаполнитьЗначенияСвойств(ЭлементыДереваФормы[Ном], ДеревоИсточник.Строки[Ном]);
если ДеревоИсточник.Строки[Ном].Строки.Количество() > 0 тогда
СинхронизироватьДеревоФормы(ДеревоИсточник.Строки[Ном], ЭлементыДереваФормы[Ном].ПолучитьЭлементы());
КонецЕсли;
КонецЦикла;
КонецПроцедуры
Показать
Скрыть и показать произвольную колонку Дерева значений после вызова ЗначениеВРеквизитФормы в моем случае помогло
Ну и свойство Начальное отображение дерева должно быть установлено в Раскрывать все уровни или Раскрывать верхний уровень
Элементы.ДЗТоварыКоличество.Видимость = Ложь;
Элементы.ДЗТоварыКоличество.Видимость = Истина;
Ну и свойство Начальное отображение дерева должно быть установлено в Раскрывать все уровни или Раскрывать верхний уровень
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот