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