Программно установить текущий элемент формы. Платформа 8.3.5 #726128


#0 by kdenis
Прошу помощи в решении следующей задачи. Конфигурация самописная. На управляемой форме есть элемент, привязанный к строковому реквизиту формы. Пользователь вводит в этот элемент данные, нажимает Enter, в обработчике ПриИзменении выполняется некий код. Необходимо сделать так, чтобы после выполнения кода данные в элементе удалялись и фокус оставался на нем же. Теперь сама проблема: На платформе 8.3.4 задача была решена следующим кодом: ... В некоторый момент времени Бухгалтерия потребовала платформу 8.3.5. Чтобы не плодить серверов, свою конфигурацию тоже запустил на 8.3.5. После этого приведенный выше код работать перестал. Тех кто сталкивался с подобной проблемой и нашел пути решения, прошу отписаться. Тем, кто может воспроизвести у себя такой код и отпишется о результатах, тоже буду благодарен.
#1 by DS
В каком обработчике данный код?
#2 by Обработка
Я сделал обработку Релиз 1с8.3.5.1186 Все нормально сработало.
#3 by Обработка
#4 by kdenis
Спасибо. Релиз тот же, но этот код не работает. Грешил на платформу, теперь сектор поиска расширился.
#5 by kdenis
МойРеквизитПриИзменении
#6 by kdenis
Обработка, скажи пожалуйста в твоей обработке помимо этого элемента есть на форме еще какие-нибудь? И не располагается ли он крайним? Создал чистую базу, приведенный код не работает все равно. Такое ощущение, что платформенный обходчик элементов имеет приоритет по отношению к Как ни пытался, фокус передается к следующему элементу.
#7 by DS
Не пойму, как это должно работать. В "ПриИзменении" текущим элементом и так является редактируемый. А перемещение на другой элемент по идее должно осуществляться после завершения процедуры.
#8 by kdenis
Видимо не правильно выразил мысль. Не работает именно строка кода: которая должна после выхода из процедуры оставлять курсор на редактируемом элементе, а не переходить к следующему. Еще одна поправочка: попробовал на платформе 1119, работает так, как задумано. Значит проблема появилась при переходе с 1119 на 1186, а не с 8.3.4 на 8.3.5, как писал ранее.
#9 by DS
Отладчик что показывает? До этой строчки и после нее? Откуда сведения что "не работает"?
#10 by Обработка
Я на всякий случай добавил еще реквизит сработало.
#11 by Обработка
У тебя реквизит формы имеет путь к данным?
#12 by kdenis
Отладчик и до строчки и после строчки показывает, что в ЭтаФорма.ТекущийЭлемент содержится нужное поле формы. Сведения что "не работает" от пользователей.
#13 by kdenis
Реквизит формы не может иметь пути к данным - это и есть данные. То что мне нужно - именно реквизит формы (не объекта), связанный с полем формы. Просьба, можешь воспроизвести следующее: 1. разместить на форме поле, связанное с реквизитом формы. 2. сразу после этого поля разместить элемент, связанный с табличной частью объекта. Сработает ли обработчик в такой связке.
#14 by Обработка
Вот все работает
#15 by Управление торговлей
у меня вылез такой же глюк на последней платформе сделал позиционирование в обработке ожидания
#16 by DS
Не должна она срабатывать после завершения процедуры. С чего бы это? Код срабатывает только в момент выполнения этого кода. Если описываемое вами поведение было в 1119, то это просто ошибка и в последующих релизах ее исправили.
#17 by kdenis
Мы скорей всего не понимаем друг друга. Я хочу сделать так, чтобы после редактирования элемента формы (ввода данных и нажатия Ентер) фокус ввода оставался на этом элементе, а не переходил на следующий. Мой код реализовывал это. После обновления платформы код работать перестал. Если это ошибка, которую исправили это, то для какой тогда цели у управляемой формы есть доступное для записи свойство "ТекущийЭлемент"?
#18 by kdenis
Напиши версию платформы, на которой у тебя вылез глюк.
#19 by Управление торговлей
8.3.5.1248
Тэги: 1С 8
Ответить:
Комментарии доступны только авторизированным пользователям

В этой группе 1С