8 8
9 9 2. Далее нужно понять, как это все работает в скриптах.
10 10
11 11 По умолчанию методы и свойства объекта designer являются глобальными, т.е. к ним можно обращаться напрямую, а ко всем остальным уже через их имена - например, коллекция аддинов addins или активное текстовое окно snegopat.activeTextWindow()
12 12
13 13 Создавайте файл с расширением .js или .vb
14 14 В качестве его текста в любом редакторе(желательно редактор с поддержкой UTF-8) можно написать простейший код на JScript:
15 -<pre> $engine JScript
15 +<verbatim> $engine JScript
16 16 $uname HelloWorld
17 17 $dname HelloWorld
18 18 Message("Hello World")
19 19 // метод designer.Message
20 -</pre>
20 +</verbatim>
21 21
22 22 или на VBScript:
23 -<pre>
23 +<verbatim>
24 24 $engine VBScript
25 25 $uname HelloWorld
26 26 $dname HelloWorld
27 27 Message "Hello World"
28 28 ' метод designer.Message
29 -</pre>
29 +</verbatim>
30 30
31 31 3. Созданный файл нужно закинуть в папку КореньСнегопатаСДллФайлом\scripts
32 32 и прописать в файле КореньСнегопатаСДллФайлом\addins.ini по примеру
33 33
34 34 4. Далее можно перезагрузить Конфигуратор для загрузки скрипта, но лучше в окне Снегопата щелкнуть правой кнопкой на группе "Пользовательские аддины" и выбрать "Загрузить скрипт", выбрать файл скрипта, он загрузится и
35 35 сразу же в окне сообщений Конфигуратора появится сообщение "Hello World"
36 36
................................................................................
43 43
44 44 * v8New - это полный аналог штатной команды 1С Новый(Тип)
45 45 * В качестве параметра-типа может выступать любая строка, получаемая из кода 1С "" + ТипЗнч(НужныйОбъект)
46 46 * Например, строку из сообщения
47 47 <pre>Сообщить("" + ТипЗнч(РежимДиалогаВыбораФайла));</pre>
48 48
49 49 6. Для <b>открытия файла в Конфигураторе</b> можно использовать аналог следующего кода (пример для JS)
50 -<pre> textDoc = v8New("ТекстовыйДокумент")
50 +<verbatim> textDoc = v8New("ТекстовыйДокумент")
51 51 var file = v8New("Файл", filepath)
52 52 if(file.Существует()){
53 53 textDoc.Прочитать(filepath)
54 54 textDoc.Показать(filepath)
55 - }</pre>
55 + }</verbatim>
56 56
57 57 или следущий прием
58 58 * использовать директиву \$addin stdlib в начале описания скриптов на отдельной строке
59 -<pre> $engine JScript
59 +<verbatim> $engine JScript
60 60 $uname HelloWorld
61 61 $dname HelloWorld
62 62 $addin stdlib
63 -</pre>
63 +</verbatim>
64 64 * само открытие файла производить командой
65 -<pre>stdlib.openFileIn1C(путьФайла)</pre>
65 +<verbatim>stdlib.openFileIn1C(путьФайла)</verbatim>
66 66
67 67 7. Для возможности использования <b>глобальных функций/процедур 1С</b> (ВвестиСтроку,ВвестиЧисло) можно использовать следующий прием:
68 68 <br>использовать директиву \$addin global в начале описания скриптов на отдельной строке и добавить скрипт global в пространство скрипта, т.е. код типа
69 -<pre> $engine JScript
69 +<verbatim> $engine JScript
70 70 $uname HelloWorld
71 71 $dname HelloWorld
72 72 $addin global
73 73
74 74 global.connectGlobals(SelfScript)
75 -</pre>
75 +</verbatim>
76 76
77 77 8. <b>Для отладки скриптов</b> можно использовать:
78 78
79 79 А. отладочную печать
80 80 * JS <pre>Message(" varname <" + varname + ">")</pre>
81 81 * VB <pre>Message " varname <" + varname + ">"</pre>
82 82
83 83 Б. Непосредственную отладку скрипта
84 84 * в JS нужно написать в тексте <i>debugger</i>
85 85 * в VB нужно написать <i>stop</i>
86 86
87 +9. Для работы с <b>текстом активного окна</b> можно использовать библиотечный скрипт Libs\TextWindow.js [http://snegopat.ru/forum/viewtopic.php?f=3&t=48&start=20#p623|Его краткое описание от автора]
87 88
88 89 <hr><div id="d155e40e36c85df8"><i>24.08.2011 11:34:38 orefkov добавил:</i><br />
89 90 Тут возник вопрос по поводу открытия файлов в Конфигураторе.<br>
90 91 В объектной модели снегопата этого нет. Однако, вспомнив, как я открывал ert-шки в Конфигураторе 7ки в опенконфе, решил тряхнуть стариной и провернуть такой же финт ушами.
91 92
92 93 А в опенконфе я их открывал просто - добавлял имя файла в начало MRU (это список недавно открываемых файлов, появляющийся в меню Файл) и посылал команду "Открыть нулевой файл из списка MRU".
93 94