|
v8: Спозиционироваться на строке дерева значений Remake | ☑ | ||
|---|---|---|---|---|
|
0
VashKollega
05.08.14
✎
09:21
|
Привет.
Я перед тем как задать вопрос всегда ищу, может такое уже было. Часто нахожу. Вот и в этот раз нашел. Но что посоветовали (а оно как утверждает автор топика сработало) я так и не понял. v8: Спозиционироваться на строке дерева значений Смотрите сообщение номер 31 "подключайте обработчик на 1мс, в котором уже устанавливайте строку на какую нужно..". Что значит обработчик 1мс??? |
|||
|
1
ДенисЧ
05.08.14
✎
09:21
|
одна миллисекунда
|
|||
|
2
VashKollega
05.08.14
✎
09:22
|
Хм... А как он делается?
|
|||
|
3
Cube
05.08.14
✎
09:23
|
(2) Ну ты же умеешь искать... Или нет?
https://www.google.ru/search?as_sitesearch=forum.mista.ru&q=v8+%EF%EE%E4%EA%EB%FE%F7%E8%F2%FC+%EE%E1%F0%E0%E1%EE%F2%F7%E8%EA&gws_rd=ssl |
|||
|
4
VashKollega
05.08.14
✎
10:08
|
Объясню для тех, кто как я слабоват в 1С.
ОООООчень редко, но бывает нужно описывать интерактивную работу с деревом значений. Хочется, чтобы каждый раз, после того, как мы что то с ним сделали, дерево формировалось заново, а курсор вставал на ту же позицию, что и был до переформирования. Вредная процедура ПриОкончанииРедактирования табличного поля дерева не хочет устанавливать текущую строку, даже если мы ее точно знаем. И получается, что курсор улетает в начало дерева, а мы его вернуть не можем, ведь после события ПриОкончанииРедактирования уже ничего не происходит. Проблема решается так: 1) Делается в модуле формы переменную перем СтрокаДереваДляУстановкиКурсора; В нее сохраняем признаки той строки, на которой стоит курсор, по ним вы потом будете искать строку. 2) В ПриОткрытии() ставите обработчик ДействиеОкончаниеРедактированияСтроки = Новый Действие("ПриОкончанииРедактированияСвояПроцедура"); ЭлементыФормы.ТаблицаТМЦ.УстановитьДействие("ПриОкончанииРедактирования", ДействиеОкончаниеРедактированияСтроки); 3) В процедуре стандартной подписки ПриОкончанииРедактирования оставляем только сохранение текущей строки в переменную СтрокаДереваДляУстановкиКурсора и действия по переформированию дерева. 4) В модуле формы размещаете процедуру Процедура ПриОкончанииРедактированияСвояПроцедура(Элемент, НоваяСтрока, ОтменаРедактирования) Если НЕ СтрокаДереваДляУстановкиКурсора = Неопределено Тогда ЭлементыФормы.НашеДеревоЗначений.ТекущаяСтрока = СтрокаДереваДляУстановкиКурсора; КонецЕсли; КонецПроцедуры В итоге сработает стандартная процедура там сохранится текущая строка, обновится дерево, а в дополнительной подписке устанавливается текущая строка. |
| Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |