Имя: Пароль:
1C
 
Автосворачивание дерева при изменении отметки
0 СамоСабой
 
08.08.24
23:47
Здравствуйте.
имеется управляемая форма.
На форме имеется дерево значений.
В колонках дерева имеется булево поле - определенное как поле флажка.
При изменении значения этого флажка на любом уровне вложенности происходит самопроизвольное сворачивание всего дерева до группировок 1-го уровня.
В чем причина такого странного поведения и как это можно лечить?
Прошу подсказать.
1 RomaH
 
09.08.24
08:40
дерево обновляется - отладчик включи
2 СамоСабой
 
09.08.24
13:05
Вобщем добавил глобальную переменную модуля
_ОтказОтСворачиваня
и ПриИзмененииФлажка
записываю в нее _ОтказОтСворачивания = Истина

затем обработчик События
ДеревоОбъектовПередСворачиванием()

В нем проверяю ее значение и
Если _ОтказОтСворачивания() Тогда Отказ = Истина

КонецЕсли

В целом работает, но теперь для того чтобы свернуть группировку
3 Волшебник
 
09.08.24
13:07
Не стоит начинать имена переменных со знака подчёркивания. Говнокод получается.

Кроме того, соблюдайте лесенку

Если ОтказОтСворачивания Тогда 
   Отказ = Истина;
КонецЕсли;
4 СамоСабой
 
09.08.24
13:11
Сори правильно так :

Если ОтказОтСворачивания() Тогда Отказ = Истина
_ОтказОтСворачиваня = Ложь;
КонецЕсли

В целом работает, но теперь для того чтобы свернуть группировку приходится два раза нажимать на значек сворачивания.
И еще из приколов :
Оказывается для того чтобы обратиться к глобальной переменной модуля формы объявленной на клиенте необходимо писать функцию :

Функция ОтказОтСворачивания()
Возврат _ОтказОтСворачиваня;
КонецФункции
5 СамоСабой
 
09.08.24
13:13
(3) На этом форуме в окошке "Добавить сообщение" не работает табуляция.
Поэтому лесенка не получается.
6 Волшебник
 
09.08.24
13:14
(5) Используйте пробелы или копируйте программный код с табуляцией.
7 Волшебник
 
09.08.24
13:15
(4) Хватит генерить бред.
Компьютеры — это как велосипед. Только для нашего сознания. Стив Джобс