Работа с полем ввода на форме справочника

1. Pluto 27.12.20 11:28 Сейчас в теме
Всем привет!

Суть: делаю поле ввода имени каталога для последующего создания в файловой системе. Задумка такая, чтоб как только пользователь ввёл недопустимый символ, то возможно выдавалось бы предупреждение, и потом обработка не давала бы его ввести.

Результат: при вводе недопустимого символа он стирается из поля ввода, но при этом выделяется вся строка и надо переходить в конец строки, чтоб продолжить ввод.

Код:
НедопустимыеСимволы = "\/:*?""<>|+";
ПоследнийСимвол = Прав(Элементы.НазваниеДляФайловойСистемы.ТекстРедактирования,1);
Индекс = СтрНайти(НедопустимыеСимволы, ПоследнийСимвол);
Если Индекс>0 Тогда
	ОбъектУслуги.НазваниеДляФайловойСистемы = Лев(Элементы.НазваниеДляФайловойСистемы.ТекстРедактирования,СтрДлина(Элементы.НазваниеДляФайловойСистемы.ТекстРедактирования)-1);
КонецЕсли


Пробовал свойство поля 'ОбновлениеТекстаРедактирования' ставить в НЕТ, тогда выделения не происходит, но и недопустимый символ не убирается.

Вопросы:
1. Как программно убрать выделение в поле ввода на форме? Метод УстановитьГраницыВыделения не прокатывает.
2. Как программно поместить курсор в конец строки?
3. Возможно есть другие какие-то варианты решения задачи.
По теме из базы знаний
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. Leon75 27.12.20 13:21 Сейчас в теме
Попробуйте использовать УстановитьГраницыВыделения, но через ПодключитьОбработчикОжидания. Нужна задержка.
3. Aitbay 27.12.20 16:30 Сейчас в теме
если просто имя каталога
и будет только буквенные значения можно использовать маску
4. Istur 1474 24.08.23 00:48 Сейчас в теме
вот так работает, но надо именно на сервере менять значение:
&НаКлиенте
Процедура НаименованиеИзменениеТекстаРедактирования(Элемент, Текст, СтандартнаяОбработка)
	
	НаименованиеВВерхнийРегистр(Текст);
	Элементы.Наименование.УстановитьГраницыВыделения(СтрДлина(Текст) + 1, СтрДлина(Текст) + 1);
	Модифицированность = Истина;
	
КонецПроцедуры

&НаСервере
Процедура НаименованиеВВерхнийРегистр(Текст)
	
	Объект.Наименование = ВРег(Текст);
	
КонецПроцедуры
Показать
Оставьте свое сообщение

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