Имя: Пароль:
1C
1С v8
Перетаскивание строк по дереву
,
0 Юзер123
 
naïve
18.12.17
09:31
Добрый день. нашел много примеров, но нигде понятно не описано.  Как реализваться перетаскивание строки дерева из группы в группу.


в свойствах дерева на форме поставил 2 галки разрешитьНачалоПеретаскивания,  и РазрешитьПеретаскивание.

в обработчике событий указал для НачалаПеретаскивания Стандартная обработка = истина. (мне нужно перетаскивание).  

Дальше приНачалеПеретаскивания  возник ступор) . .  Есть примеры для обычных форм?
спасибо.
1 Юзер123
 
naïve
18.12.17
09:46
Дерево 1. ! таб часть в форме документа. перетаскивание  в пределах формы.
2 FIXXXL
 
18.12.17
09:51
(0) а чего надо то? или не работает перетаскивание?
3 Юзер123
 
naïve
18.12.17
09:53
Не работает. (2)
4 Юзер123
 
naïve
18.12.17
10:12
Процедура ДеревоПроверкаПеретаскивания(Элемент, ПараметрыПеретаскивания, СтандартнаяОбработка, Строка, Колонка)
    
    СтандартнаяОбработка = Ложь;
    

КонецПроцедуры

Процедура ДеревоНачалоПеретаскивания(Элемент, ПараметрыПеретаскивания, Выполнение)
    
    ПараметрыПеретаскивания.Действие = ДействиеПеретаскивания.Перемещение;
    ПараметрыПеретаскивания.ДопустимыеДействия = ДопустимыеДействияПеретаскивания.Перемещение;

КонецПроцедуры
5 Юзер123
 
naïve
18.12.17
10:13
Процедура ДеревоПеретаскивание(Элемент, ПараметрыПеретаскивания, СтандартнаяОбработка, Строка, Колонка)
    
    СтандартнаяОбработка = Ложь;
    

    
    НоваяДолжность = Строка.Должность;
    НовыйРазряд = Строка.Разряд;
    
    

        СтрокаТЧ.Должность = НоваяДолжность;
        СтрокаТЧ.Разряд = НовыйРазряд;
    
КонецПроцедуры


Создает но не там где надо.  Надо родителя теперь строки указатьвидимо)
6 Юзер123
 
naïve
18.12.17
10:13
СтрокаТЧ =  Дерево.Строки.Добавить();
7 Vaflya
 
18.12.17
10:17
если ничего не писать не работает?
8 Юзер123
 
naïve
18.12.17
10:18
(7) нет
9 Юзер123
 
naïve
18.12.17
10:18
Где не писать? вообще ничего не писать?
10 Юзер123
 
naïve
18.12.17
10:22
Если ничего не писать то  при попытке перетащить круг перечеркнутый. не дает тащить ничего(
11 Юзер123
 
naïve
18.12.17
10:43
Процедура ДеревоПроверкаПеретаскивания(Элемент, ПараметрыПеретаскивания, СтандартнаяОбработка, Строка, Колонка)
    
    СтандартнаяОбработка = ЛОЖЬ;
    

КонецПроцедуры


Процедура ДеревоНачалоПеретаскивания(Элемент, ПараметрыПеретаскивания, Выполнение)
    
    ПараметрыПеретаскивания.Действие = ДействиеПеретаскивания.Перемещение;
    ПараметрыПеретаскивания.ДопустимыеДействия = ДопустимыеДействияПеретаскивания.Перемещение;

КонецПроцедуры

Процедура ДеревоПеретаскивание(Элемент, ПараметрыПеретаскивания, СтандартнаяОбработка, Строка, Колонка)
    
    СтандартнаяОбработка = ЛОЖЬ;
    
    //Если Строка.Уровень() = 1
     Если  ТипЗнч(ПараметрыПеретаскивания.Значение) <> Тип("СтрокаДереваЗначений") Тогда
        ПараметрыПеретаскивания.Действие = ДействиеПеретаскивания.Отмена;
        Возврат;
    КонецЕсли;
    
    НоваяДолжность = ЭлементыФормы.Дерево.ТекущаяСтрока.Должность;
    НовыйРазряд = ЭлементыФормы.Дерево.ТекущаяСтрока.Разряд;
    
    
    СтрокаТЧ =  Строка.Родитель.Строки.Добавить();
    
    
        СтрокаТЧ.Должность = НоваяДолжность;
        СтрокаТЧ.Разряд = НовыйРазряд;

        
КонецПроцедуры


Вот такая шляпа получилась. создает строку где надо.  как источник удалить?)
12 Юзер123
 
naïve
18.12.17
10:53
Ап.

Дерево.Строки.Удалить(ПараметрыПеретаскивания.Значение);

не катит
13 Юзер123
 
naïve
18.12.17
11:01
ПараметрыПеретаскивания.Значение.Родитель.Строки.Удалить(ПараметрыПеретаскивания.Значение);



может пригодиться кому..
14 Юзер123
 
naïve
18.12.17
16:58
Новый вопрос.

А как переносить  группу дерева со всеми элементами???