Имя: Пароль:
1C
1С v8
Активировать поле ввода после нажатии клавиши
0 Ymryn
 
21.04.15
10:28
Мое почтение. Следующая проблема. Необходимо после нажатия на кнопку возвращать активность на поле ввода.
Через установку текущего элемента получается решить проблему частично. Да, теперь при вводе информации, данные будут вводиться в него, но горизонтальной мигающей черты, сигнализирующей о том, что поле активно: пожалуйста, вводите; не появляется. Для этого надо или нажать enter, либо выбрать поле мышью. Вопрос - как добиться, появление этой горизонтальной черточки? :) Ну или хотя бы пните куда копать.
1 Cyberhawk
 
21.04.15
10:35
Сымитируй нажатие Enter через WSH
2 Капитан Джек Воробей
 
21.04.15
10:37
(0)синтаксис-помощник там посмотри "АктивизироватьПоУмолчанию" Скажи платформа хоть какая?
3 Ymryn
 
21.04.15
10:38
(1) Нее, это я косячу. Надо найти правильную последовательность действий. Установить текущий элемент определенно мало. Надо, что-то еще сделать. Какой-нибудь метод по типу "обновить" вызвать. По крайней мере такое ощущение. Чего-то я не вызываю, что нужно вызвать.
4 Ymryn
 
21.04.15
10:40
(2) 8.3. Активировать по умолчанию делает поле активным при открытии формы. Он уже установлен. Установка его повторно ничего особо не меняет.
5 Serg_1960
 
21.04.15
10:40
(1) Ну да. А потом "сымитируй" нажатый символ, перенос курсора  и ответ на вопрос "Нажатый символ добавить в конец значения поля или поле очищать перед вводом символа?" :)
6 Ymryn
 
21.04.15
10:42
(5) ну должен же быть способ без имитации нажатого символа. Должен же быть метод, чтобы вернуть активность полю.  Я отказываюсь верить, что его нет. Но за подобное направление поисков - спасибо.
7 D_E_S_131
 
21.04.15
10:44
(6) Вызов диалога ввода строки наверное только, если WSH тебе греховно использовать.
8 Serg_1960
 
21.04.15
10:44
9 Капитан Джек Воробей
 
21.04.15
10:44
(6) http://88.198.55.240/topic.php?id=532927 Здесь посмотри
10 Ymryn
 
21.04.15
10:45
благодарю. :)
11 Cyberhawk
 
21.04.15
10:46
О, у меня в Такси поиск по списку работает как надо автору - после нажатия на лупу фокус с прямой мигающей чертой возвращается в поле ввода
12 Ymryn
 
21.04.15
10:47
(11) поделись секретом, как? ) Метод в (9) меня несколько пугает :)
13 Cyberhawk
 
21.04.15
10:51
(12)
на клиенте в процедуре команды

ЭтаФорма.ТекущийЭлемент = Элементы.СтрокаПолнотекстовогоПоиска
14 Cyberhawk
 
21.04.15
10:51
В (9) то же самое для полей ввода описано по ссылке на какой-то другой форум
15 Serg_1960
 
21.04.15
10:51
H A D G E H O G s, если мне память не изменяет, публиковал свою писал на http://catalog.mista.ru/ нетленку по перехвату клавиш клавиатуры. Могу поискать ежели что.
16 Ymryn
 
21.04.15
10:53
(13) неа. Не работает. Поле становится активным, но мигающей черты нет. Это в Такси.
17 Ymryn
 
21.04.15
10:54
(15) благодарю, не надо. Если это останется единственным направлением, я уже сам поищу. Большое спасибо за то, что подсказываете.
Я пока хочу попробовать решить без перехвата, сугубо вызовом имеющихся методов в 1С. Меня смущает, что для такого казалось бы простого действия требуются еще какие-то танцы с бубном. Мне кажется я просто упускаю какую-то деталь из виду.
18 Cyberhawk
 
21.04.15
10:57
У меня тоже Такси. У поля ввода формы путь к данным - это строковый реквизит формы. А у тебя?
19 Cyberhawk
 
21.04.15
10:58
+(18) еще КнопкаОчистки = Да стоит вместо "Авто"
20 Cyberhawk
 
21.04.15
10:59
А, прогнал - черта не появляется, выделяется весь введенный в поле текст
21 Ymryn
 
21.04.15
11:01
(20) угу, поле неполноценно активно. Оно на вставку ctrl+v реагирует после этого, на другие горячие клавиши тоже, а вот на ввод с numpad'а - нет. Надо прожать Enter тогда станет полностью активным.
22 Cyberhawk
 
21.04.15
11:02
Хотя не совсем прогнал - при первом нажатии на кнопку поле активизируется именно с прямой чертой, а при последующих - выделяется весь набранный там текст. Ща гляну что там еще происходит.
23 Cyberhawk
 
21.04.15
11:09
Выяснил: у меня если по введенному в поле тексту что-то нашлось или ничего не нашлось, то обновляется текущая страница у еще одной группы на форме (вид группы - "Страницы"), обновляется статус (типа "Найдено столько-то", либо "Не найдено ничего"). В этом случае поле ввода потом активируется с прямой чертой без выделенного текста.

Элементы.ГруппаАгрегаторСтраниц.ТекущаяСтраница = Элементы.СтраницаТакаяТо

Если же поиск не приводит к обновлению статуса (переприсвоению текущей страницы у группы-агрегатора страниц), то поле ввода активируется с выделенным текстом.
24 Ymryn
 
21.04.15
11:12
(22) У меня несколько другая картина. Если я сразу отказываюсь от выполнения процедуры и делаю присвоение элемента и возврат (у меня пустая ТЗ и обрабатывать нечего), то будет возврат с чертой. Если же идет какая-то обработка и неважно когда я устанавливаю текущий элемент в начале или в конце процедуры - то будет возврат с выделением. Как-то это странно работает.
25 Cyberhawk
 
21.04.15
11:18
(24) сделай написанное в 23 - добавь группу-пустышку и программно меняй ее текущую страницу каждый раз
26 Ymryn
 
21.04.15
11:20
(25) нее, что-то у меня так не срабатывает :) По крайней мере изменить текущую страницу на другую, а потом вернуться на эту - не срабатывает.
27 Cyberhawk
 
21.04.15
11:24
У меня порграммная смена страницы меняется однократно и до программной активизации поля ввода
28 Ymryn
 
21.04.15
11:29
(27) это какое-то шаманство. :) Я не понимаю, как смена страницы связана с тем стало поле активным или нет :) Отдельная тема, что альтаб и вернуться обратно к сеансу 1С тоже сделает поле активным с черточкой. Т.е. возврат переактивация формы сделает поле тоже активным. Но переоткрытие формы через .Открыть() не помогает. Автикивизировать тоже не помогает. ОбновитьОтображение (ну а вдруг?) не помогает. Толи 1С так удачно сделали этот механизм, что он непонятно как работает, то ли я упускаю какую-то очевиднейшую вещь.

p.s. Две строчки шела ( вызвать ком объект, и нажать энтер) решают проблему, но блин, почему приходится так делать :)
29 Ymryn
 
21.04.15
11:40
Ладно, это уже пахнет оккультизмом. Большое спасибо всем откликнувшимся.