Подскажите про автоматическую установку языка для реквизита
Ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
Можно попробовать в событии перед началом ввода запустить кодик, ввести значение и после ввода значения снова запустить этот код, что бы вернуть раскладку в исходное...
Код:
Код:
Попытка
Shell = Новый COMОбъект("WScript.Shell");
Исключение
Сообщить("Ошибка Новый COMОбъект('WScript.Shell')");
Возврат Ложь;
КонецПопытки;
КомандаПереключения = "%+"; // Alt-Shift : значение по умолчанию
//КомандаПереключения = "Ctrl+Shift"; // Alt-Shift : значение по умолчанию
Попытка
// Но значение может быть задано условно, например в виде "Ctrl+Shift".
// Попробуем преобразовать.
Ctrl = Найти(Врег(КомандаПереключения),"CTRL");
Alt = Найти(Врег(КомандаПереключения),"ALT");
Shift = Найти(Врег(КомандаПереключения),"SHIFT");
Если Ctrl > 0 И Shift > Ctrl Тогда
КомандаПереключения = "^+"; // Ctrl-Shift
ИначеЕсли Alt > 0 И Shift > Alt Тогда
КомандаПереключения = "%+"; // Alt-Shift
КонецЕсли;
Если ЗначениеЗаполнено(КомандаПереключения) Тогда
Shell.SendKeys(КомандаПереключения);
Возврат Истина;
КонецЕсли;
Исключение
Возврат Ложь;
КонецПопытки;
Показать
Я творил так: пусть пользователь и не переключает язык, программно тоже не трогаем.
Делаю через событие поля "АвтоПодборТекста". Срабатывает после набора каждой буковки.
Следовательно, обработчик:
Проблема только заполнить "СоответствиеСимволов". И сделать это нужно не в обработчике. А заранее и только 1 раз. Вопрос скорости здесь критичен. На длинные тексты (под 1000) не сгодится.
В итоге получится интересно. Нажал пользователь "Я". Она через долю секунды превратилась в "Z".
Делаю через событие поля "АвтоПодборТекста". Срабатывает после набора каждой буковки.
Следовательно, обработчик:
Стр = Элемент.Значение;
// пробежимся по буковкам
к = СтрДлина(Стр);
Для н = 1 По к Цикл
// если буква русская, то в ненашенскую.
ЛатСим = СоответствиеСимволов.Получить(Сред(Стр, н, 1));
Если ЛатСим <> Неопределено Тогда
Стр = Лев(Стр, н-1) + ЛатСим + Сред(Стр, н+1);
ПоказатьПроблема только заполнить "СоответствиеСимволов". И сделать это нужно не в обработчике. А заранее и только 1 раз. Вопрос скорости здесь критичен. На длинные тексты (под 1000) не сгодится.
В итоге получится интересно. Нажал пользователь "Я". Она через долю секунды превратилась в "Z".
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот