Имя: Пароль:
1C
1C 7.7
v7: Отследить переход на конкретный реквизит в форме справочника
0 ЯнСмит
 
01.09.23
18:53
Штатно отловить начало редактирования реквизита похоже никак, помнится вроде в Formex'е была подобная возможность, но что-то никак не найду ... подскажите?
1 Guk
 
01.09.23
19:37
(0) текст на форме, в процедуре текста проверяй текущий элемент формы...
2 Guk
 
01.09.23
19:41
+(1) только не в процедуре, а в функции...
3 ЯнСмит
 
01.09.23
19:56
Через Форма.АктивныйЭлемент()?... пробовал не работает ((
4 Guk
 
01.09.23
20:11
вот так работает...

Функция ТекЭлемент()
    Сообщить(Форма.АктивныйЭлемент());                
КонецФункции    


Процедура ПриНачалеВыбораЗначения(ИдентЭлемДиалога,ФлагСтандОбр)
    к=1;
КонецПроцедуры

ТекЭлемент() - формула на закладке Дополнительно текстового элемента диалога на форме...
5 ЯнСмит
 
01.09.23
21:00
Ваня спасибо, работает, но вот только по завершению редактирования реквизита, а вот мне вперлось при начале ))
6 Guk
 
01.09.23
21:10
странно. у меня именно в при начале работает...
7 ЯнСмит
 
02.09.23
13:02
если у тебя задействована ПриНачалеВыбораЗначения, то похоже реквизит сложный (список, перечисление, или справочник), у меня же просто текстовое поле ...
8 Duke1C
 
06.09.23
17:46
(7) Для чего нужно? Так то и "простому текстовому реквизиту" можно кнопку для выбора навесить, чтоб штатная ПриНачалеВыбораЗначения сработала
9 HawkEye
 
06.09.23
17:48
(0) зачем?
10 Злопчинский
 
06.09.23
21:00
(7) я бы порекомендовал присмотреться к (1)
11 ЯнСмит
 
06.09.23
21:46
(8) (9) Это нужно для того чтобы при позиционировании на поле текстового реквизита оно автоматически заполнялось определенной частью другого, уже заполненного реквизита, то бишь типа префикса, причем без потери фокуса, ну а дальше уже юзер добавляет в конец заполненного некие свои символы
(10) а я бы к (3) =))
12 Злопчинский
 
07.09.23
10:50
(11) (3) есть подмножество (1)
13 Злопчинский
 
07.09.23
10:51
(11) ну так После заполнения другого реквизита заполняй как тебе надо твой реквизит, проблема в чем?
14 ЯнСмит
 
07.09.23
15:17
(13) проблема в том, что эти действия разнесены во времени, требуемый реквизит заполняется только при определенных условиях, как правило гораздо позже "родительского"
15 Duke1C
 
07.09.23
17:20
(14) Ну оставь для пользователя только "нужный ему кусок" для заполнения. Т.е. на форме отдельный реквизит, пользователь в него пишет что хочет, а после этого в свой "требуемый реквизит" пиши с нужным префиксом.
16 HawkEye
 
07.09.23
20:53
(11) поле сделай недоступным, кнопку поставь около поля, открывай по ней ввестистроку и заполняй как хочешь....
17 ЯнСмит
 
07.09.23
21:40
Да понятно, что альтернативных вариантов куча, вопрос то был в другом ...
18 Злопчинский
 
07.09.23
23:50
(17) не надо долюиться в бетонную стену. ее можно обойти
19 Злопчинский
 
07.09.23
23:52
(14) да и похрен. родительскиц реквизит отработал - заполни дочерний. стали известны дополнительные какие-то условия - ДОзаполни или (перезаполни) дочерний. Работай по событию окончания редактирования "предыдущих" реквизитов
20 Salimbek
 
08.09.23
08:41
(17) Там несколько вопросов решать придется. Надо ли оно вам?
1) Отлавливать переход на данное поле: Формэксом, например, отлавливать мышь по координатам. И отлавливать переход по кнопке Tab с предыдущего Элемента формы и т.д.
2) Когда вы подставите текст в это поле, и активируете его - этот текст автоматом выделится и Пользователь, начав вводить новые символы сотрет ваше заполнение, так что ему надо будет сначала нажимать кнопку End или ->, или вам через Формэкс отправлять нажатие клавиши.

Я бы сделал через ActivX-элемент, в котором и события можно ловить и свойства можно как угодно редактировать.

(19) Согласен, этот подход более правильный.
Ошибка? Это не ошибка, это системная функция.