Имя: Пароль:
1C
1С v8
Как определить нажатие CapsLock
, ,
0 lisrws
 
07.07.16
16:41
Подскажите, каким образом можно в 1с определить нажата ли CapsLock в данный момент или нет? Из-за чего, собственно, вопрос: юзверь сканирует внутренний шк вида "So060616001020", но если включен капс, то 1ска получает вот такой шк "sO060616001020" и происходит бяка.
1 mehfk
 
07.07.16
16:42
Приведи все символы к единому регистру и ищи в этом же регистре.
2 mehfk
 
07.07.16
16:43
*все символы в штрихкодах
3 В тылу врага
 
07.07.16
16:52
а если еще и кодировку сменит, то уже 4 варианта
4 lisrws
 
07.07.16
17:02
(1) блин, как-же я сам об этом не догадался... это слишком геморно сделать, так как придется затронуть механизмы формирования этих штрихкодов, хранение уже сформированных, и многое другое.
просьба отвечать по теме, а не предлагать неподходящие варианты.
5 oslokot
 
07.07.16
17:03
легче всего отключить капслук
6 Ёпрст
 
07.07.16
17:04
(4) всего то надо 1 раз привести все штрихкоды к одному регистру
7 Beretta
 
07.07.16
17:08
(0) А чем тебе поможет знание о том в каком положении сейчас находится капслок? И чем это отличается от анализа регистра полученного штрихкода?
8 Beretta
 
07.07.16
17:10
(4) Извините, т-щ программист, за предложение неподходящего варианта, но может вы осилите регистронезависимый поиск и не будете таки иметь нам тут мозг за формирование  и хранение?
9 lisrws
 
07.07.16
17:15
(7) не совсем понимаю, что я должен в регистре анализировать, а главное зачем?
(8) лично вам никто ничего не имеет. есть что по-делу написать - напишите, а если нечего - проходите мимо. практически во всех языках есть возможность анализировать нажатие клавиш и ни у кого не возникает по этому поводу никаких вопросов.
10 Beretta
 
07.07.16
17:17
(7)(8) Дяденька, а вы точно программист?
11 Beretta
 
07.07.16
17:17
(9)
12 mehfk
 
07.07.16
17:19
(4) Еще есть что сказать?
13 франц
 
07.07.16
17:20
настроить сканер не предлагать?
14 Beretta
 
07.07.16
17:20
(5) Предлагаю аппаратное решение. Вырвать его нахрен.
15 lisrws
 
07.07.16
17:21
(13) не предлагать. разные модели(не во всех есть) и дофига.
16 франц
 
07.07.16
17:23
(15) хорошо, не предложу - у тебя распальцовка лучше
17 Ёпрст
 
07.07.16
17:25
Чтоб определить нажатие капслок - переходи на 7.7, там это реализовано.
А так, обработкой переделать все шк в базе к одному регистру, + поправить, чтоб шк при сканировании приводился к одному виду, вне зависимости от расскладки клавиатуры . Усё.
18 lisrws
 
07.07.16
17:27
(17) та это я понимаю, но хотелось малой кровью отделаться.
19 polosov
 
07.07.16
17:32
Вырвать у юзеров капслок, вместо него приклеить кнопу острым концом вверх.
20 Fram
 
07.07.16
17:32
(18) найди кусок кода где происходит поиск и сделать как тебе надо. надеюсь, конфа "правильная" и это одна функция на всю конфу.
21 Beretta
 
07.07.16
17:36
А вот интересно, если пользователь при сканировании будет нажимать шифт, хотя бы даже пачкой документом, брошенной на клавиатуру - это тоже надо отслеживать?
22 Beretta
 
07.07.16
17:37
И отличия левого шифта от правого, потому что надо в сообщении сказать, что отпустить?
23 Смотрящий
 
07.07.16
17:37
Нех вешать сканеры в разрыв клавы, повесь на эмуляцию com-порта. Там это реализовано
24 Fragster
 
гуру
07.07.16
17:38
если сканировать через драйвер, а не тупо как клавиатура в поле ввода - то все работает.
25 lisrws
 
07.07.16
17:41
(22) зажатый правый шифт стопкой документов..... гы, хотел бы на это посмотреть)))))
26 Garykom
 
гуру
07.07.16
17:42
Простейшее решение
ШК = "sO060616001020";
Если Лев(ШК,1)="s" Тогда
ШК = ПеревернутьРегистрШК(ШК);
КонецЕсли;
27 lisrws
 
07.07.16
17:49
(26) коды формируются из названия поставщика как первые две буквы. его юзверь мог назвать и с маленькой буквы, а мог и все заглавные прописать. опять же, завели нового поставщика и я теперь сразу лезу в код, чтобы под него фрагментик накропать? уж лучше все к одному регистру привести, чем я уже и занялся. всем спасибо за активное участие, будем считать вопрос закрытым.
28 Beretta
 
07.07.16
17:52
(25) У меня как-то был случай - сиськами нажимали. Так что тебе многое еще предстоит узнать, юный падаван...
29 lisrws
 
07.07.16
18:01
(28) и как удалось засечь нарушителя?
30 Garykom
 
гуру
07.07.16
18:02
(27) >коды формируются из названия поставщика как первые две буквы

Программист дятел и это не лечится. У нас среди поставщиков только "ЮК блабла" или "ТД БлаБла" штук 50
31 lisrws
 
07.07.16
18:05
(30) мля, причем здесь вы? это основное требование заказчика и никаких тд, юк, ооо и кавычек там сроду небыло
32 Beretta
 
07.07.16
18:08
(29) Только личным присутствием.

Склад, раздолбанные клавиатуры и томные жэнщины. Для работы садятся, подгребают клавиатуру к себе, наклоняются чтобы внимательно смотреть на монитор... и удобно располагают правую часть своего 6 размера как раз в районе курсорных клавиш.

Пока возюкали и кликали только мышкой все более менее работало, однако
33 Garykom
 
гуру
07.07.16
18:09
(31) Если заказчик дятел с ошибочными требованиями, нужно ему об этом намекнуть.
34 Garykom
 
гуру
07.07.16
18:11
(32) Спасает подставка под запястье с очень высоким бортиком (а еще туда можно что то приклеить :)
35 Tateossian
 
07.07.16
18:15
Запрос.Текст =
"ВЫБРАТЬ * ГДЕ
Штрихкод ПОДОБНО ""[sS][Oo]..."""
36 Tateossian
 
07.07.16
18:18
(27) А не по сабжу, если уж такой "упоротый" заказчик, то создавай уникальные пары из двух букв и присваивай их контрагенту в специально отведенное поле.
37 Fram
 
07.07.16
18:19
вообще то, микрософтский скуль, например, нечувствителен к регистру при сранении строк. а что там у постгре?
38 Fragster
 
гуру
07.07.16
18:26
(35) в 1с collation ci, так что в запросе что Аа, что аА - всё едино.
39 Fragster
 
гуру
07.07.16
18:27
(37) это не "майкрософтовский скуль", жэто называется collation или "сортировка"
40 франц
 
07.07.16
19:29
(24) на такие намеки автор оскорбился))
41 франц
 
07.07.16
19:31
(36) если уж на то пошло, у контрагента есть уникальный ИНН..
42 Garykom
 
гуру
07.07.16
19:35
(41) Особенно уникальный в случае разных контрагентов в базе - разных КПП ?
43 Tateossian
 
07.07.16
19:37
(41) Как бы сказать... В базе может быть много контрагентов с одним ИНН, это очень плохой пример.
44 Tateossian
 
07.07.16
19:53
Вот что в гугле нашел. Но это изврат, конечно. Как стартовая точка для решения вполне сгодится. И да - этот код тупо выключает капс.

Сохрани в винде под расширением vbs ws js и запускай командсистемы

Set objShell = CreateObject("WScript.Shell")
Set objWord = CreateObject( "Word.Application" )

if objWord.CapsLock <> 0 then
   ' turn capslock off
   objShell.SendKeys "{capslock}"
end if
objWord.Quit
45 Garykom
 
гуру
07.07.16
20:01
(44) скрипты могут быть запрещены, пусть ВК пишет http://www.freepascal.ru/forum/viewtopic.php?f=5&t=5992 ))

или http://pikabu.ru/story/programmnyiy_indikator_klavish_num_lock_caps_lock_scroll_lock_3416251
46 Tateossian
 
07.07.16
20:48
(45) Там ВК в три строчки пишется, главное шаблон в 500 строк взять типовой и знать куда их вписать. ТС, разберешься? Бери с сайта ИТС NativeApi темплейт.
47 Fragster
 
гуру
08.07.16
11:29
да не надо ничего определять, надо (24)