|
Как активизировать табличную часть формы ранее не видимую | ☑ | ||
---|---|---|---|---|
0
idemat
13.04.16
✎
11:05
|
Хочу на форме документа показывать табличную часть при необходимости ввода дополнительной информации.
При открытии формы устанавливаю Видимость в Ложь, затем по кнопке делаю Видимой, добавляю строку. Хочу сделать активизировать введенную строку, но метод текущийЭлемент отрабатывает только если табличная часть была изначально видимая. &НаКлиенте Процедура ЗанестиЛичныйПробег(Команда) Элементы.ЛичныйПробег.Видимость = Истина; Элементы.ФормаЗанестиЛичныйПробег.Видимость = Ложь; НовСтрока = Объект.ЛичныйПробег.Добавить(); НовСтрока.Контрагент = Объект.Водитель; ЭтаФорма.ТекущийЭлемент = Элементы.ЛичныйПробегПробег; КонецПроцедуры |
|||
1
Pro-tone
13.04.16
✎
11:08
|
(0) Элементы.ТабличнаяЧасть.ТекущаяСтрока = ТабличнаяЧасть.Количество()-1
|
|||
2
idemat
13.04.16
✎
11:14
|
Дело не в позиционировании. В момент вызова процедуры табличная часть невидима. Код который я привел рабочий, при условии что табличная часть видима. Если уствновить видимость табличной части в ложь, перестает работать. Я так понимаю, управляемая форма обновляется только после завершения процедуры. Пробовал вставлять методы ОбновитьДанные, Получить. Не помогло.
|
|||
3
idemat
13.04.16
✎
11:17
|
Сам метод ЭтаФорма.ТекущийЭлемент = Элементы.ТабличнаЧасть не отробатывает если на форме ТабличнаяЧасть на видна, даже при том что в процедуре сначала я делаю ее видимой, а потом примення ЭтаФорма.ТекущийЭлемент.
|
|||
4
Pro-tone
13.04.16
✎
11:22
|
(3) а зачем тебе ее активизировать? активизируй строку как я написал в (1)
|
|||
5
idemat
13.04.16
✎
14:19
|
Так не работает
Элементы.ТабличнаяЧасть.ТекущаяСтрока = ТабличнаяЧасть.Количество()-1 даже когда табличная часть видима. Все дело в том, что в теле самой процедуры я меняю видимость элементов формы. Если видимость изначально установлена и не изменяется,то с помощью ЭтаФорма.ТекущийЭлемент = Элементы.Поле1 можно активировать любое поле. Если перед вызовом моей процедуры ТабличнаяЧасть не видима, и я программно устанавливаю ее видимость метод ЭтаФорма.ТекущийЭлемент = Элементы.Поле1 перестает работать. Я проверел это не только для табличной части, но я для простого поля ввода. |
|||
6
FIXXXL
13.04.16
✎
14:36
|
если разделить управление видимостью и добавление строки на две процедуры?
|
|||
7
FIXXXL
13.04.16
✎
14:38
|
вот этот кусок
НовСтрока = Объект.ЛичныйПробег.Добавить(); НовСтрока.Контрагент = Объект.Водитель; ЭтаФорма.ТекущийЭлемент = Элементы.ЛичныйПробегПробег; попробуй вынести в отдельную процедуру и ее уже дергать |
|||
8
idemat
13.04.16
✎
15:00
|
FIXXX - попробовал, не работает.
Мои дальнейшие исследования показали, что если во время исполнения процедуры становится видимым какой-нибудь любой элемент формы ( я пробовал табличную часть и поле ввода) у которого до исполнения процедуры была видимость ложь, то активизировать элемент формы с помощью ЭтаФорма.ТекущийЭлемент не получается. Если процедуру отработать дважды, то во второй раз, когда табличная часть уже видима активизация происходит. |
|||
9
Карупян
13.04.16
✎
15:05
|
ПодключитьОбработчикОжидания("АктивизироватьМоюТЧ", 0.1)
|
|||
10
idemat
13.04.16
✎
15:15
|
А процессор нагрузится. Помнится мне в 7-ке обработка ожидания нагружала процессор. и потом из-за такой фичи не хотелось городить огород. Это баг 8-ки?
|
|||
11
FIXXXL
13.04.16
✎
15:28
|
(10) не переживай так за процессор
писатели типовых на пилюют :) |
|||
12
idemat
13.04.16
✎
15:48
|
(11) заработало ))
но осадок остался (( |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |