helpf.pro
Регистрация
 +2 
Распечатать

1С 7.x : Как в 1С автоматически переключать раскладку клавиатуры?

Для этого можно использовать функционал следующих внешних компонент:
1. FormEx смотрите тут.
Код 1C v 7.x
 Сервис=СоздатьОбъект("Сервис");
Сервис.РаскладкаКлавиатуры("Russian");


2. Miracle смотрите тут.

3. NetaTable смотрите тут.
Код 1C v 7.x
   Если (ЗагрузитьВнешнююКомпоненту("NetaTable.dll")=1) Тогда
РовнаяТаблица=СоздатьОбъект("AddIn.NTable");
Иначе
Предупреждение("Внешняя компонента AddIn.NetaTable НЕ подключена!!!"+РазделительСтрок+"Работа программы невозможна!!!");
СтатусВозврата(0);
Возврат
КонецЕсли;
Процедура ПриНачалеВыбораЗначения(ИдентЭлемента,ФлагОтбора)
Если ИдентЭлемента = "Диагноз" Тогда
РовнаяТаблица.УстановитьРаскладку(67699721);
ИначеЕсли ИдентЭлемента = "ИсточникФинансирования" Тогда
РовнаяТаблица.УстановитьРаскладку(68748313);
КонецЕсли;
КонецПроцедуры


А можно и без внешних компонент:
Код 1C v 7.x
  //примеры Sserj
Процедура СменитьРаскладку(Реж)
//Можно и просто через wrapper.dll
//Wrapper = CreateObject("DynamicWrapper");
//Wrapper.Register("USER32.DLL", "ActivateKeyboardLayout", "i=ll", "f=s", "r=l");
//Wrapper.Register("USER32.DLL", "LoadKeyboardLayout", "i=sl", "f=s", "r=l");
//rus = Wrapper.LoadKeyboardLayout("00000419", 0);
//eng = Wrapper.LoadKeyboardLayout("00000409", 0);
//Если Реж = "RUS" Тогда
// Wrapper.ActivateKeyboardLayout(rus, 0);
//ИначеЕсли Реж = "EN" Тогда
// Wrapper.ActivateKeyboardLayout(eng , 0);
//КонецЕсли;
Если Не (Константа.ВключатьНамЛоокВТелефонах = Истина) Тогда
Возврат;
КонецЕсли;
wshShell=createObject("wScript.shell");
Если Реж = "RUS" Тогда
wshShell.SendKeys("^(8)",0);
ИначеЕсли Реж = "EN" Тогда
wshShell.SendKeys("^(9)",0);
КонецЕсли;
КонецПроцедуры // СменитьРаскладку(Реж)

//ЕЩЕ

//Обновляем хоткеи смены языков, для подмены в полях где нужна английская раскладка
текст = СоздатьОбъект("текст");
текст.ДобавитьСтроку("Windows Registry Editor Version 5.00");
текст.ДобавитьСтроку("");
текст.ДобавитьСтроку("[HKEY_CURRENT_USER\Control Panel\Input Method\Hot Keys\00000100]");
текст.ДобавитьСтроку("""Virtual Key""=hex:39,00,00,00");
текст.ДобавитьСтроку("""Key Modifiers""=hex:02,c0,00,00");
текст.ДобавитьСтроку("""Target IME""=hex:09,04,09,04");
текст.ДобавитьСтроку("");
текст.ДобавитьСтроку("[HKEY_CURRENT_USER\Control Panel\Input Method\Hot Keys\00000101]");
текст.ДобавитьСтроку("""Virtual Key""=hex:38,00,00,00");
текст.ДобавитьСтроку("""Key Modifiers""=hex:02,c0,00,00");
текст.ДобавитьСтроку("""Target IME""=hex:19,04,19,04");
ИмяФайла = КаталогИБ() + "LangHotKey.reg";
Попытка
текст.Записать(ИмяФайла);
wshShell=createObject("wScript.shell");
StrComand = "regedit /S " + СокрЛП(ИмяФайла);
wshShell.Run(StrComand,1);
//Задерживаемся, иначе скрипт не успевает прочитать файл
Для Сч=1 По 50000 Цикл
КонецЦикла;
ФС.УдалитьФайл(ИмяФайла);
Исключение
КонецПопытки;
Разместил:   Версии: | 7.x |  Дата:   Прочитано: 22973
 +2 
Распечатать
Возможно, вас также заинтересует
Битая ссылка, <Объект не найден>, Уникальный Идентификатор, GUID 76
Когда кто-то удаляет данные из базы без проверки ссылок на эти объекты, то везде где этот объект использовался появляется сообщение вида: Объект не найден (84:bf5600145e3710ab11dda4c605dbe824) . https://helpf.pro/uploads/img/_1-46z7I4U7Ww.png В
Ввод записей в журнал расчетов 1
Добавление записи в журнал расчетов: Метод Новая может быть вызван где угодно, в глобальном модуле, модуле обработок, документов и т.д. Данный метод проверяет корректность заполненных реквизитов журнала расчетов. При вводе новых записей журнал
Значение поля "Код" не уникально или Значение поля "Номер" не уникально 3
При работе в 1С, особенно когда много документов или номера редактируются ручками, можно получить ошибки вида: Значение поля "Код" не уникально или Значение поля "Номер" не уникально Что делать? Перенумеровывать :) Нужно восстановить нуме
Индикатор выполнения 2
// Индикатор выполнения обработки результата запроса Выборка = РезультатЗапроса.Выбрать(); Индикатор = ЭлементыФормы.ИндикаторПеребора; Индикатор.МаксимальноеЗначение = Выборка.Количество(); Индикатор.Значение = 0; Пока Выборка.Следующий()
Как в 7.7 прочитать файл *.csv в UTF-8 0
Процедура Сформировать() Перем Имя,Путь; Если ФС.ВыбратьФайл(0,Имя,Путь," " ," *.*|*.*" ," *" )=0 Тогда Возврат; КонецЕсли; Файл=Путь+Имя; Стрим=СоздатьОбъект(" ADODB.Stream" ); Стрим.Type=2; Стрим.charset=" windows-1251" ; Стрим.Open(); С
Посмотреть все результаты поиска похожих
Вы не можете отправить комментарий анонимно, пожалуйста войдите или зарегистрируйтесь.