Имя: Пароль:
1C
 
Как в УФ изменить список выбора поля дерева?
0 vde69
 
09.03.17
10:31
в обычных формах есть работающий код,

Процедура ДеревоНастроекВидОперацииНачалоВыбораИзСписка(Элемент, СтандартнаяОбработка)
        
    Элемент.СписокВыбора.Очистить();
    мСтр = ЭлементыФормы.ДеревоНастроек.ТекущаяСтрока;
    
    Если мСтр.Уровень() = 0 Тогда
        Элемент.СписокВыбора.Добавить("CashFlow");
    ИначеЕсли мСтр.Уровень() = 1 Тогда
        Элемент.СписокВыбора.Добавить("ОборотДТ");
        Элемент.СписокВыбора.Добавить("ОборотКТ");
    ИначеЕсли мСтр.Уровень() = 2 Тогда
        мИмяРодителя = мСтр.Родитель.Наименование;
        Если мИмяРодителя = "Отбор" Тогда
            Элемент.СписокВыбора.Добавить("ОборотДТ");
            Элемент.СписокВыбора.Добавить("ОборотКТ");
        ИначеЕсли мИмяРодителя = "Вывод" Тогда
            Элемент.СписокВыбора.Добавить("ОборотДТ");
            Элемент.СписокВыбора.Добавить("ОборотКТ");
        ИначеЕсли мИмяРодителя = "Распределение" Тогда
            Элемент.СписокВыбора.Добавить("База");
            Элемент.СписокВыбора.Добавить("Коэффициент");
        КонецЕсли;
    КонецЕсли;
КонецПроцедуры

не могу понять как получить текущую строку дерева, и его поля в
Процедура ДеревоНастроекВыгрузкаВидОперацииНачалоВыбора(Элемент, ДанныеВыбора, СтандартнаяОбработка)
....
1 DrShad
 
09.03.17
10:32
ДанныеВыбора
2 vde69
 
09.03.17
10:32
работающий код на обычных формах
3 vde69
 
09.03.17
10:32
(1) там пусто
4 DrShad
 
09.03.17
10:34
(3) это на УФ аналог списка выбора
5 vde69
 
09.03.17
10:36
(4) изменять список выбора можно так

    Элемент.СписокВыбора.Очистить();
    Элемент.СписокВыбора.Добавить("CashFlow");


а у меня другой вопрос, как получить поле текущей строки, аналог этих двух строк:

    мСтр = ЭлементыФормы.ДеревоНастроек.ТекущаяСтрока;
    Если мСтр.Уровень() = 0 Тогда
6 DrShad
 
09.03.17
10:43
Элементы.ДеревоНастроек.ТекущаяСтрока что дает?
7 vde69
 
09.03.17
10:43
нашел

Элементы.ДеревоНастроекВыгрузка.ТекущиеДанные
8 DrShad
 
09.03.17
10:43
если число, то это ИД строки и по нему можно получить строку
9 НЕА123
 
09.03.17
10:47
мСтр = ДеревоНастроек(Элементы.ДеревоНастроек.ТекущаяСтрока)
10 vde69
 
10.03.17
12:58
теперь другой вопрос

Как получить ИД строки родителя текущей?
11 НЕА123
 
10.03.17
13:10
ДеревоНастроек[Элементы.ДеревоНастроек.ТекущаяСтрока].ПОлучитьРодителя().ПолучитьИдентификатор()
12 НЕА123
 
10.03.17
13:12
(11)+ это про ДанныеФормыЭлементДерева
13 vde69
 
10.03.17
13:13
(11) спасибо

сделал так

&НаКлиенте
Процедура ДеревоНастроекВыгрузкаПриИзменении(Элемент)
    мРодитель = ДеревоНастроекВыгрузка.НайтиПоИдентификатору(Элемент.ТекущаяСтрока).ПолучитьРодителя();
    Элемент.ТекущиеДанные.Уровень = мРодитель.Уровень + 1;
    Элемент.ТекущиеДанные.ИмяРодителя = мРодитель.Наименование;
КонецПроцедуры
Требовать и эффективности, и гибкости от одной и той же программы — все равно, что искать очаровательную и скромную жену... по-видимому, нам следует остановиться на чем-то одном из двух. Фредерик Брукс-младший