Имя: Пароль:
1C
1С v8
Как узнать активное поле формы при нажатии на кнопку
,
0 DES
 
04.03.15
22:23
Есть простая форма, в ней 3 поля и кнопка.
По кнопке вызывается доп. форма.
Как передать в допформу поле в котором стоял курсор при нажатии на кнопку, и вернуть значение из допформы в это поле.
1 SSSSS_AAAAA
 
04.03.15
22:28
(0) В момент нажатия кнопки активна кнопка, а не поле. История перемещения активности по полям не ведется.
Короче, что-то не то в консерватории.
2 DES
 
04.03.15
22:30
в 7.7 я как то умудрялся это соорудить...
3 SSSSS_AAAAA
 
04.03.15
22:31
(2) И потому сие обязательно должно быть и в восьмерке?
4 DES
 
04.03.15
22:32
Вы спрашиваете моего разрешения или по теме топика что-то говорите ?
5 SSSSS_AAAAA
 
04.03.15
22:36
(4) Разрешения? Откуда вдруг взялись разрешения?
Я всего лишь намекаю, что выбран не совсем удачный способ решения какой-то неизвестной задачи. Не должна функциональность формы так зависеть от порядка перемещения активности по полям формы.
6 ShoGUN
 
04.03.15
22:53
(4) Можно имя реквизита передавать, и после выбора в данные, связанные с реквизитом - записывать значение. Имя поля при активизации любого поля - записывать в переменную, тогда (1) можно обойти. Но логика тут и правда ущербная, (1) прав. Не проще ли логику, связанную с полем ввода - реализовать в самом поле ввода, благо там возможностей масса?
7 DES
 
05.03.15
01:34
(6) ну можно сделать 3 функции идентичные и привязать в каждому полю по одной, но хотелось бы получать поле с курсором при нажатии кнопки
8 bolobol
 
05.03.15
03:07
может, просто кнопка расположена не в панели действий формы?
9 ShoGUN
 
05.03.15
06:38
(7) Поля с курсором при нажатии кнопки - нет, оно теряет фокус ввода(он переносится на кнопку).
10 ShoGUN
 
05.03.15
06:39
(7) Можно один и тот же обработчик повесить на три поля, в чём проблема?
11 ShoGUN
 
05.03.15
06:44
Хотя нет, для обычных форм - я соврал в (9).
12 1Сергей
 
05.03.15
06:46
и про семерку автор наврал
13 Arigelis
 
05.03.15
06:52
вариант один, хронить наименование последнего поля в реквизите. пусть даже реквизит формы, скрытый, но альтернатив чёт не вижу. к тому же решение достаточно простое и ересью особо не пахнет.
14 ShoGUN
 
05.03.15
06:55
Короче, для обычных форм - свойство формы ТекущийЭлемент работает. Для управляемых - тоже. О чём базар вообще?
15 ShoGUN
 
05.03.15
06:55
+(14) Из элемента добраться к данным - не особо сложно...
16 DES
 
05.03.15
15:52
(14) Подскажи код для Кнопки, плиз.
17 DES
 
05.03.15
16:05
(16)+ Потому что ЭтаФорма.ТекщийЭлемент дает Значение Кнопка.
А мне нужно получить Колонка и Строка табличной части.
18 Nuobu
 
05.03.15
16:08
(17) ЭлементыФормы.Товары.ТекущиеДанные
19 anatoly
 
05.03.15
16:17
(18) я так понял - ему надо сначала узнать какая ТЧ перед этим активна была...
вижу один вариант - в каждой ТЧ в ПриАктивизации изменять реквизит формы ПоследняяАктивнаяТЧ (самодельный)
20 DES
 
05.03.15
16:18
(18) не нужны данные, нужен адрес
21 DES
 
05.03.15
16:19
Короче, табель курсор ставим в нужный день нужного сотрудника, нажимаем кнопку "Прогул" в этот день нужно впендерить "П"
22 DES
 
05.03.15
16:21
Есть
ЭтаФорма.ЭлементыФормы.Табель.ТекущаяКолонка.Имя = "Д31"
и
ЭтаФорма.ЭлементыФормы.Табель.ТекущаяСтрока.НомерСтроки = 6

Как закинуть символ "П" по этим координатам в Табличную часть ?
23 vicof
 
05.03.15
16:22
(0) Элементы.Табель.Текущиеданные.День14 = "П";
24 vicof
 
05.03.15
16:22
ЭлементыФормы.Табель.ТекущаяСтрока[ЭлементыФормы.Табель.ТекущаяКолонка.Имя] = "П"
25 DES
 
05.03.15
16:47
Так, с табличной частью разобрались.
А как тоже самое проделать с тремя полями ввода и одной кнопкой ?
26 vicof
 
05.03.15
16:48
Реквизит1 = "П"
27 anatoly
 
05.03.15
16:49
(25) может попробовать так как в (19) ?
28 vicof
 
05.03.15
16:49
Где реквизит1- данные,  на которые ссылается поле ввода
29 DES
 
05.03.15
16:51
(28) не понял.
Есть 3 поля, в каком поле стоял курсор при нажатии на кнопку ?
30 DES
 
05.03.15
17:01
А как получить Синоним поля?
31 vicof
 
05.03.15
17:03
Попробуй текущийэлемент.значение = "п"
32 DES
 
05.03.15
20:46
по кнопке перехожу на следующий день
ЭлементыФормы.Табель.ТекущаяКолонка.Имя = "Д"+СокрЛ(Строка(Число(ТекКолДень)+1));    

Но активное поле (синяя клетка) не перемещается за активным полем.
Как сделать чтобы перемещалась ?