Имя: Пароль:
1C
 
Проверка раскладки клавиатуры (рус/англ) в 8.1
0 mortal
 
28.02.11
17:42
Привет, дорогие форумчане!

Есть задачка: при вводе поля на форме у пользователя должна обязательно стоять аглицкая раскладка.
как это реализовать, подскажите, пожалуйста.
1 mortal
 
28.02.11
17:54
надо как-то сделать, чтоб через ввод похожих символов "А" и "A", например, пользователи не обходили контроль уникальности реквизита :)
2 mortal
 
28.02.11
17:56
думал проверку через массив сиволов англ/рус сделать - да не прокатит, надо, чтоб ДО попытки записать новый элемент справочника запрет стоял
3 fimanich
 
28.02.11
17:57
(2)а процедура ПередЗаписью() не подходит?
4 H A D G E H O G s
 
28.02.11
17:58
В

ПередЗаписью()

проверяй поле на наличие латинской ереси в символах.
И будет щастье.
5 H A D G E H O G s
 
28.02.11
17:58
В типовых даже процедура есть
6 H A D G E H O G s
 
28.02.11
17:59
А то ведь есть еще:
Скопипастинг, Групповая обработка, и.т.д.
7 mortal
 
28.02.11
18:00
нет, юзвери будут ругаться. да и некошерно как-то. хочется покрасивше :)
8 mortal
 
28.02.11
18:01
(4) АльфаАвто. не нашел процедуру
9 H A D G E H O G s
 
28.02.11
18:04
Функция СтрокаНаписанаРусскимиИлиЛатинскими(Знач СтрокаПараметр) Экспорт
   
   СтрокаПараметр = СокрЛП(СтрокаПараметр);    

   КоличествоСимволов = СтрДлина(СтрокаПараметр);
   
   Если  КоличествоСимволов > 0 Тогда
       
       ПервыйСимвол = КодСимвола(Лев(СтрокаПараметр,1));
       Русские = (ПервыйСимвол >= 192) или (ПервыйСимвол = 184) или (ПервыйСимвол = 168);
       
       СписокДопустимыхЗначений = Новый Соответствие;
       СписокДопустимыхЗначений.Вставить(184,Истина);   // ё
       СписокДопустимыхЗначений.Вставить(168,Истина);   // Ё
       СписокДопустимыхЗначений.Вставить(45,Истина);   //  "-"

       Для Сч = 1 По КоличествоСимволов Цикл
           
           Код = КодСимвола(Сред(СтрокаПараметр,Сч));  
           
           // Большие латинские буквы: 65 - 90
           // Маленькие латинские буквы: 97 - 122
           // Русские буквы: 192 и больше
           
           //русские:
           Если Русские Тогда
               
               Если (СписокДопустимыхЗначений[Код] = Неопределено) и (Код < 192)  Тогда
                   Возврат Ложь;
               КонецЕсли;

           // латинские:    
           ИначеЕсли (Код <> 45) и ((Код < 65) или    (Код > 90) и (Код < 97) или (Код > 122))  Тогда    
               Возврат Ложь;
           КонецЕсли;
               
       КонецЦикла;
       
       Возврат Истина;

   Иначе    

       Возврат Истина;

   КонецЕсли;
   
КонецФункции // СтрокаНаписанаРусскимиИлиЛатинскими()
10 Asmody
 
28.02.11
18:08
а еще есть АвтоПодборТекста и ОкончаниеВводаТекста.
11 H A D G E H O G s
 
28.02.11
18:09
(10) И групповая обработка справочников и докусментов
12 Stimcool
 
28.02.11
18:16
Процедура УдаритьТокомПриНеправильнойРаскладке()
УдаритьТокомПользователя();
КонецПРоцедуры
13 fimanich
 
28.02.11
18:19
А еще можно как бы клавиатуру виртуальную запускать, а там кнопки - только с нужными символами, а сам реквизит недоступен для редактирования, только через эту форму-клавиатуру.
14 fimanich
 
28.02.11
18:21
+(10) но от групповой обработки не спасет, все равно перед записью надо проверку какую-то делать.
15 mortal
 
28.02.11
18:23
(12) ЭтоПять :)))