Имя: Пароль:
1C
1С v8
как программно перейти в конец вводимой строки в поле ввода?
0 kiwi
 
07.10.14
16:57
В форме (обычной) есть поле ввода, в которое после неких манипуляций пользователя программа переходит по Этаформа.ТекущийЭлемент = ... Соответственно, значение в этом поле становится выделенным. Можно как-то сделать, чтобы курсор перешел в конец значения этого поля, т.е. как если бы пользователь нажал кнопку End?
Заранее спасибо.
1 Ник второй
 
07.10.14
16:59
нажми эту кнопку "end" программно
2 kiwi
 
07.10.14
17:07
(1) если с помощью vbscript, то не очень хотелось бы. Или есть вариант сделать это с помощью самой 1С?
3 DmitrO
 
07.10.14
17:11
УстановитьГраницыВыделения
4 kiwi
 
07.10.14
17:50
...в общем, так и не осилил (
5 kiwi
 
07.10.14
17:59
По крайней мере, на однострочное текстовое поле ввода никакого воздействия УстановитьГраницыВыделения не оказывает. Мож руки - того...
6 mrDSide
 
07.10.14
18:07
ВыделенныйТекст (SelectedText)
Использование:

Чтение и запись.
Описание:

Тип: Строка.
Содержит выделенный пользователем текст поля ввода на момент чтения свойства.
При записи в свойство нового текста этот текст заменяет текст, выделенный в настоящий момент. При этом выделение сбрасывается.

Доступность:

Толстый клиент.
Примечание:

При использовании свойства для замены выделенного текста следует иметь в виду следующие особенности:
Если в поле ввода не выделен текст, то записанный текст добавляется начиная с текущей позиции курсора. <b>После добавления текущее положение курсора меняется (перемещается в конец вставленного текста).<\b>
Если поле ввода имеет ограниченную длину, то вставляется столько символов, сколько позволяет размер.
Если тип данных, редактируемый в поле ввода Дата или используется маска, то вставляются только те символы, которые разрешены для данного поля ввода.
7 palpetrovich
 
07.10.14
18:24
(4) имеется ввиду как-то так:
ПолеВвода1 = ПолеВвода1 + " ";
Длина = СтрДлина(ПолеВвода1);
ЭлементыФормы.ПолеВвода1.УстановитьГраницыВыделения(Длина, Длина);
8 HEKPOH
 
07.10.14
18:26
ЭлементыФормы.ПолеВвода.ВыделенныйТекст = ЭлементыФормы.ПолеВвода.Значение;
9 HEKPOH
 
07.10.14
18:27
в (6) правильный ответ, а в (8) - код
10 Евгений Терехов
 
07.10.14
18:28
(6) (8) Внимательно читайте СП!
Если например в строке "Строка" выделено "Стр" и иснользовать код из (8), тогда получите "Строкаока"
11 Евгений Терехов
 
07.10.14
18:29
(10) *использовать
12 palpetrovich
 
07.10.14
18:29
(10) +100500
13 HEKPOH
 
07.10.14
18:30
(10) читайте постановку задачи. цитирую "Соответственно, значение в этом поле становится выделенным. Можно как-то сделать, чтобы курсор перешел в конец значения этого поля, т.е. как если бы пользователь нажал кнопку End? "
14 HEKPOH
 
07.10.14
18:30
+(13) при данной постановке решение в (8) правильное
15 Евгений Терехов
 
07.10.14
18:31
УстановитьГраницыВыделения() - правильный совет: а точнее КонецСтроки = СтрДлина(ЭлементыФормы.ПолеВвода.Значение);
ЭлементыФормы.ПолеВвода.УстановитьГраницыВыделения(КонецСтроки, КонецСтроки);
16 HEKPOH
 
07.10.14
18:31
(15) не взлетит
17 Евгений Терехов
 
07.10.14
18:31
(13) (14) Вот попробуйте свой код и увидите что получится.
18 HEKPOH
 
07.10.14
18:32
(17) я попробовал и "ВыделенныйТекст" (работает), и УстановитьГраницыВыделения (не работает)
19 palpetrovich
 
07.10.14
18:35
(18) что, код в (7) не работает? ...у меня работает! только пробельчик добавлять приходится, дабы не на последнем символе курсор был
20 HEKPOH
 
07.10.14
18:37
(19) "пробельчик" - это замечательно :)
для кода из (8) никаких пробелов добавлять не нужно
21 palpetrovich
 
07.10.14
18:38
(20) да, я не заметил "Соответственно, значение в этом поле становится выделенным" - в этом случае (8) - катит
22 HEKPOH
 
07.10.14
18:39
(21) мир, дружба, жвачка! :)
23 palpetrovich
 
07.10.14
18:41
(22) а то :)