![]() |
|
Значение поля дерева обработки не обновляется на форме | ☑ | ||
---|---|---|---|---|
0
catzilla codzilkin
10.10.25
✎
09:37
|
Всем здравствуйте.
Есть реквизит (не табличная часть) внешней обработки типа Дерево. Инициализируется программно колонками и строками в обработчике формы "ПриСозданииНаСервере". Одна из колонок признак развернутости строки дерева. Есть дерево на форме с добавленными реквизитами, но не всеми что добавлены программно (этого признака нет). Для дерева в форме есть обработчик "ПередРазворачиванием", в котором делается вызов серверной процедуры и по параметру обработчика "НомерСтроки" устанавливается признак развернутости для дерева из реквизита обработки. Когда происходит закрытие формы по отладчику видно, что в строке которую развернули, колонка-признак строки дерева стоит ложь. То есть дерево-реквизит обработки не поменялось, но строка дерева на форме развернулась. Если после того, как устанавливается признак развернутости, вызывать процедуру ЗначениеВРеквизитФормы то дерево-реквизит обработки меняется. Но не раскрывается строка дерева на форме. Как сделать чтобы либо дерево-реквизит обработки менялось, либо строка дерева на форме раскрывалась? |
|||
1
catzilla codzilkin
10.10.25
✎
09:41
|
&НаСервере // ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) // Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) Если Параметры.Свойство("АвтоТест") Тогда Возврат; КонецЕсли; ОбъектНаСервере = РеквизитФормыВЗначение("Объект"); ОбъектНаСервере.Инициализация(); ЗначениеВРеквизитФормы(ОбъектНаСервере.ДеревоМетаданных, "Объект.ДеревоМетаданных"); КонецПроцедуры // ПриСозданииНаСервере ************************************ &НаКлиенте // ДеревоМетаданныхПередРазворачиванием(Элемент, Строка, Отказ) // Процедура ДеревоМетаданныхПередРазворачиванием(Элемент, Строка, Отказ) ДеревоМетаданныхПередРазворачиваниемИлиСворачиванием(Строка, Истина); КонецПроцедуры // ДеревоМетаданныхПередРазворачиванием ************************************ &НаСервере // ДеревоМетаданныхПередРазворачиваниемИлиСворачиванием(НомерСтроки, Признак) Экспорт // Процедура ДеревоМетаданныхПередРазворачиваниемИлиСворачиванием(НомерСтроки, Признак) Экспорт ОбъектНаСервере = РеквизитФормыВЗначение("Объект"); СтрокаДерева = ПолучитьСтрокуДереваПоНомеру(ОбъектНаСервере.ДеревоМетаданных, НомерСтроки); Если СтрокаДерева <> Неопределено Тогда СтрокаДерева.Развернут = Признак; КонецЕсли; //ЗначениеВРеквизитФормы(ОбъектНаСервере.ДеревоМетаданных, "Объект.ДеревоМетаданных"); КонецПроцедуры // ДеревоМетаданныхПередРазворачиваниемИлиСворачиванием ************************************ &НаСервереБезКонтекста // ПолучитьСтрокуДереваПоНомеру(Дерево, НомерСтроки) Экспорт // Функция ПолучитьСтрокуДереваПоНомеру(Дерево, НомерСтроки) Экспорт Счетчик = 0; ПрерватьЦикл = Ложь; Результат = Неопределено; КоллекцияСтрок = Дерево.Строки; Если КоллекцияСтрок.Количество() <> 0 Тогда Пока Не ПрерватьЦикл Цикл Результат = ПеревыбратьСтроки(КоллекцияСтрок, Счетчик, НомерСтроки, ПрерватьЦикл); КонецЦикла; КонецЕсли; Возврат Результат; КонецФункции // ПолучитьСтрокуДереваПоНомеру &НаСервереБезКонтекста // ПеревыбратьСтроки(КоллекцияСтрок, ТекущийНомер, ИскомыйНомер) Экспорт // Функция ПеревыбратьСтроки(КоллекцияСтрок, ТекущийНомер, ИскомыйНомер, ПрерватьЦикл) Экспорт Для Каждого Строка Из КоллекцияСтрок Цикл Если ТекущийНомер = ИскомыйНомер Тогда ПрерватьЦикл = Истина; Возврат Строка; Иначе ТекущийНомер = ТекущийНомер + 1; КоллекцияСтрок = Строка.Строки; Если КоллекцияСтрок.Количество() = 0 Тогда Продолжить; КонецЕсли; Строка = ПеревыбратьСтроки(КоллекцияСтрок, ТекущийНомер, ИскомыйНомер, ПрерватьЦикл); ПрерватьЦикл = Истина; Возврат Строка; КонецЕсли; КонецЦикла; Возврат Неопределено; КонецФункции // ПолучитьСтрокуДереваПоНомеру |
|||
2
catzilla codzilkin
10.10.25
✎
10:05
|
Задача стоит программно запоминать и восстанавливать свернутость строк дерева при закрытии/открытии обработки.
|
|||
3
catzilla codzilkin
10.10.25
✎
10:05
|
Когда жмешь плюсик для раскрытия строки, эта строка активной не становится.
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |