Выбрать поле ввода и установить курсор в крайнее правое положение

1. HaIIpuKoJIe 12.04.18 08:47 Сейчас в теме
Добрый день! Помогите пожалуйста с решением такой задачки, необходимо выбрать поле ввода и поставить курсор в крайнее правое положение.
Выбрать поле ввода можно так:

ЭтаФорма.ТекущийЭлемент = ЭтаФорма.Элементы.КоличествоКопий;

Но так выделяется все поле ввода. А как поставить курсор справа?
1С:Предприятие 8.3 (8.3.11.3034)
По теме из базы знаний
Найденные решения
5. spacecraft 12.04.18 16:38 Сейчас в теме
(4) у нас не арабская вязь. У нас принято читать/писать слева направо. Крайнее правое положение это не 0,0.
ТекущийЭлемент = Элементы.КоличествоКопий;
ПозицияОкончания = СтрДлина(ТекущийЭлемент.ТекстРедактирования) +1;
ТекущийЭлемент.УстановитьГраницыВыделения(ПозицияОкончания, ПозицияОкончания);
alex_bitti; lostcay; +2 Ответить
Остальные ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. Alexey_ 27 12.04.18 08:52 Сейчас в теме
(1)УстановитьГраницыВыделения (SetTextSelectionBounds)


Вариант синтаксиса: По позициям начала и конца выделения в тексте


Синтаксис:
УстановитьГраницыВыделения(<НачальнаяПозиция>, <КонечнаяПозиция>)

Параметры:


<НачальнаяПозиция> (обязательный)
Тип: Число.
Позиция начала выделения в тексте.

<КонечнаяПозиция> (обязательный)
Тип: Число.
Конечная позиция выделения в тексте.
3. HaIIpuKoJIe 12.04.18 13:47 Сейчас в теме
Процедура Команда1(Команда) 
	ЭтаФорма.ТекущийЭлемент = ЭтаФорма.Элементы.КоличествоКопий; 
	ПозицияНачала = 0;
    ПозицияОкончания = 0;
	ЭтаФорма.ТекущийЭлемент.УстановитьГраницыВыделения(ПозицияОкончания);

КонецПроцедуры

Недостаточно фактических параметров. А как будет правильно?
4. HaIIpuKoJIe 12.04.18 16:23 Сейчас в теме
ЭтаФорма.ТекущийЭлемент.УстановитьГраницыВыделения(1,1)

Так работает но выделяет первое значение. (0,0) поставить нельзя
5. spacecraft 12.04.18 16:38 Сейчас в теме
(4) у нас не арабская вязь. У нас принято читать/писать слева направо. Крайнее правое положение это не 0,0.
ТекущийЭлемент = Элементы.КоличествоКопий;
ПозицияОкончания = СтрДлина(ТекущийЭлемент.ТекстРедактирования) +1;
ТекущийЭлемент.УстановитьГраницыВыделения(ПозицияОкончания, ПозицияОкончания);
alex_bitti; lostcay; +2 Ответить
6. HaIIpuKoJIe 13.04.18 08:51 Сейчас в теме
(5)
ТекущийЭлемент = Элементы.КоличествоКопий;
ПозицияОкончания = СтрДлина(ТекущийЭлемент.ТекстРедактирования) +1;
ТекущийЭлемент.УстановитьГраницыВыделения(ПозицияОкончания, ПозицияОкончания);

Так курсор становится не в крайнее правое положение а на первый знак справа.
7. spacecraft 13.04.18 08:56 Сейчас в теме
(6) проверить, что не забыли прибавить единицу:
СтрДлина(ТекущийЭлемент.ТекстРедактирования) +1
8. HaIIpuKoJIe 13.04.18 09:02 Сейчас в теме
(7)Извините. Не закомментировал кусок старого кода(неправильного). Спасибо за помощь, Ваш вариант работает.
9. Wezoowy 73 20.02.19 12:20 Сейчас в теме
Для многострочного поля ввода на УФ такой прием не сработал. В этом случае корректно отработало только через подключение обработчика ожидания:

&НаКлиенте
Процедура УстановитьТекущийЭлемент(Команда)
	
	ТекущийЭлемент = Элементы.Комментарий;
	
	ПодключитьОбработчикОжидания("УстановитьГраницыВыделенияКомментария", 0.1, Истина);
	
КонецПроцедуры

&НаКлиенте
Процедура УстановитьГраницыВыделенияКомментария()
	
	ПозицияОкончания = СтрДлина(Элементы.Комментарий.ТекстРедактирования)+1;
	Элементы.Комментарий.УстановитьГраницыВыделения(ПозицияОкончания, ПозицияОкончания);	
	
КонецПроцедуры
Показать
rinik88; Teplotrassamen; u_bar; Prometeus2011; +4 Ответить
10. u_bar 03.03.21 21:41 Сейчас в теме
(9)
Процедура УстановитьГраницыВыделенияКомментария()

ПозицияОкончания = СтрДлина(Элементы.Комментарий.ТекстРедактирования)+1;
Элементы.Комментарий.УстановитьГраницыВыделения(ПозицияОкончания, ПозицияОкончания);

КонецПроцедуры


Не понимаю почему, но работает
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот