Имя: Пароль:
1C
1С v8
Переключение раскладки клавиатуры из 1С
0 Web00001
 
14.03.13
11:07
Доброго всем времени суток. Есть у нас сканер которым мы сканируем ean128 штрихкоды, в режиме клавиатуры. Если стоит русская раскладка, то мы вместо штрихкода, там где буквы, получаем черти че. В режим эмуляции компорта сканер переключаться отказался. Не то, что отказался, судя по документации, не умеет он этого. Возник вопрос как при созданни обработки которая подключает сканер, "ТОСервер" переключать язык на английский. Гугл показал на библиотеку dynwrap.dll и примеры как ей пользоваться в 1С. Вот только при переключении с ее помощью раскладки на английскую, обратно на русскую уже переключить никак. Может в винде(win7x64) проблема, может еще в чем то. Проблему победить не удалось. Может есть еще какие то варианты решения вопроса? Вообще идеальный вариант, ловить событие ДО сканирования, переключать, читать, переключать обратно. Но вроде как это невозможно. Тогда можно было бы остановиться на вопросе переключения раскладки, при подключении торгового оборудования.
1 pessok
 
14.03.13
11:09
(0)

СменитьРаскладку("англ");

Пока ПолучитьСерверТО() Цикл

КонецЦикла

СменитьРаскладку("рус");

не выйдет?
2 Web00001
 
14.03.13
11:13
>>СменитьРаскладку("англ");
Это ты про что? про dynwrap.dll? или про что?
3 pessok
 
14.03.13
11:14
(2) про него самого
4 Web00001
 
14.03.13
11:20
Открываем к примеру справочник номенклатура.
В обработке ТО при создании срабатывает
СменитьРаскладку("англ");
Раскладка переключается, все ок, пользователь отсканировал что то, и теперь хочет найти что в справочнике написав строку по русски. Меняет раскладку на русскую. Она обратно через 2 секунды английская. И так везде в пределах окна 1С.
5 pessok
 
14.03.13
11:21
6 pessok
 
14.03.13
11:22
+(5) в последнем посте треш и угар, но оно сработает :)
7 pessok
 
14.03.13
11:24
т.е. суть в том, что не надо использовать длл-ку, создаешь wscript, передаешь тупо Ctrl+Shift, радуешься
8 Sserj
 
14.03.13
11:26
(7) А если сотня юзверей и у половины раскладка по другому меняется?
9 pessok
 
14.03.13
11:28
(8) [HKEY_CURRENT_USER\Control Panel\Input Method\Hot Keys
10 pessok
 
14.03.13
11:31
+(9) из реестра получаем метод смены раскладки, в зависимости от него жмакает кнопки. благо, в венде вариантов немного. а в невенде и .dll работать не будет :)
11 Sserj
 
14.03.13
11:32
(9) А из вебклиента есть доступ к реестру?
12 pessok
 
14.03.13
11:33
(11) а из веб клиента можно выполнить .dll?
13 pessok
 
14.03.13
11:34
да и обработка торгового оборудования через веб-клиент - этапять :)
14 Web00001
 
14.03.13
11:35
>>передаешь тупо Ctrl+Shift, радуешься
а у пользователя стоит английская в этот момент, и радостно меняется на русскую.
Юзер один, вебклиента нет
15 pessok
 
14.03.13
11:37
(14) ну что ты в самом деле. получи сначала, какую раскладку юзверь использует, потом решай, менять или нет
16 йети
 
14.03.13
11:39
(0) можно использовать компоненту Ежика,
а можно
   Если        Симв = "А" Тогда СимвЛат = "F"
   ИначеЕсли    Симв = "Б" Тогда СимвЛат = "<"
   ИначеЕсли    Симв = "В" Тогда СимвЛат = "D"
       ...
17 pessok
 
14.03.13
11:40
(16) о, кстати, да :)
18 Web00001
 
14.03.13
11:45
(15)>> ну что ты в самом деле. получи сначала, какую раскладку юзверь использует
Как?
(16) Это тоже пришло мне в голову, но как то это... неправильно
19 Torquader
 
14.03.13
13:43
(18) Правильное решение - анализ Scan-кодов клавиатуры, а не переданных символов - сканер-то про раскладку вообще не знает, и шлёт нам скан-коды клавиш, веря, что они преобразуются правильно.
20 Web00001
 
14.03.13
15:14
(19)Что там шлет сканер вопрос номер два, что к нам приходит от драйвера сканера, с тем и приходится работать.
21 Torquader
 
14.03.13
15:18
Задача решается кардинально, если написать фильтр-драйвер, который полученные символы от любого устройства будет передавать в виртуальный COM-порт.
Собственно говоря, ничего сложного - нужно сесть и написать.
22 Web00001
 
14.03.13
15:49
Заняться нечем конечно, сесть написать драйвер, еще и заодно прочесть документацию как это делать в объеме книги "Профессиональная разработка в системе 1С:Предприятие 8", причем половина документации будет на английском, также надо будет наверняка и подписать (для винды7x64). Спасибо я наверно пропущу такой этот увлекательнейший но затратный по времени квест.
23 Torquader
 
14.03.13
19:52
(22) Зато результатом будет возможность превращения любого HID-устройства в последовательный порт.
По крайней мере, это вполне реально сделать.

А вот подписать будет намного сложнее, так как требуется регистрация в Microsoft.
24 Web00001
 
15.03.13
03:42
(23)Реально много чего можно сделать, у меня идей на пару жизней вперед. Тока время не резиновое.
Я не хочу быть самым богатым человеком на кладбище. Засыпать с чувством, что за день я сделал какую-нибудь потрясающую вещь — вот что меня интересует. Стив Джобс