Имя: Пароль:
1C
1C 7.7
v7: ИерархическийСписок
,
0 247tsm
 
27.02.12
00:06
Добрый день, знатоки,
Вопрос такой: как программно сделать, чтобы при открытии справочника все уровни иерархического списка на форме были сразу открыты?
Я знаю, что интерактивно это можно сделать так: стать на самй верхний уровень и нажать клавишу "*". Но как это сделать программно при открытии справочника?
Одно из решений - направить в буфер клавиатуры эти действия - установка на верхний уровень и нажатие на "*". Но тоже, как это сделать?
Но наверняка, должно быть более правильное решение.
Спасибо.
1 miki
 
27.02.12
00:15
сделай в СП поиск по сабжу. Будешь удивлен.
2 247tsm
 
27.02.12
01:06
(1) я знаю, что в СП описывается ИерархическийСписок, но прочитай внимательнее мой вопрос - как программно сделать, чтобы при открытии справочника все уровни иерархического списка на форме были сразу открыты? А это не описывается. Никаких параметров, открывающих все уровни Иерархического списка нет.
Вот я и спрашиваю, как это сделать?
3 miki
 
27.02.12
01:25
теперь понял - по русски это будет "раскрыть дерево групп".
ХЗ...
4 Darky
 
27.02.12
01:30
Процедура ПриОткрытии()
   ИерархическийСписок(0,1);
КонецПроцедуры

Не?
5 Darky
 
27.02.12
01:31
+4 в модуле формы списка справочника
6 Darky
 
27.02.12
01:33
А...я понял, 4 не подходит
7 АЛьФ_1
 
27.02.12
01:39
Никак.
8 247tsm
 
27.02.12
01:40
Неужели никак нельзя программно раскрыть дерево групп?
9 247tsm
 
27.02.12
01:41
А может можно программно сделать так: стать на самый верх списка и нажать клавишу "*"?
10 Cthulhu
 
27.02.12
01:58
WSH + "*"
11 247tsm
 
27.02.12
02:09
(10) прошу, поясни
12 Cthulhu
 
27.02.12
02:15
13 247tsm
 
27.02.12
03:37
Чтобы развернуть дерево групп, мне нужно при открытии его активизировать и нажать "*".
Я пытаюсь сделать так:

addon=CreateObject("addon1c.commands");    
addon.SendKeys("+{TAB}");   // или так addon.SendKeys("+({TAB})");
addon.SendKeys("*");

или так

addon=CreateObject("addon1c.commands");    
addon.SendKeys("+{TAB}*");   // или так addon.SendKeys("+({TAB})*");

Дерево групп активизируется - команда addon.SendKeys("+{TAB}"), но почему-то не срабатывает следующая команда addon.SendKeys("*")
или единственная команда addon.SendKeys("+{TAB}*").

С WSH то же самое.
Что я делаю не так?
14 Ёпрст
 
27.02.12
09:45
(13) да всё собственно.. ответ в (7) чем не устраивает ?
ЗЫ: рисуй своё дерево групп и рули им как хочешь
15 247tsm
 
27.02.12
23:41
(14) Я понял в какую сторону грызть асфальт - так и делаю. Все хорошо, но частично. Теперь возник вопрос, почему при использовании addon1c.commands или WHS не посылаются куда нужно все символы, заданные в команде:

1. addon=CreateObject("addon1c.commands");    
2. addon.SendKeys("+{TAB}");   // или так addon.SendKeys("+({TAB})");
3. addon.SendKeys("*");

1. и 2. срабатывают, а 3 - нет.

Не отрабатывает полностью и addon.SendKeys("+{TAB}*") - т.е. не посылается *. Я это знаю, т.к. после этих команд мне достаточно просто нажать на * и дерево раскрывается. Но почему * не посылается командно, не понятно.
16 247tsm
 
28.02.12
02:46
... "мертвые с косами стоят" и тишина ...

Неужели никто не сталкивался с таким?
17 Ёпрст
 
28.02.12
18:01
(15)
Это, ты б хотя бы {MULTIPLY} посылал бы что ли..
18 247tsm
 
28.02.12
22:19
(17) Я бы послал, если бы был такой код (я, конечно же, попробовал этот вариант). Но "зараза" пишет Invalid key name.
19 247tsm
 
28.02.12
22:21
Может, кто знает, как послать именно символ "*" с дополнительной цифровой клавиатуры?
20 247tsm
 
28.02.12
23:01
Всем привет, я нашел одно решение.

addon=CreateObject("addon1c.commands");    
addon.SendKeys("+{TAB}");
addon.SendKeys("{RIGHT 15}");

Небольшие пояснения (может кому-нибудь понадобится).
Вторая команда активизирует дерево.
Третья - раскрывает поочередно ветви дерева. Каждое нажатие "стрелки вправо" раскрывает следующий уровень дерева. Чтобы не возиться с количеством уровней, я поставил 15 нажатий стрелки вправо - врядли у кто-то из пользователей создаст больше 15 уровней - тем более их можно ограничить в конфигураторе.

Всем спасибо за мозговой штурм.
Пока
Выдавать глобальные идеи — это удовольствие; искать сволочные маленькие ошибки — вот настоящая работа. Фредерик Брукс-младший