Имя: Пароль:
1C
1С v8
Передать нажатие клавиш
0 Лохматые Уши
 
03.06.15
08:58
Салют!
Хочу программно передать нажатие клавиш CTRL+SHIFT+минус в таблицу формы динамического списка для свертки всех узлов.

WSS = Новый COMОбъект("Wscript.shell");
WSS.SendKeys("^+-")

Ничего не передает.
WSS.SendKeys("^+{-}") тоже ничего.

При этом
WSS.SendKeys("^A") для выделения всех строк отрабатывает нормально.
1 Ненавижу 1С
 
гуру
03.06.15
09:03
А почему программно не хочешь свернуть?
2 Лохматые Уши
 
03.06.15
09:05
Хочется таким способом. 2 строчки кода.
3 fisher
 
03.06.15
09:11
(2) Надеюсь, ты экспериментируешь, а не внедряешь сейчас.
4 Лохматые Уши
 
03.06.15
09:14
(3) Естественно экспериментирую, тестирую. Ну а потом внедряю.
Такое ощущение, что ограничение только на 2 одновременно передаваемые клавиши :)
5 fisher
 
03.06.15
09:23
(4) Т.е. ты реально предпочитаешь внедрять менее нативные, надежные и портируемые решения? Аргументируя "хочется"?
6 Лохматые Уши
 
03.06.15
09:25
(5) На 1С-совместимо не претендую, так что можно считать что это просто эксперимент.
7 Сияющий в темноте
 
03.06.15
10:05
SendKeys не всегда все правильно передаёт,особенно,это касается ускорителей.
Пишите внешку и уже посылайте команду в ещё нормальном виде через PostMessage, также есть SendInput
8 Fedor-1971
 
03.06.15
10:07
(0) попробуй так "^+(-)" или "^(+-)", и проверь, что-бы текущим элементом был именно ДС, самой форме фиолетово на переданные символы, кроме Ctrl+Enter.
9 Лохматые Уши
 
03.06.15
10:32
Ребята, всем спасибо, ничего не работает.
Ну да ладно.
10 Лохматые Уши
 
03.06.15
14:12
Вариант решения, может кому пригодится.
    ТекущийЭлемент = Элементы.Список;
    
    WSS = Новый COMОбъект("Wscript.shell");
    WSS.SendKeys("^A");
        
    МассивИдентификаторовСтроки = Элементы.Список.ВыделенныеСтроки;
    Для Индекс = 0 По МассивИдентификаторовСтроки.ВГраница() Цикл
            Сообщить(Индекс);
            Если Элементы.Список.Развернут(Элементы.Список.ТекущаяСтрока) Тогда
                Элементы.Список.Свернуть(МассивИдентификаторовСтроки[Индекс])
            Иначе
                Элементы.Список.Развернуть(МассивИдентификаторовСтроки[Индекс])
            Конецесли
    КонецЦикла
11 Fragster
 
гуру
03.06.15
14:21
^_