|
Программно установить текущий элемент формы. Платформа 8.3.5 | ☑ | ||
---|---|---|---|---|
0
kdenis
18.11.14
✎
10:19
|
Прошу помощи в решении следующей задачи.
Конфигурация самописная. На управляемой форме есть элемент, привязанный к строковому реквизиту формы. Пользователь вводит в этот элемент данные, нажимает Enter, в обработчике ПриИзменении выполняется некий код. Необходимо сделать так, чтобы после выполнения кода данные в элементе удалялись и фокус оставался на нем же. Теперь сама проблема: На платформе 8.3.4 задача была решена следующим кодом: ... ЭтаФорма.РеквизитФормы = ""; // удалил данные ЭтаФорма.ТекущийЭлемент = ЭтаФорма.Элементы.РеквизитФормы; // установил фокус В некоторый момент времени Бухгалтерия потребовала платформу 8.3.5. Чтобы не плодить серверов, свою конфигурацию тоже запустил на 8.3.5. После этого приведенный выше код работать перестал. Тех кто сталкивался с подобной проблемой и нашел пути решения, прошу отписаться. Тем, кто может воспроизвести у себя такой код и отпишется о результатах, тоже буду благодарен. |
|||
1
DS
18.11.14
✎
10:48
|
В каком обработчике данный код?
|
|||
2
Обработка
18.11.14
✎
10:57
|
Я сделал обработку Релиз 1с8.3.5.1186
Все нормально сработало. |
|||
3
Обработка
18.11.14
✎
10:58
|
+ (2)
&НаКлиенте Процедура Реквизит1ПриИзменении(Элемент) ЭтаФорма.Реквизит1 = ""; // удалил данные ЭтаФорма.ТекущийЭлемент = ЭтаФорма.Элементы.Реквизит1; // установил фокус КонецПроцедуры |
|||
4
kdenis
18.11.14
✎
11:07
|
(3) Спасибо. Релиз тот же, но этот код не работает. Грешил на платформу, теперь сектор поиска расширился.
|
|||
5
kdenis
18.11.14
✎
11:07
|
(1) МойРеквизитПриИзменении
|
|||
6
kdenis
18.11.14
✎
11:33
|
(3) Обработка, скажи пожалуйста в твоей обработке помимо этого элемента есть на форме еще какие-нибудь? И не располагается ли он крайним?
Создал чистую базу, приведенный код не работает все равно. Такое ощущение, что платформенный обходчик элементов имеет приоритет по отношению к ЭтаФорма.ТекущийЭлемент = ЭтаФорма.Элементы.Реквизит1; Как ни пытался, фокус передается к следующему элементу. |
|||
7
DS
18.11.14
✎
11:45
|
Не пойму, как это должно работать. В "ПриИзменении" текущим элементом и так является редактируемый. А перемещение на другой элемент по идее должно осуществляться после завершения процедуры.
|
|||
8
kdenis
18.11.14
✎
11:51
|
Видимо не правильно выразил мысль.
Не работает именно строка кода: ЭтаФорма.ТекущийЭлемент = ЭтаФорма.Элементы.Реквизит1; которая должна после выхода из процедуры оставлять курсор на редактируемом элементе, а не переходить к следующему. Еще одна поправочка: попробовал на платформе 1119, работает так, как задумано. Значит проблема появилась при переходе с 1119 на 1186, а не с 8.3.4 на 8.3.5, как писал ранее. |
|||
9
DS
18.11.14
✎
11:53
|
Отладчик что показывает? До этой строчки и после нее? Откуда сведения что "не работает"?
|
|||
10
Обработка
18.11.14
✎
11:55
|
(6) Я на всякий случай добавил еще реквизит
сработало. |
|||
11
Обработка
18.11.14
✎
11:55
|
(0) У тебя реквизит формы имеет путь к данным?
|
|||
12
kdenis
18.11.14
✎
14:00
|
(9) Отладчик и до строчки и после строчки показывает, что в ЭтаФорма.ТекущийЭлемент содержится нужное поле формы.
Сведения что "не работает" от пользователей. |
|||
13
kdenis
18.11.14
✎
14:04
|
(11) Реквизит формы не может иметь пути к данным - это и есть данные.
То что мне нужно - именно реквизит формы (не объекта), связанный с полем формы. Просьба, можешь воспроизвести следующее: 1. разместить на форме поле, связанное с реквизитом формы. 2. сразу после этого поля разместить элемент, связанный с табличной частью объекта. Сработает ли обработчик в такой связке. |
|||
14
Обработка
18.11.14
✎
16:47
|
||||
15
Управление торговлей
18.11.14
✎
17:04
|
у меня вылез такой же глюк на последней платформе
сделал позиционирование в обработке ожидания |
|||
16
DS
19.11.14
✎
11:00
|
(8) Не должна она срабатывать после завершения процедуры. С чего бы это? Код срабатывает только в момент выполнения этого кода.
Если описываемое вами поведение было в 1119, то это просто ошибка и в последующих релизах ее исправили. |
|||
17
kdenis
19.11.14
✎
15:43
|
(16) Мы скорей всего не понимаем друг друга. Я хочу сделать так, чтобы после редактирования элемента формы (ввода данных и нажатия Ентер) фокус ввода оставался на этом элементе, а не переходил на следующий. Мой код реализовывал это. После обновления платформы код работать перестал.
Если это ошибка, которую исправили это, то для какой тогда цели у управляемой формы есть доступное для записи свойство "ТекущийЭлемент"? |
|||
18
kdenis
19.11.14
✎
16:27
|
(15) Напиши версию платформы, на которой у тебя вылез глюк.
|
|||
19
Управление торговлей
19.11.14
✎
19:03
|
(18) 8.3.5.1248
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |