Имя: Пароль:
1C
 
Можно ли у ДанныеФормыЭлементДерева получить значение владельца (ДанныеФормыДерево)?
0 Гений 1С
 
гуру
10.11.21
15:22
Собственно
1 acht
 
10.11.21
15:32
Пиши статью
2 Гений 1С
 
гуру
10.11.21
15:37
Хочется избавиться от параметра Дерево в первой функции:

Функция ПозицияСтрокиДереваВМассив(Строка, Дерево = Неопределено) Экспорт
    М = Новый Массив();
    ТекСтрока = Строка;
    Прерывать = ложь;
    Пока Истина Цикл
        ПредСтрока = ТекСтрока;
        Если ТипЗнч(ТекСтрока) = Тип("ДанныеФормыЭлементДерева") Тогда
            ТекСтрока = ТекСтрока.ПолучитьРодителя();
            Если ТекСтрока = Неопределено Тогда
                ТекСтрока = Дерево;
                Прерывать = истина;
            КонецЕсли;
        Иначе
            ТекСтрока = ТекСтрока.Родитель;
            Если ТекСтрока = Неопределено Тогда
                ТекСтрока = Строка.Владелец(); //Родитель - само дерево
                Прерывать = истина;
            КонецЕсли;
        КонецЕсли;
        Если ТипЗнч(ТекСтрока) = Тип("ДанныеФормыЭлементДерева")
            ИЛИ ТипЗнч(ТекСтрока) = Тип("ДанныеФормыДерево") Тогда
            М.Вставить(0, ТекСтрока.ПолучитьЭлементы().Индекс(ПредСтрока));
        Иначе
            М.Вставить(0, ТекСтрока.Строки.Индекс(ПредСтрока));
        КонецЕсли;
        Если Прерывать Тогда
            Прервать;
        КонецЕсли;
    КонецЦикла;
    Возврат М;
КонецФункции

Функция ПозицияСтрокиЭлементаДереваИзМассива(Д, М) Экспорт
    //Д = ДанныеФормыДерево
    Нач = Д;
    Для Каждого Эл Из М Цикл
        Нач = Нач.ПолучитьЭлементы()[Эл];
    КонецЦикла;
    Возврат Нач;
КонецФункции
3 acht
 
10.11.21
15:41
(2) Снимай видео?
4 DropDead
 
11.11.21
00:34
Геня генерит темы, только когда заказик падает, а то какое-то прям затишье было
5 vicof
 
11.11.21
09:27
Функция ПозицияСтрокиЭлементаДереваИзМассива(Д, М) Экспорт
    //Д = ДанныеФормыДерево

    Нач = Д;
    Для Каждого Эл Из М Цикл
        Нач = Нач.ПолучитьЭлементы()[Эл];
    КонецЦикла;
    Возврат Нач;
КонецФункции

Вот за такое руки отрывать надо.
6 vicof
 
11.11.21
09:28
То, что сверху написано, видел, но не могу ругнуться, из глаз кровь потекла.
7 fisher
 
11.11.21
10:07
А ПолучитьРодителя() на ДанныеФормыДерево не выводит?
8 fisher
 
11.11.21
10:08
А, вижу, не выводит.
9 fisher
 
11.11.21
10:23
(2) Мне от всей функции избавиться хочется, не только от параметра.
И написано криво и стиль плохой и концепция кривая. Ты что, решил ее универсальной сделать для дерева значений и данных формы? <укоризненно качает головой>
10 acht
 
11.11.21
10:25
(4) > только когда заказик падает
Ты сейчас придешь к идее, что геня без пи#д#лей со стороны форума не работает =)
11 Гений 1С
 
гуру
11.11.21
18:57
(9) да, чтобы не париться и не думать о многообразии клиент-серверных представлений дерева.
12 Гений 1С
 
гуру
11.11.21
18:58
(4) не, когда сталкиваюсь с тем, чего не знаю, тогда и задаю. Так то наловчился, многое уже знаю, спрашивать не нужно.
13 DropDead
 
12.11.21
04:13
(10) признаться честно, меня уже поменяли такие мысли :)
14 fisher
 
12.11.21
10:18
(11) Если ты таким еще не переболел, то все равно со всех сторон лучше и удобнее реализовать две отдельные версии и написать для них функцию-селектор.