Artifact
3cbd3780b3760e81e6f40627d1fbefe57b21f027:
Wiki page
[
Разработка скриптов] by
artbear
2011-08-24 11:12:20.
D 2011-08-24T11:12:20.401
L Разработка\sскриптов
P 004bf91a43a17670c72b8056f06d6c9e225f254a
U artbear
W 5041
<i>Разработка скриптов (начинающим)</i>
1. В первую очередь нужно изучить <b>объектную модель Cнегопата</b>.
Посмотри ссылку [http://forum.script-coding.com/viewtopic.php?id=4481]
там описаны способы, как можно посмотреть объектную модель -
тебе нужно посмотреть COM-объект "Библиотека типов Снегопата" или тупо подключить файл snegopat.dll к одному из этих обозревателей.
2. Далее нужно понять, как это все работает в скриптах.
По умолчанию методы и свойства объекта designer являются глобальными, т.е. к ним можно обращаться напрямую, а ко всем остальным уже через их имена - например, коллекция аддинов addins или активное текстовое окно snegopat.activeTextWindow()
Создавайте файл с расширением .js или .vb
В качестве его текста в любом редакторе(желательно редактор с поддержкой UTF-8) можно написать простейший код на JScript:
<pre> $engine JScript
$uname HelloWorld
$dname HelloWorld
Message("Hello World")
// метод designer.Message
</pre>
или на VBScript:
<pre>
$engine VBScript
$uname HelloWorld
$dname HelloWorld
Message "Hello World"
' метод designer.Message
</pre>
3. Созданный файл нужно закинуть в папку КореньСнегопатаСДллФайлом\scripts
и прописать в файле КореньСнегопатаСДллФайлом\addins.ini по примеру
4. Далее можно перезагрузить Конфигуратор для загрузки скрипта, но лучше в окне Снегопата щелкнуть правой кнопкой на группе "Пользовательские аддины" и выбрать "Загрузить скрипт", выбрать файл скрипта, он загрузится и
сразу же в окне сообщений Конфигуратора появится сообщение "Hello World"
5. В скриптах можно пользоваться штатными объектами 1С - ТаблицаЗначений, Массив, и многие другие с помощью команды <b>v8New</b>
* <b>Для создания объектов 1С</b> используйте код
<pre> таблица = v8New("ТаблицаЗначений")</pre>
* <b>Для получения предопределенных значений 1С, используемых в различных методах 1С,</b> используйте код типа
<pre> режим = v8New("ПеречислениеРежимДиалогаВыбораФайла").Открытие</pre>
* v8New - это полный аналог штатной команды 1С Новый(Тип)
* В качестве параметра-типа может выступать любая строка, получаемая из кода 1С "" + ТипЗнч(НужныйОбъект)
* Например, строку из сообщения
<pre>Сообщить("" + ТипЗнч(РежимДиалогаВыбораФайла));</pre>
6. Для <b>открытия файла в Конфигураторе</b> можно использовать аналог следующего кода (пример для JS)
<pre> textDoc = v8New("ТекстовыйДокумент")
var file = v8New("Файл", filepath)
if(file.Существует()){
textDoc.Прочитать(filepath)
textDoc.Показать(filepath)
}</pre>
7. Для возможности использования <b>глобальных функций/процедур 1С</b> (ВвестиСтроку,ВвестиЧисло) можно использовать следующий прием:
<br>использовать директиву \$addin global в начале описания скриптов на отдельной строке, т.е. код типа
<pre> $engine JScript
$uname HelloWorld
$dname HelloWorld
$addin global
</pre>
8. <b>Для отладки скриптов</b> можно использовать:
<br>отладочную печать
* JS <pre>Message(" varname <" + varname + ">")</pre>
* VB <pre>Message " varname <" + varname + ">"</pre>
<br>Непосредственную отладку скрипта
* в JS нужно написать в тексте debugger
* в VB нужно написать stop
Z b3d241dcb66416f4816889253d2431a9