Вход | Регистрация
 
1С:Предприятие :: 1С:Предприятие 8 общая

Как отследить событие выхода из режима редактирования ячейки на таблице в УФ?

Как отследить событие выхода из режима редактирования ячейки на таблице в УФ?
Я
   ssalikoff
 
23.07.21 - 09:30
Здравствуйте
Имеется управляемая форма, на ней таблица.
Для ячейки установлен РежимРедактирования "Вход".
Задача: при завершении редактирования "прыгать" вниз, на следующую строку, для редактирования нижележащей ячейки в следующей строке.
Как отследить событие выхода из режима редактирования этой ячейки? Например, пользователь нажал Enter, Tab или щелкнул мышкой на другую ячейку. ПриИзменении, ОкончаниеВводаТекста и ИзменениеТекстаРедактирования не подходят, поскольку ни одно событие не сработает, если пользователь фактически не менял содержимое ячейки. То есть сделал двойной щелчок — попал в ячейку. Это отлавливается всегда. Ничего не изменил, нажал на Enter. Это не ловится.
Однако есть событие ПриОкончанииРедактирования таблицы формы. Можно использовать его, и оно действительно срабатывает, если хоть в какой-нибудь ячейке таблицы завершено редактирование.
Попробовал его использовать и столкнулся с такой проблемой:
в обработчике события ПриОкончанииРедактирования "Элементы.Таблица.ТекущаяСтрока = НовоеЗначение" не срабатывает, новое значение не присваивается. И на новую строку прыжок не происходит. Та же строчка кода, внутри обработчика события ячейки ПриИзменении отрабатывает корректно.
Может, кто-то знает, как это можно победить?
   ssalikoff
 
1 - 23.07.21 - 10:17
Проблема в том, что ПередОкончаниемРедактирования курсор находится в строке и сменить ее не может.
Тогда можно попробовать использовать обработчик ожидания. Он отработает только когда завершится обработка события ПередОкончаниемРедактирования. Но это слишком уж "костыльный" метод, кроме того, он вызывает неприятную задержку.
   Kassern
 
2 - 23.07.21 - 10:24
возможно оповещения тебе помогут
   ssalikoff
 
3 - 23.07.21 - 12:10
(2) Нет, не поможет. Если Метод Оповестить() вызвать внутри обработчика события ПриОкончанииРедактирования, то обработка оповещения будет выполнена до окончания редактирования таблицы и проблема сохранится

Список тем форума
 
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.