Changes To Разработка скриптов Вы: nobody
Вход

Changes to "Разработка скриптов" between 2011-10-19 12:20:21 and 2011-11-19 10:04:18

     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