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