Имя: Пароль:
1C
 
Вытаскиваем содержимое синтакс-помощника 8.0 (типа будни)
0 Syntax
 
19.09.04
14:25
Используя WSH теоретически можно вытащить синтакс-помощник в текстовый файл, непонятно только зачем это надо... Ну наше дело - технологическое!

-----------------------------
Создаем обработку, в которой пишем:

Shell = Новый COMОбъект("WScript.Shell");
Shell.AppActivate("Конфигуратор - НазваниеКонфигурации");
   
Shell.SendKeys("^{N}");    //новый документ
Shell.SendKeys("^{HOME}");  //в начало списка - Текстовый Документ
Shell.SendKeys("{ENTER}"); //выбрать
   
Shell.SendKeys("^+{F1}"); //открыть синтакс-помощник
Shell.SendKeys("{HOME}"); //перейти на начало
   
Для н=1 По 100 Цикл
       
ОбработкаПрерыванияПользователя();

Shell.SendKeys("{DOWN}"); //следующая ветка
Shell.SendKeys("^(C)");   //скопировать строку в буфер
Shell.SendKeys("{ESC}");  //скрыть синтакс-помощник
Shell.SendKeys("^(V)");   //вставить строку в текст из буфера
Shell.SendKeys("^{END}"); //перейти в конец
Shell.SendKeys("{ENTER}");//перейти на следующую строку
Shell.SendKeys("^+{F1}"); //активировать синтакс-помощник
   
КонецЦикла;

Когда в 1С посылается слишком много нажатий клавиш, то Конфигуратор не успевает их обрабатывать и часть игнорирует. Следовательно цикл сбивается. Для борьбы с этим недугом можно вставить паузы после каждого нажатия:

Для к=1 По 1000 Цикл //пауза
   ОбработкаПрерыванияПользователя();    
КонецЦикла;

Теперь запускаем Конфигуратор и Предприятие.

В Конфигураторе открываем синтакс-помощник, раскрываем его весь (Ctrl-Shift-Серый плюс), ставим курсор на первую тему.

Переходим в Предприятие, запускаем обработку.

-----------------------
-----------------------
Аналогично можно вытащить содержимое тем:

Shell = Новый COMОбъект("WScript.Shell");
   
Shell.AppActivate("Конфигуратор - НазваниеКонфигурации");
   
Shell.SendKeys("^{N}");    //новый документ
Shell.SendKeys("{HOME}");  //в начало списка
Shell.SendKeys("{DOWN}"); //следующая
Shell.SendKeys("{DOWN}"); //следующая - Табличный документ
Shell.SendKeys("{ENTER}"); //выбрать
   
Shell.SendKeys("^+{F1}"); //открыть синтакс-помощник
Shell.SendKeys("{HOME}"); //перейти на начало
   
Для н=1 По 100 Цикл
       
ОбработкаПрерыванияПользователя();
       
Shell.SendKeys("{DOWN}"); //следующая ветка
Shell.SendKeys("{ENTER}"); //активировать ветку
Shell.SendKeys("^(C)");   //скопировать строку в буфер
Shell.SendKeys("{ESC}");  //скрыть синтакс-помощник
Shell.SendKeys("{ENTER}");  //войти в ячейку ТД
Shell.SendKeys("^(V)");   //вставить строку из буфера
Shell.SendKeys("{ENTER}");  //выйти из ячейки и перейти вправо
Shell.SendKeys("^+{F1}"); //активировать синтакс-помощник
Shell.SendKeys("{TAB}"); //перейти в окошко текста СП
Shell.SendKeys("^{A}"); //выделить все
Shell.SendKeys("^(C)");   //скопировать в буфер
Shell.SendKeys("{ESC}");  //скрыть синтакс-помощник
Shell.SendKeys("{ENTER}");  //войти в ячейку ТД
Shell.SendKeys("^(V)");   //вставить строку из буфера
Shell.SendKeys("{ENTER}");  //выйти из ячейки
Shell.SendKeys("{DOWN}"); //перейти на следующую строку
Shell.SendKeys("{HOME}"); //перейти в начало строки
Shell.SendKeys("^+{F1}"); //активировать синтакс-помощник
Shell.SendKeys("+{TAB}"); //перейти обратно в окошко веток
       
КонецЦикла;    
-----------------------------

Это все теория, подтвержденная парой экспериментов. На практике иногда бывают сбои, когда нажатия клавиш посылаются не в том порядке или не в Конфигуратор. Окончательную реализацию оставляю вам.
1 Kreal
 
20.09.04
10:09
Файл C:\Program Files\1cv8\bin\ru\shcntx.hbk является файлом синтаксис помощника. Если его расширение переименовать в zip, а затем WinRar - ом восстановить полученный архив, то мы получим архив c html. В нем правдо будут работать не все ссылки. В той же папке храняться еще подобные файлы. 1С умеет переходить между ними по ссылкам.