Имя: Пароль:
1C
 
Можно ли в 1с автоматически переключать раскладку клавиатуры?
Ø
0 Andron
 
07.07.05
06:48
Сообств. сабж, хотелось бы по умолчанию в форме списка справочника сразу переключать на русский язык. (По умолч. в системе у меня аглицкий).
1 Мымра
 
07.07.05
06:55
2 Морозов Александр
 
07.07.05
07:41
Punto Switcher 2.9
3 orefkov
 
07.07.05
08:10
http://www.script-coding.info/dynwrap.html
4 Andron
 
07.07.05
09:31
(3) спасиб. это помогло. Но хотелось бы без использования дополнительных библиотек.
5 Джинн
 
07.07.05
09:48
То 4. Если это самая большая проблема в твоей жизни, то я тебе искрене завидую.
6 Andron
 
07.07.05
10:05
(5) И к чему ты это сказал? Думаю это мне не помогло :-).
7 smaharbA
 
07.07.05
10:09
(0) погоди немного вечером буду копаться с ВК-неВК, если есть на компе любое приложение из мсофиса то можно хоть черта лысого своять....
8 Джинн
 
07.07.05
10:13
То 6. К тому, что у тебя решены все задачи автоматизации учета и управления - анализ, планирование, учет, отчетность и т.д. и т.п. Осталась единственная серъезная задача - переключить раскладку.
9 Andron
 
07.07.05
10:14
(7) ОК.
10 Andron
 
07.07.05
10:16
(8) Зря иронизируешь, удобство работы с интерфейсом стоит далеко не на последнем месте. Ты можешь себе представить оператора или буха который постоянно при заходе в справочник для поиска переключает раскладку клавы? Думаешь это для них приятное дело?
11 Чеширский
 
07.07.05
10:19
а через скрипты SendKeys("Alt+Shift")?
12 orefkov
 
07.07.05
10:21
В 1С нет команды - СменитьРаскладкуКлавиатуры, следовательно,
без каких-либо доп.библиотек не обойтись.
13 Andron
 
07.07.05
10:23
(12) Команды то нет, но есть возможность использования СOM-технологии, вот меня и интересует какой объект использовать и какой метод. Сам пока не нарыл.
14 Джинн
 
07.07.05
10:24
То 10. Я переключаю раскладку по несколько сотен раз в день. Причем по этого сабжа даже не задумывался о проблеме - все происходит автоматически, не задумываясь.
15 leshik
 
07.07.05
10:25
NetaTable.dll
  Если (ЗагрузитьВнешнююКомпоненту("NetaTable.dll")=1) Тогда
    РовнаяТаблица=СоздатьОбъект("AddIn.NTable");
  Иначе
    Предупреждение("Внешняя компонента AddIn.NetaTable НЕ подключена!!!"+РазделительСтрок+"Работа программы невозможна!!!");
    СтатусВозврата(0);
    Возврат
  КонецЕсли;
Процедура ПриНачалеВыбораЗначения(ИдентЭлемента,ФлагОтбора)
  Если ИдентЭлемента = "Диагноз" Тогда
    РовнаяТаблица.УстановитьРаскладку(67699721);
  ИначеЕсли ИдентЭлемента = "ИсточникФинансирования" Тогда
    РовнаяТаблица.УстановитьРаскладку(68748313);
  КонецЕсли;
КонецПроцедуры
16 Чеширский
 
07.07.05
10:25
так я ж тебе написал про скрипты, или разжевать надо?
wshShell = Новый COMОбъект("WScript.Shell");
Даль по msdn поройся
17 seugenys
 
07.07.05
10:29
(15) :)))
>...
>Предупреждение("Внешняя компонента AddIn.NetaTable НЕ >подключена!!!"+РазделительСтрок+"Работа программы невозможна!!!");
>...
"Работа программы невозможна!!!"
Видимо юзеры совсем не умеют раскладку переключать
18 Gloom
 
07.07.05
10:29
(16)Если только не назаначать спец. сочетания клавиш, то через SendKeys не взлетит...
19 Чеширский
 
07.07.05
10:31
(18) мож ты и прав, я не проверял
20 Andron
 
07.07.05
10:36
(19) твой вариант не работает, я его уже ранее проверял
21 leshik
 
07.07.05
10:37
(17) зря ты так - сидят тетеньки, у которых даже мышки нет и набивают данные, вообще не глядя на экран - оччень быстро надо набивать :-)
22 orefkov
 
07.07.05
10:40
(13) Так через COM ты все равно будешь вызывать ДОПОЛНИТЕЛЬНУЮ библиотеку.
Ну напиши хоть на чем свой COM с методом SetKeyboardLayout и пользуйся им.
23 Bot
 
07.07.05
10:41
Понравилась идея с wScript.Shell.
Кстати, а можно через него же узнать текущую раскладку клавиатуры?
Просто, у некоторых юзеров по умолчанию - русская, у других - английская. Переключаться тож приходится.
Так что проблема актуальна.
24 NS
 
07.07.05
10:43
(23) В принципе можно.
25 Bot
 
07.07.05
10:46
(24) а как?
26 Andron
 
07.07.05
10:46
(22) ты не совсем меня правильно понял, я имел ввиду использование COM объектов которые уже имеюся в Винде по умолчанию. Скажем компонент WSH имеется c W98 по W2003.
27 Эстет хренов
 
07.07.05
10:50
>>(По умолч. в системе у меня аглицкий)
Согласен с Джинном, поставь у пользователей дефолтный русский.
28 Bot
 
07.07.05
10:54
(27) это не выход. Кому то нужен по умолч. англ., а кому - русский. Нельзя ужимать пользователя. Надо сделать все для удобства его работы.
29 Andron
 
07.07.05
10:58
(27) А ты не разу не сталкивался с проблемой захода тупого юзверя в сеть? Особенно когда их дохрена и когда забывают перключить расклаку перед набором пароля? Или у тебя пароли на русском языке?
30 Gloom
 
07.07.05
11:00
(28)Если так печёшься об удобствах юзеров, то давно бы уже написал ВК под это дело. Или взял готовую...
31 Bot
 
07.07.05
11:00
(29) пароли следует создавать в дефолтной раскладке юзера. Да и не поправишь ты здесь ничего.
32 NS
 
07.07.05
11:00
//лл - реквизит формы - тип - строка.
  Активизировать("лл",1);
  wsh.sendKeys("я{ENTER}");
33 seugenys
 
07.07.05
11:01
(29) с одной бухшей дооолго боролся "1С не открывается" (забывала/не хотела раскладку менять + КапсЛук регулярно включала) сделал пароль числовой. Теперь жду когда НамЛук придется идти включать :))
34 Bot
 
07.07.05
11:04
(30) Я не умею их писать.
>> "то давно бы уже написал ВК под это дело. Или взял готовую..." - давно настало сейчас. Считай, этим я и занимаюсь.
Готовую как раз и выбираю среди известных опробованных путей решения проблемы автосмены раскладки клавиатуры.
35 Чеширский
 
07.07.05
11:04
  wshShell = Новый COMОбъект("WScript.Shell");
  wshShell.SendKeys("+^");
36 Чеширский
 
07.07.05
11:06
(33) это у кого по Контрол шифт, у кого по аль шифт - "+%"
37 Gloom
 
07.07.05
11:10
(35,36)В w2k точно не сработает
38 Andron
 
07.07.05
11:10
(35) При использовании этого варианта у меня вообще блокируется раскладка, даже в ручную нельзя переключить, пока не закрою внешний отчет ( в нем пробую).
39 NS
 
07.07.05
11:13
перем wsh;
перем запущено;
Процедура сменить()
  Если сокрлп(лл)="" Тогда
    wsh.SendKeys("+^");
  Иначе
    лл="";
  КонецЕсли;
  Форма.Обновить();
  Запущено=0;
  Форма.ОбработкаОжидания("",0);
КонецПроцедуры
Процедура Сформировать()
  //лл - реквизит формы - тип - строка.
  Если Запущено=0 Тогда
    лл="";
    Активизировать("лл",1);
    wsh.sendKeys("я{ENTER}");
    Запущено=1;
    Форма.ОбработкаОжидания("Сменить",1);
  КонецЕсли;
КонецПроцедуры
wsh=CreateObject("WScript.Shell");
запущено=0;