Имя: Пароль:
1C
 
ПриОкончанииРедактирования табличного поля дерева
0 Casper211
 
05.04.16
14:43
Здравствуйте жители форума, помогите пожалуйста кому не трудно!

v8: v8: Спозиционироваться на строке дерева значений Remake

Объясните пожалуйста (4) сообщение
в 3 пункте пишет:
"В процедуре стандартной подписки ПриОкончанииРедактирования оставляем только сохранение текущей строки в переменную СтрокаДереваДляУстановкиКурсора и действия по переформированию дерева."

а как оно туда будет заходить, если мы написали новую процедуру, которая будет вызываться вместо стандартной?
1 Casper211
 
05.04.16
15:44
А то я никак не могу добить эту тему (
2 KulakoffAlex
 
05.04.16
15:46
а Что сделать то надо ? не совсем понятно.
3 Casper211
 
05.04.16
16:20
(2) Вредная процедура ПриОкончанииРедактирования табличного поля дерева не хочет устанавливать текущую строку, даже если мы ее точно знаем. И получается, что курсор улетает в начало дерева, а мы его вернуть не можем, ведь после события ПриОкончанииРедактирования уже ничего не происходит.

А мне нужно, чтобы ПриОкончанииРедактирования
я создал элемент (узел 1) "Парам 1с" - текущая строка "Парам1" Родитель - неопределено
потом создал ище элемент (узел 2) "Парам 1 Парама 1" - текущая строка "Парам 1 Парама 1", родитель "Парам1"
И после окончания редактирование сроки, Текущой строкой станет родитель - "Парам1", и курсор будет на "Парам1"
4 Casper211
 
05.04.16
16:20
на ОФ УПП 1с83
5 KulakoffAlex
 
05.04.16
17:04
Попробовал, вроде всегда остается текущая строка которую только что вводил. и в начало дерево курсор не улетает.
зачем вообще процедура ПриОкончанииРедактирования(), не понимаю.
6 KulakoffAlex
 
05.04.16
17:17
или после ввода новой подчиненной строки, надо вернуться на строку родителя ?
7 KulakoffAlex
 
05.04.16
17:42
ПередНачаломРедактирования()
запоминаешь текущую строку. получается родитель.
ПриОкончанииРедактирования()
подключаешь обработчик ожидания разовый.

в обработчике ожидания устанавливаешь текущую строку дерева.
ЭлементыФормы.Дерево.ТекущаяСтрока = СтрокаКоторуюЗапомнили;


я так думаю что "ПриОкончанииРедактирования()" редактирование еще не закончено и текущую строку поменять просто нельзя. если было бы событие "после окончания редактирования" тогда бы в нем прокатил.
8 Casper211
 
05.04.16
17:50
(6) дааааа даааааа , это то, что я хочу
9 Casper211
 
06.04.16
14:13
(7)Я вам безмерно благодарен. Еще раз спасибо за помощь.

Процедура ДеревоЗапросовПриОкончанииРедактирования(Элемент, НоваяСтрока, ОтменаРедактирования)
    СтрокаДереваДляУстановкиКурсора = ЭлементыФормы.ДеревоЗапросов.ТекущаяСтрока.Родитель;
    ПодключитьОбработчикОжидания("ВернутьсяНаСтрокуРодителя",1, Истина);
КонецПроцедуры // ДеревоЗапросовПриОкончанииРедактирования()


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