Changes On Branch kuntashov-develop Вы: nobody
Вход

Many hyperlinks are disabled.
Use anonymous login to enable hyperlinks.

Changes In Branch kuntashov-develop Excluding Merge-Ins

This is equivalent to a diff from 4be9b795c1 to 91216d8790

2012-03-01
09:09
Изменения из ветки kuntashov-develop перенес в основную ветку. check-in: 0e0d0c951e user: kuntashov tags: trunk
08:56
Синхронизировал с основной веткой. Leaf check-in: 91216d8790 user: kuntashov tags: kuntashov-develop
2012-02-29
10:36
Добавлено открытие прав объекта Роль. Добавлены макросы для открытия модулей конфигурации check-in: 4be9b795c1 user: orefkov tags: trunk
06:42
двойной щелчок по таблице открывает объект в дереве метаданных check-in: 590ab7c0c8 user: orefkov tags: trunk
2012-02-28
19:16
Слиты изменения эксперементальной ветки default-macros (http://snegopat.ru/forum/viewtopic.php?f=1&t=123). check-in: 2f64ae860e user: kuntashov tags: kuntashov-develop

Changes to DevTools/immediate.js.

    47     47       }
    48     48   }
    49     49   
    50     50   function macrosЗапуститьОтладчикСкриптов()
    51     51   {
    52     52       runDebugger();
    53     53   }
           54  +
           55  +/* Возвращает название макроса по умолчанию - вызывается, когда пользователь 
           56  +дважды щелкает мышью по названию скрипта в окне Снегопата. */
           57  +function getDefaultMacros() {
           58  +    return 'ОткрытьОкно';
           59  +}
           60  +
    54     61   
    55     62   /*
    56     63    *    Обработчики событий формы
    57     64    */
    58     65   function ОбновлениеОтображения()
    59     66   {
    60     67       // Если надо восстановить положение курсора, сделаем это

Changes to DevTools/pflview.js.

    57     57       if(!form)
    58     58       {
    59     59           form = loadScriptForm(SelfScript.fullPath.replace(/js$/i, 'ssf'), SelfScript.self)
    60     60           walkProfile(profileRoot, form.ProfileTree)
    61     61       }
    62     62       form.Открыть()
    63     63   }
           64  +
           65  +/* Возвращает название макроса по умолчанию - вызывается, когда пользователь 
           66  +дважды щелкает мышью по названию скрипта в окне Снегопата. */
           67  +function getDefaultMacros() {
           68  +    return 'ПоказатьПрофайл';
           69  +}
    64     70   
    65     71   function КоманднаяПанельРазвернутьВсеГруппы(Кнопка)
    66     72   {
    67     73       for(var rowsArray = new Enumerator(form.ProfileTree.Строки);
    68     74           !rowsArray.atEnd(); rowsArray.moveNext())
    69     75       {
    70     76           var row = rowsArray.item();

Changes to DevTools/scriptdev.js.

    69     69       jsCode = jsCode.replace(/КонецПроцедуры/ig, "}");
    70     70       
    71     71       stdcommands.Frntend.ClearMessageWindow.send(); // Очистить окно сообщений.
    72     72       Message(jsCode);
    73     73       
    74     74       return true;
    75     75   }
           76  + 
           77  +/* Возвращает название макроса по умолчанию - вызывается, когда пользователь 
           78  +дважды щелкает мышью по названию скрипта в окне Снегопата. */
           79  +function getDefaultMacros() {
           80  +    return 'Настройка';
           81  +}
           82  +
    76     83    
    77     84   /* **********************************************************
    78     85    *  Реализация функционала скрипта.
    79     86    * ********************************************************* */
    80     87   
    81     88   // Пути хранения настроек скрипта в профайле.
    82     89   var pflPaths = {

Changes to DevTools/testrunner.js.

    28     28       GetTestRunner().Show();
    29     29   }
    30     30   
    31     31   function macrosСкрыть()
    32     32   {
    33     33       GetTestRunner().Close();
    34     34   }
           35  +
           36  +/* Возвращает название макроса по умолчанию - вызывается, когда пользователь 
           37  +дважды щелкает мышью по названию скрипта в окне Снегопата. */
           38  +function getDefaultMacros() {
           39  +    return 'Показать';
           40  +}
           41  +
    35     42   //}
    36     43   
    37     44   ////////////////////////////////////////////////////////////////////////////////////////
    38     45   ////{ TestRunner
    39     46   ////
    40     47   
    41     48   function TestRunner()

Changes to RegExpEditor.js.

    21     21   ////
    22     22   
    23     23   SelfScript.Self['macros������������� ���������� ���������'] = function () {
    24     24       var reEditor = CreateRegExpEditor();
    25     25       reEditor.setTextWindow(GetTextWindow());    
    26     26       reEditor.open();
    27     27   }
           28  +
           29  +/* ���������� �������� ������� �� ��������� - ����������, ����� ������������ 
           30  +������ ������� ����� �� �������� ������� � ���� ���������. */
           31  +function getDefaultMacros() {
           32  +    return '������������� ���������� ���������';
           33  +}
    28     34   
    29     35   ////} �������
    30     36   
    31     37   ////////////////////////////////////////////////////////////////////////////////////////
    32     38   ////{ RegExpEditor
    33     39   ////
    34     40   
................................................................................
   344    350       this.form.RegExSource = this.form.RegExSource.replace(/""/g, '"');
   345    351   }
   346    352   
   347    353   _RegExpEditor.prototype.CmdBarRemoveNewLines = function (������) {
   348    354       this.form.RegExSource = this.form.RegExSource.replace(/\r|\n/g, '');
   349    355   }
   350    356   ////} RegExpEditor - ����������� ������� �����
   351         -
   352         -

Changes to author.js.

    35     35   
    36     36   SelfScript.self['macrosНастройка'] = function() {
    37     37       // form - неявно определяемая глобальная переменная.
    38     38       form = loadScriptForm(SelfScript.fullPath.replace(/js$/, 'ssf'), SelfScript.self);
    39     39       form.DoModal();
    40     40       form = null;
    41     41   }
           42  +
           43  +/* Возвращает название макроса по умолчанию - вызывается, когда пользователь 
           44  +дважды щелкает мышью по названию скрипта в окне Снегопата. */
           45  +function getDefaultMacros() {
           46  +    return 'Настройка';
           47  +}
    42     48   
    43     49   ////} Макросы
    44     50   
    45     51   var MarkerTypes = {
    46     52       ADDED: "МаркерДобавлено",
    47     53       REMOVED: "МаркерУдалено",
    48     54       CHANGED:"МаркерИзменено"

Changes to autosave.js.

    48     48       // Обработку событий формы привяжем к самому скрипту
    49     49       form = loadScriptForm(pathToForm, SelfScript.self)
    50     50       form.Включить = enabled
    51     51       form.Интервал = interval
    52     52       form.ОткрытьМодально()
    53     53       form = null
    54     54   }
           55  +
           56  +/* Возвращает название макроса по умолчанию - вызывается, когда пользователь 
           57  +дважды щелкает мышью по названию скрипта в окне Снегопата. */
           58  +function getDefaultMacros() {
           59  +    return 'НастройкаАвтоСохранения';
           60  +}
    55     61   
    56     62   // Обработчики нажатий кнопок в форме
    57     63   function ОкНажатие(Элемент)
    58     64   {
    59     65       // Прочитаем значения из формы и если они изменились, сохраним их
    60     66       if(form.Включить != enabled)
    61     67       {

Changes to configCaption.js.

   133    133       {
   134    134           captionExpr = form.Выражение
   135    135           profileRoot.setValue(captionExprPath, captionExpr)
   136    136           setCaption(windows.mainTitle, windows.additionalTitle)
   137    137       }
   138    138       form = null
   139    139   }
          140  +
          141  +/* Возвращает название макроса по умолчанию - вызывается, когда пользователь 
          142  +дважды щелкает мышью по названию скрипта в окне Снегопата. */
          143  +function getDefaultMacros() {
          144  +    return 'Настройка';
          145  +}
   140    146   
   141    147   function КоманднаяПанель1Проверить(Кнопка)
   142    148   {
   143    149       var mainTitle = windows.mainTitle, additionalTitle = windows.additionalTitle
   144    150       var mainTitleShort = mainTitle.replace(/^Конфигуратор - /, "")
   145    151       MessageBox(eval(form.Выражение))
   146    152   }
   147    153   
   148    154   function КоманднаяПанель1ОК(Кнопка)
   149    155   {
   150    156       form.Закрыть(true)
   151    157   }

Changes to extSearch.js.

    58     58   }
    59     59   
    60     60   SelfScript.self['macrosПерейти к предыдущему совпадению'] = function() {
    61     61       var es = GetExtSearch();
    62     62       es.Show();
    63     63       es.moveRowCursor(false);
    64     64   }
           65  +
           66  +/* Возвращает название макроса по умолчанию - вызывается, когда пользователь 
           67  +дважды щелкает мышью по названию скрипта в окне Снегопата. */
           68  +function getDefaultMacros() {
           69  +    return 'Открыть окно поиска';
           70  +}
    65     71   
    66     72   ////} Макросы
    67     73   
    68     74   ////////////////////////////////////////////////////////////////////////////////////////
    69     75   ////{ ExtSearch - Расширенный поиск в тексте модуля.
    70     76   ////
    71     77   function ExtSearch() {

Changes to extfiles.js.

     6      6   $addin stdlib
     7      7   
     8      8   /* Скрипт для открытия внешних файлов для Снегопата
     9      9    * Автор        : Пушин Владимир, vladnet@gmail.com
    10     10    * Дата создания: 24.08.2011
    11     11    * Описание     : Добавляет окно из которого можно открывать внешние файлы
    12     12    */
    13         -var мВерсияСкрипта = 1.35
    14         -
    15         -/* Версия 1.35
    16         - * 1. Добавлена возможность обновлять не все каталоги, а только текущий
    17         - * 2. Косметические изменения форм
    18         - * 3. Добавлены горячие кнопки для кнопок обновления каталогов
    19         - * 4. Теперь при обновлении каталога позиция курсора сохраняется
    20         - */
    21         -
    22         -// Зададим путь в профайле
    23         -var pflExtFilesOpenOnStart  = "ExtFiles/OpenOnStart"
    24         -var pflExtShowExtInName     = "ExtFiles/ShowExtInName"
    25         -var pflExtFilesPath         = "ExtFiles/Path"
    26         -var pflExtFilesPathBase     = "ExtFiles/PathBase"
    27         -var pflExtOpen1CExtensions  = "ExtFiles/Open1CExtensions"
    28         -
    29         -// Восстановим настройки
    30         -profileRoot.createValue(pflExtFilesOpenOnStart, false, pflSnegopat)
    31         -profileRoot.createValue(pflExtShowExtInName, true, pflSnegopat)
    32         -profileRoot.createValue(pflExtFilesPath, false, pflSnegopat)
    33         -profileRoot.createValue(pflExtFilesPathBase, false, pflBase)
    34         -profileRoot.createValue(pflExtOpen1CExtensions, СформироватьТзРасширенияФайловПоУмолчанию(), pflSnegopat)
    35         -
    36         -
    37         -var мОткрыватьПриСтарте = profileRoot.getValue(pflExtFilesOpenOnStart)
    38         -var мОтображатьРасширениеФайлаВПредставлении = profileRoot.getValue(pflExtShowExtInName)
    39         -var мТзКаталогиОбщие = profileRoot.getValue(pflExtFilesPath)
    40         -var мТзКаталогиБазы = profileRoot.getValue(pflExtFilesPathBase)
    41         -var мТзРасширенияФайлов = profileRoot.getValue(pflExtOpen1CExtensions);
    42         -var RE_EXTENSIONS = null;
    43         -
    44         -global.connectGlobals(SelfScript)
    45         -
    46         -function ТзКаталоговИнициализировать(пТзКаталоги)
    47         -{
           13  +var мВерсияСкрипта = 1.40
           14  +
           15  +////////////////////////////////////////////////////////////////////////////////////////
           16  +////{ Макросы
           17  +////
           18  +
           19  +// Макрос для вызова окна
           20  +function macrosОткрытьОкноВнешнихФайлов() {
           21  +
           22  +    var pathToForm = SelfScript.fullPath.replace(/js$/, 'ssf')
           23  +    if(!мФормаСкрипта){
           24  +        мФормаСкрипта = loadScriptForm(pathToForm, SelfScript.self) // Обработку событий формы привяжем к самому скрипту
           25  +        мФормаСкрипта.Заголовок="Внешние файлы" //+мВерсияСкрипта        
           26  +        КэшКартинокТиповФайлов = ПолучитьКэшКартинокТиповФайлов(мФормаСкрипта);
           27  +    }
           28  +    мФормаСкрипта.Открыть()
           29  +}
           30  +
           31  +function macrosСвернутьДеревоВнешнихФайлов() {
           32  +
           33  +    if(мАктивноДеревоВнешнихФайлов()==false) return false
           34  +    
           35  +    if(мФормаСкрипта.ЭлементыФормы.ДеревоФайлов.Развернут(мФормаСкрипта.ЭлементыФормы.ДеревоФайлов.ТекущаяСтрока)==false)
           36  +    {
           37  +        if(мФормаСкрипта.ЭлементыФормы.ДеревоФайлов.ТекущаяСтрока.Родитель != undefined)
           38  +            мФормаСкрипта.ЭлементыФормы.ДеревоФайлов.ТекущаяСтрока=мФормаСкрипта.ЭлементыФормы.ДеревоФайлов.ТекущаяСтрока.Родитель
           39  +    }
           40  +    else
           41  +        мФормаСкрипта.ЭлементыФормы.ДеревоФайлов.Свернуть(мФормаСкрипта.ЭлементыФормы.ДеревоФайлов.ТекущаяСтрока)
           42  +}
           43  +
           44  +function macrosРазвернутьДеревоВнешнихФайлов() {
           45  +
           46  +    if(мАктивноДеревоВнешнихФайлов()==false) return false
           47  +    мФормаСкрипта.ЭлементыФормы.ДеревоФайлов.Развернуть(мФормаСкрипта.ЭлементыФормы.ДеревоФайлов.ТекущаяСтрока)
           48  +}
           49  +
           50  +////} Макросы
           51  +
           52  +////////////////////////////////////////////////////////////////////////////////////////
           53  +////{ ФормаСкрипта - обработчики событий.
           54  +////
           55  +
           56  +function КпШапкаОбновить(Элемент) {
           57  +    мОбновитьФайлы()
           58  +}
           59  +
           60  +function КпШапкаОбновитьТекущуюВетку(Элемент) {
           61  +    мОбновитьФайлыТекущейВетки()
           62  +}
           63  +
           64  +function ФильтрПриИзменении(Элемент) {
           65  +    мОбновитьФайлы()
           66  +}
           67  +
           68  +function ПриОткрытии() {
           69  +    мОбновитьФайлы()
           70  +}
           71  +
           72  +function КпШапкаЗакрыть(Элемент) {
           73  +    мФормаСкрипта.Закрыть()
           74  +}
           75  +
           76  +function мАктивноДеревоВнешнихФайлов() {
           77  +    if(мФормаСкрипта==null) return false
           78  +    if(мФормаСкрипта.ВводДоступен()!=true) return false
           79  +    return мФормаСкрипта.ТекущийЭлемент==мФормаСкрипта.ЭлементыФормы.ДеревоФайлов
           80  +}
           81  +
           82  +function КпШапкаРазвернуть(Элемент) {
           83  +    macrosРазвернутьДеревоВнешнихФайлов();
           84  +}
           85  +
           86  +function КпШапкаСправка(Кнопка) {
           87  +    RunApp('http://snegopat.ru/scripts/wiki?name=extfiles.js');
           88  +}
           89  +
           90  +function КпШапкаСвернуть(Элемент) {
           91  +    macrosСвернутьДеревоВнешнихФайлов()
           92  +}
           93  +
           94  +function ДеревоФайловПередНачаломИзменения(пЭлемент, пОтказ) {
           95  +
           96  +    пОтказ.val = true
           97  +    лТекСтрока=пЭлемент.val.ТекущаяСтрока
           98  +    if(лТекСтрока.ЭтоКаталог) return
           99  +    
          100  +    if (МожноОткрытьФайлВКонфигураторе(лТекСтрока.ИмяФайла))
          101  +        stdlib.openFileIn1C(лТекСтрока.ИмяФайла)
          102  +    else 
          103  +        ЗапуститьПриложение(лТекСтрока.ИмяФайла);
          104  +}
          105  +
          106  +function ДеревоФайловПриВыводеСтроки(пЭлемент, пОформлениеСтроки, пДанныеСтроки) {
          107  +
          108  +    лЯчейкаИмя=пОформлениеСтроки.val.Ячейки.Имя
          109  +    лЯчейкаИмя.ОтображатьКартинку=true
          110  +    if(ValueIsFilled(пДанныеСтроки.val.Родитель)==false)
          111  +    {
          112  +        лЯчейкаИмя.Картинка = мФормаСкрипта.ЭлементыФормы.КартинкаПапка.Картинка;
          113  +    }
          114  +    else if(пДанныеСтроки.val.ЭтоКаталог==true)
          115  +    {
          116  +        лЯчейкаИмя.Картинка = мФормаСкрипта.ЭлементыФормы.КартинкаПапка.Картинка;
          117  +    }
          118  +    else
          119  +    {
          120  +        var КартинкаПоРасширению = ПолучитьКартинкуПоРасширению(пДанныеСтроки.val.Тип);
          121  +        лЯчейкаИмя.Картинка = КартинкаПоРасширению ? КартинкаПоРасширению : БиблиотекаКартинок.Форма;
          122  +    }
          123  +        
          124  +}
          125  +
          126  +function КонтекстноеМенюОткрытьПроводник (Кнопка) {
          127  +    var ТекущаяСтрока = мФормаСкрипта.ЭлементыФормы.ДеревоФайлов.ТекущиеДанные;
          128  +    if (ТекущаяСтрока) 
          129  +    {
          130  +        var СтрокаЗапуска = 'explorer.exe "' + ПолучитьКаталогСтрокиДерева(ТекущаяСтрока) + '"';
          131  +        ЗапуститьПриложение(СтрокаЗапуска);
          132  +    }
          133  +}
          134  +
          135  +function КонтекстноеМенюОткрытьКонсоль (Кнопка) {
          136  +    var ТекущаяСтрока = мФормаСкрипта.ЭлементыФормы.ДеревоФайлов.ТекущиеДанные;
          137  +    if (ТекущаяСтрока) 
          138  +    {
          139  +        var Каталог = ПолучитьКаталогСтрокиДерева(ТекущаяСтрока);
          140  +        var СтрокаЗапуска = ПолучитьКомандуЗапускаКонсоли(Каталог);
          141  +        ЗапуститьПриложение(СтрокаЗапуска, Каталог);
          142  +    }
          143  +}
          144  +
          145  +////
          146  +////} ФормаСкрипта - обработчики событий.
          147  +////////////////////////////////////////////////////////////////////////////////////////
          148  +
          149  +////////////////////////////////////////////////////////////////////////////////////////
          150  +////{ Вспомогательные процедуры и функции.
          151  +////
          152  +
          153  +function ТзКаталоговИнициализировать(пТзКаталоги) {
          154  +
    48    155       try{
    49    156           пТзКаталоги = ValueFromStringInternal(пТзКаталоги)
    50    157       }
    51    158       catch(e){
    52    159           пТзКаталоги = v8New("ТаблицаЗначений")
    53    160       }
    54    161       try{ /*тут проверяем не старые ли настройки, раньше хранились в массиве, конвертируем, в будущем удалить*/
................................................................................
    66    173           return лТзКаталоги
    67    174       }
    68    175       catch(e){
    69    176       }
    70    177       return пТзКаталоги
    71    178   }
    72    179   
    73         -мТзКаталогиОбщие = ТзКаталоговИнициализировать(мТзКаталогиОбщие)
    74         -мТзКаталогиБазы = ТзКаталоговИнициализировать(мТзКаталогиБазы)
          180  +function GetAbsolutePathName(pathToFile) {
    75    181   
    76         -мФормаСкрипта=null
    77         -мФормаНастройки=null
    78         -
    79         -if(мОткрыватьПриСтарте==true)
    80         -    macrosОткрытьОкноВнешнихФайлов()
    81         -
    82         -// Макрос для вызова окна
    83         -function macrosОткрытьОкноВнешнихФайлов()
    84         -{
    85         -    var pathToForm = SelfScript.fullPath.replace(/js$/, 'ssf')
    86         -    if(!мФормаСкрипта){
    87         -        мФормаСкрипта = loadScriptForm(pathToForm, SelfScript.self) // Обработку событий формы привяжем к самому скрипту
    88         -        мФормаСкрипта.Заголовок="Внешние файлы" //+мВерсияСкрипта
    89         -    }
    90         -    мФормаСкрипта.Открыть()
    91         -}
    92         -
    93         -function КпШапкаНастройки(Элемент)
    94         -{
    95         -    var pathToForm=SelfScript.fullPath.replace(/.js$/, 'param.ssf')
    96         -    мФормаНастройки=loadScriptForm(pathToForm, SelfScript.self) // Обработку событий формы привяжем к самому скрипту
    97         -    мФормаНастройки.ЭлементыФормы.НадписьВерсия.Заголовок="Версия скрипта:"+мВерсияСкрипта
    98         -    мФормаНастройки.ОткрытьМодально()
    99         -}
   100         -
   101         -function мЗаписатьНастройки()
   102         -{
   103         -    мТзКаталогиОбщие=мФормаНастройки.КаталогиОбщие
   104         -    мТзКаталогиБазы=мФормаНастройки.КаталогиБазы
   105         -    мОткрыватьПриСтарте=мФормаНастройки.ОткрыватьФормуПриЗагрузке
   106         -    мТзРасширенияФайлов = мФормаНастройки.РасширенияФайлов.Скопировать();
   107         -    RE_EXTENSIONS = null; // Регулярку надо переформировать.
   108         -    
   109         -    profileRoot.setValue(pflExtFilesOpenOnStart, мОткрыватьПриСтарте)
   110         -    profileRoot.setValue(pflExtShowExtInName, мОтображатьРасширениеФайлаВПредставлении)
   111         -    profileRoot.setValue(pflExtFilesOpenOnStart, мОткрыватьПриСтарте)
   112         -    profileRoot.setValue(pflExtFilesPath, ValueToStringInternal(мТзКаталогиОбщие))
   113         -    profileRoot.setValue(pflExtFilesPathBase, ValueToStringInternal(мТзКаталогиБазы))
   114         -    profileRoot.setValue(pflExtOpen1CExtensions, мТзРасширенияФайлов)
   115         -    
   116         -    мОбновитьФайлы()
   117         -}
   118         -
   119         -function мЗагрузитьНастройку(пТзКаталоги, пТаблицаКаталогов)
   120         -{
   121         -    for (var лИнд=0; лИнд<пТзКаталоги.Количество(); лИнд++)
   122         -    {
   123         -        лСтрокаТз=пТаблицаКаталогов.Добавить()
   124         -        лСтрокаТз.ИмяКаталога=пТзКаталоги.Получить(лИнд).ИмяКаталога
   125         -        лСтрокаТз.Развернуть=пТзКаталоги.Получить(лИнд).Развернуть
   126         -    }
   127         -}
   128         -
   129         -function НастройкиПриОткрытии()
   130         -{
   131         -    мФормаНастройки.ОткрыватьФормуПриЗагрузке=мОткрыватьПриСтарте
   132         -    мФормаНастройки.ОтображатьРасширениеФайлаВПредставлении=мОтображатьРасширениеФайлаВПредставлении
   133         -    мЗагрузитьНастройку(мТзКаталогиОбщие, мФормаНастройки.КаталогиОбщие);
   134         -    мЗагрузитьНастройку(мТзКаталогиБазы, мФормаНастройки.КаталогиБазы);
   135         -    мФормаНастройки.РасширенияФайлов = мТзРасширенияФайлов;
   136         -}
   137         -
   138         -function КпШапкаЗаписатьИЗакрыть(Кнопка)
   139         -{
   140         -    мЗаписатьНастройки()
   141         -    мФормаНастройки.Закрыть()
   142         -}
   143         -
   144         -function КпШапкаЗаписать(Кнопка)
   145         -{
   146         -    мЗаписатьНастройки()
   147         -}
   148         -
   149         -function мВыбратьКаталог()
   150         -{
   151         -    ДиалогОткрытияФайла=v8New("ДиалогВыбораФайла", РежимДиалогаВыбораФайла.ВыборКаталога)
   152         -    ДиалогОткрытияФайла.ПолноеИмяФайла = ""
   153         -    ДиалогОткрытияФайла.Заголовок = "Выберите каталог"
   154         -    if(ДиалогОткрытияФайла.Выбрать()==false) return ""
   155         -    return ДиалогОткрытияФайла.Каталог
   156         -}
   157         -
   158         -function КаталогиОбщиеИмяКаталогаНачалоВыбора(Элемент, СтандартнаяОбработка)
   159         -{
   160         -    лКаталог=мВыбратьКаталог()
   161         -    if(лКаталог=="") return
   162         -    Элемент.val.Значение=лКаталог
   163         -}
   164         -
   165         -function КаталогиБазыИмяКаталогаНачалоВыбора(Элемент, СтандартнаяОбработка)
   166         -{
   167         -    лКаталог=мВыбратьКаталог()
   168         -    if(лКаталог=="") return
   169         -    Элемент.val.Значение=лКаталог
   170         -}
   171         -
   172         -function GetAbsolutePathName(pathToFile)
   173         -{
   174    182       if (pathToFile.length == 0) return pathToFile
   175    183       //код взят из python для определеня abspath
   176    184       debugger; 
   177    185       backslash = "\\"
   178    186       if (pathToFile.substr(0,4)=='\\\\.\\' ||  pathToFile.substr(0,4)=='\\\\?\\') return pathToFile
   179    187       
   180    188       path = pathToFile.replace("/", "\\")
................................................................................
   251    259           return path+"\\"+b
   252    260       }
   253    261       if (path.substr(path.length-1,1) != "\\" && b.substr(0,1) == "\\") {
   254    262           return path+b;
   255    263       }
   256    264   }
   257    265   
   258         -function мДобавитьФайлы(пПуть, пУзел)
   259         -{
          266  +function мДобавитьФайлы(пПуть, пУзел) {
          267  +
   260    268       var лФайлы=FindFiles(пПуть, '*.*', false)
   261    269       for (var лИнд=0; лИнд<лФайлы.Количество(); лИнд++)
   262    270       {
   263    271           лФайл=лФайлы.Получить(лИнд)
   264    272           
   265    273           if((лФайл.ЭтоКаталог() == false) && (мФормаСкрипта.Фильтр != ''))
   266    274               if(лФайл.ИмяБезРасширения.toLowerCase().search(мФормаСкрипта.Фильтр.toLowerCase()) == -1) continue
................................................................................
   281    289               мДобавитьФайлы(лФайл.ПолноеИмя, лСтрокаДереваФайлов)
   282    290           }
   283    291           else
   284    292               лСтрокаДереваФайлов.Тип=лФайл.Расширение.substr(1)
   285    293       }
   286    294   }
   287    295   
   288         -function ДобавитьКаталоги(пТзКаталоги)
   289         -{
          296  +function ДобавитьКаталоги(пТзКаталоги) {
          297  +
   290    298       var mainFolder = profileRoot.getValue("Snegopat/MainFolder")
   291    299       try {
   292    300           var fso = new ActiveXObject ("Scripting.FileSystemObject")
   293    301       }
   294    302       catch (er) {
   295    303           var fso = null
   296    304       }
................................................................................
   321    329           
   322    330           мДобавитьФайлы(лКаталог, лСтрокаДереваФайлов)
   323    331           лСтрокаДереваФайлов.Строки.Сортировать("ЭтоКаталог Убыв, Имя", true)
   324    332       }
   325    333       мФормаСкрипта.ДеревоФайлов.Строки.Сортировать("ЭтоКаталог Убыв, Имя", true)
   326    334   }
   327    335   
   328         -function мОбновитьФайлы()
   329         -{
          336  +function мОбновитьФайлы() {
   330    337       лТекСтрока=мФормаСкрипта.ЭлементыФормы.ДеревоФайлов.ТекущаяСтрока
   331    338       
   332    339       // Запомним текущую строку
   333    340       лИмяФайлаТекСтроки=""
   334    341       if(лТекСтрока!=undefined) лИмяФайлаТекСтроки=лТекСтрока.ИмяФайла
   335    342       
   336    343       мФормаСкрипта.ДеревоФайлов.Строки.Очистить()
................................................................................
   348    355       if(лИмяФайлаТекСтроки != ""){
   349    356           лСтрокаНайденная=мФормаСкрипта.ДеревоФайлов.Строки.Найти(лИмяФайлаТекСтроки, "ИмяФайла", true)
   350    357           if(лСтрокаНайденная != undefined)
   351    358               мФормаСкрипта.ЭлементыФормы.ДеревоФайлов.ТекущаяСтрока=лСтрокаНайденная
   352    359       }
   353    360   }
   354    361   
   355         -function мОбновитьФайлыТекущейВетки()
   356         -{
          362  +function мОбновитьФайлыТекущейВетки() {
          363  +
   357    364       лТекСтрока=мФормаСкрипта.ЭлементыФормы.ДеревоФайлов.ТекущаяСтрока
   358    365       if(лТекСтрока==undefined) return
   359    366       
   360    367       // Запомним текущую строку
   361    368       лИмяФайлаТекСтроки=лТекСтрока.ИмяФайла
   362    369       
   363    370       while(лТекСтрока.Родитель != undefined) лТекСтрока=лТекСтрока.Родитель
................................................................................
   367    374       
   368    375       // Восстановим текущую строку
   369    376       лСтрокаНайденная=мФормаСкрипта.ДеревоФайлов.Строки.Найти(лИмяФайлаТекСтроки, "ИмяФайла", true)
   370    377       if(лСтрокаНайденная != undefined)
   371    378           мФормаСкрипта.ЭлементыФормы.ДеревоФайлов.ТекущаяСтрока=лСтрокаНайденная
   372    379   }
   373    380   
   374         -function КпШапкаОбновить(Элемент)
   375         -{
   376         -    мОбновитьФайлы()
   377         -}
   378         -
   379         -function КпШапкаОбновитьТекущуюВетку(Элемент)
   380         -{
   381         -    мОбновитьФайлыТекущейВетки()
   382         -}
   383         -
   384         -function ФильтрПриИзменении(Элемент)
   385         -{
   386         -    мОбновитьФайлы()
   387         -}
   388         -
   389         -function ПриОткрытии()
   390         -{
   391         -    мОбновитьФайлы()
   392         -}
   393         -
   394         -function КпШапкаЗакрыть(Элемент)
   395         -{
   396         -    мФормаСкрипта.Закрыть()
   397         -}
   398         -
   399         -function мАктивноДеревоВнешнихФайлов()
   400         -{
   401         -    if(мФормаСкрипта==null) return false
   402         -    if(мФормаСкрипта.ВводДоступен()!=true) return false
   403         -    return мФормаСкрипта.ТекущийЭлемент==мФормаСкрипта.ЭлементыФормы.ДеревоФайлов
   404         -}
   405         -
   406         -function macrosСвернутьДеревоВнешнихФайлов()
   407         -{
   408         -    if(мАктивноДеревоВнешнихФайлов()==false) return false
   409         -    
   410         -    if(мФормаСкрипта.ЭлементыФормы.ДеревоФайлов.Развернут(мФормаСкрипта.ЭлементыФормы.ДеревоФайлов.ТекущаяСтрока)==false)
   411         -    {
   412         -        if(мФормаСкрипта.ЭлементыФормы.ДеревоФайлов.ТекущаяСтрока.Родитель != undefined)
   413         -            мФормаСкрипта.ЭлементыФормы.ДеревоФайлов.ТекущаяСтрока=мФормаСкрипта.ЭлементыФормы.ДеревоФайлов.ТекущаяСтрока.Родитель
   414         -    }
   415         -    else
   416         -        мФормаСкрипта.ЭлементыФормы.ДеревоФайлов.Свернуть(мФормаСкрипта.ЭлементыФормы.ДеревоФайлов.ТекущаяСтрока)
   417         -}
   418         -
   419         -function macrosРазвернутьДеревоВнешнихФайлов()
   420         -{
   421         -    if(мАктивноДеревоВнешнихФайлов()==false) return false
   422         -    мФормаСкрипта.ЭлементыФормы.ДеревоФайлов.Развернуть(мФормаСкрипта.ЭлементыФормы.ДеревоФайлов.ТекущаяСтрока)
   423         -}
   424         -
   425         -function КпШапкаРазвернуть(Элемент)
   426         -{
   427         -    macrosРазвернутьДеревоВнешнихФайлов();
   428         -}
   429         -
   430         -function КпШапкаСправка(Кнопка)
   431         -{
   432         -    RunApp('http://snegopat.ru/scripts/wiki?name=extfiles.js');
   433         -}
   434         -
   435         -function КпШапкаСвернуть(Элемент)
   436         -{
   437         -    macrosСвернутьДеревоВнешнихФайлов()
   438         -}
   439         -
   440         -function ДеревоФайловПередНачаломИзменения(пЭлемент, пОтказ)
   441         -{
   442         -    пОтказ.val = true
   443         -    лТекСтрока=пЭлемент.val.ТекущаяСтрока
   444         -    if(лТекСтрока.ЭтоКаталог) return
   445         -    
   446         -    if (МожноОткрытьФайлВКонфигураторе(лТекСтрока.ИмяФайла))
   447         -        stdlib.openFileIn1C(лТекСтрока.ИмяФайла)
   448         -    else 
   449         -        ЗапуститьПриложение(лТекСтрока.ИмяФайла);
   450         -}
   451         -
   452         -function ДеревоФайловПриВыводеСтроки(пЭлемент, пОформлениеСтроки, пДанныеСтроки)
   453         -{
   454         -    лЯчейкаИмя=пОформлениеСтроки.val.Ячейки.Имя
   455         -    лЯчейкаИмя.ОтображатьКартинку=true
   456         -    if(ValueIsFilled(пДанныеСтроки.val.Родитель)==false)
   457         -        лЯчейкаИмя.Картинка=БиблиотекаКартинок.СоздатьГруппу
   458         -    else if(пДанныеСтроки.val.ЭтоКаталог==true)
   459         -        лЯчейкаИмя.Картинка=БиблиотекаКартинок.ОткрытьФайл
   460         -    else
   461         -        лЯчейкаИмя.Картинка=БиблиотекаКартинок.Форма
   462         -}
   463         -
   464         -function СформироватьТзРасширенияФайловПоУмолчанию() 
   465         -{
          381  +function ПолучитьКаталогСтрокиДерева(СтрокаДерева) {
          382  +    var Файл = v8New('Файл', СтрокаДерева.ИмяФайла);
          383  +    return Файл.ЭтоФайл() ? Файл.Путь : Файл.ПолноеИмя;
          384  +}
          385  +
          386  +function ПолучитьКомандуЗапускаКонсоли(Каталог) {
          387  +    return мКомандаЗапускаКонсоли.replace(/%1/, Каталог);
          388  +}
          389  +
          390  +function СформироватьТзРасширенияФайловПоУмолчанию() {
          391  +
   466    392       var ТЗ = v8New("ТаблицаЗначений");
   467    393       ТЗ.Колонки.Добавить("Расширение");
   468    394   
   469    395       function Расш(расширение) { ТЗ.Добавить().Расширение = расширение; }
   470    396       
   471    397       // Стандартные файлы 1С:Предприятия 8.
   472    398       Расш("txt"); Расш("bmp"); Расш("dib"); Расш("png"); Расш("rle"); 
................................................................................
   476    402   
   477    403       // Файлы Снегопата.
   478    404       Расш("ssf"); Расш("js"); Расш("vbs");
   479    405       
   480    406       return ТЗ;
   481    407   }
   482    408   
   483         -function МожноОткрытьФайлВКонфигураторе(ИмяФайла) 
   484         -{
          409  +function МожноОткрытьФайлВКонфигураторе(ИмяФайла)  {
   485    410       if (!RE_EXTENSIONS) 
   486    411       {
   487    412           var ext = new Array();
   488    413           for (var i=0; i<мТзРасширенияФайлов.Количество(); i++)
   489    414               ext.push(мТзРасширенияФайлов.Get(i).Расширение);
   490    415               
   491         -        RE_EXTENSIONS = new RegExp('\.(?:' + ext.join('|') + ' )$', 'i');
          416  +        RE_EXTENSIONS = new RegExp('\.(?:' + ext.join('|') + ')$', 'i');
   492    417       }
   493    418       
   494    419       return RE_EXTENSIONS.test(ИмяФайла);
   495    420   }
          421  +
          422  +function ПолучитьКэшКартинокТиповФайлов(ФормаСкрипта) {
          423  +    var ЭФ = ФормаСкрипта.ЭлементыФормы;  
          424  +    var cache = {};
          425  +  
          426  +    function add(estr, pic) {
          427  +        var exts = estr.split('|');
          428  +        for (var i=0; i<exts.length; i++)
          429  +            cache[exts[i].toLowerCase()] = pic; 
          430  +    }
          431  +  
          432  +    add('doc|docx|dot|odf', ЭФ.КартинкаТипФайлаDoc.Картинка);
          433  +    add('xls|xlsx|csv', ЭФ.КартинкаТипФайлаXls.Картинка);
          434  +    
          435  +    add('pps|ppsx', ЭФ.КартинкаТипФайлаPps.Картинка);
          436  +    add('pdf|ps', ЭФ.КартинкаТипФайлаPdf.Картинка);
          437  +        
          438  +    add('png|jpg|jpeg|bmp|tif|dib|ico', ЭФ.КартинкаТипФайлаPng.Картинка);
          439  +
          440  +    add('xml', ЭФ.КартинкаТипФайлаXml.Картинка);
          441  +    add('zip', ЭФ.КартинкаТипФайлаZip.Картинка);
          442  +    add('rar', ЭФ.КартинкаТипФайлаRar.Картинка);
          443  +    
          444  +    add('exe|cmd|bat', ЭФ.КартинкаТипФайлаExe.Картинка);
          445  +
          446  +    add('txt', ЭФ.КартинкаТипФайлаTxt.Картинка);    
          447  +    add('geo', ЭФ.КартинкаТипФайлаGeo.Картинка);
          448  +    add('grs', ЭФ.КартинкаТипФайлаGrs.Картинка);
          449  +    add('erf', ЭФ.КартинкаТипФайлаErf.Картинка);
          450  +    add('epf', ЭФ.КартинкаТипФайлаEpf.Картинка);
          451  +    add('mxl', ЭФ.КартинкаТипФайлаMxl.Картинка);
          452  +    
          453  +    add('ssf', ЭФ.КартинкаТипФайлаSsf.Картинка);
          454  +    add('js', ЭФ.КартинкаТипФайлаTxt.Картинка);
          455  +    add('vbs', ЭФ.КартинкаТипФайлаTxt.Картинка);
          456  +    
          457  +    add('unknown', ЭФ.КартинкаТипФайлаUnknown.Картинка);
          458  +
          459  +    return cache;
          460  +
          461  +}
          462  +
          463  +function ПолучитьКартинкуПоРасширению(Расширение) {
          464  +
          465  +    if (КэшКартинокТиповФайлов) {
          466  +        var pic = КэшКартинокТиповФайлов[Расширение.toLowerCase()];
          467  +        return pic ? pic : КэшКартинокТиповФайлов['unknown'];
          468  +    }    
          469  +    return null;
          470  +}
          471  +
          472  +////
          473  +////} Вспомогательные процедуры и функции.
          474  +////////////////////////////////////////////////////////////////////////////////////////
          475  +
          476  +////////////////////////////////////////////////////////////////////////////////////////
          477  +////{ ФормаНастройки - обработчики событий.
          478  +////
          479  +
          480  +function КпШапкаНастройки(Элемент) {
          481  +    var pathToForm=SelfScript.fullPath.replace(/.js$/, 'param.ssf')
          482  +    мФормаНастройки=loadScriptForm(pathToForm, SelfScript.self) // Обработку событий формы привяжем к самому скрипту
          483  +    мФормаНастройки.ЭлементыФормы.НадписьВерсия.Заголовок="Версия скрипта:"+мВерсияСкрипта
          484  +    мФормаНастройки.ОткрытьМодально()
          485  +}
          486  +
          487  +function мЗаписатьНастройки() {
          488  +
          489  +    мТзКаталогиОбщие=мФормаНастройки.КаталогиОбщие
          490  +    мТзКаталогиБазы=мФормаНастройки.КаталогиБазы
          491  +    мОткрыватьПриСтарте=мФормаНастройки.ОткрыватьФормуПриЗагрузке
          492  +    мТзРасширенияФайлов = мФормаНастройки.РасширенияФайлов.Скопировать();
          493  +    мКомандаЗапускаКонсоли = мФормаНастройки.КомандаЗапускаКонсоли;
          494  +    RE_EXTENSIONS = null; // Регулярку надо переформировать.
          495  +    
          496  +    profileRoot.setValue(pflExtFilesOpenOnStart, мОткрыватьПриСтарте)
          497  +    profileRoot.setValue(pflExtShowExtInName, мОтображатьРасширениеФайлаВПредставлении)
          498  +    profileRoot.setValue(pflExtFilesOpenOnStart, мОткрыватьПриСтарте)
          499  +    profileRoot.setValue(pflExtFilesPath, ValueToStringInternal(мТзКаталогиОбщие))
          500  +    profileRoot.setValue(pflExtFilesPathBase, ValueToStringInternal(мТзКаталогиБазы))
          501  +    profileRoot.setValue(pflExtOpen1CExtensions, мТзРасширенияФайлов)
          502  +    profileRoot.setValue(pflExtRunConsoleCommand, мКомандаЗапускаКонсоли)
          503  +    
          504  +    мОбновитьФайлы()
          505  +}
          506  +
          507  +function мЗагрузитьНастройку(пТзКаталоги, пТаблицаКаталогов) {
          508  +
          509  +    for (var лИнд=0; лИнд<пТзКаталоги.Количество(); лИнд++)
          510  +    {
          511  +        лСтрокаТз=пТаблицаКаталогов.Добавить()
          512  +        лСтрокаТз.ИмяКаталога=пТзКаталоги.Получить(лИнд).ИмяКаталога
          513  +        лСтрокаТз.Развернуть=пТзКаталоги.Получить(лИнд).Развернуть
          514  +    }
          515  +}
          516  +
          517  +function НастройкиПриОткрытии() {
          518  +    мФормаНастройки.ОткрыватьФормуПриЗагрузке=мОткрыватьПриСтарте
          519  +    мФормаНастройки.ОтображатьРасширениеФайлаВПредставлении=мОтображатьРасширениеФайлаВПредставлении
          520  +    мЗагрузитьНастройку(мТзКаталогиОбщие, мФормаНастройки.КаталогиОбщие);
          521  +    мЗагрузитьНастройку(мТзКаталогиБазы, мФормаНастройки.КаталогиБазы);
          522  +    мФормаНастройки.РасширенияФайлов = мТзРасширенияФайлов;
          523  +    мФормаНастройки.КомандаЗапускаКонсоли = мКомандаЗапускаКонсоли;
          524  +}
          525  +
          526  +function КпШапкаЗаписатьИЗакрыть(Кнопка) {
          527  +    мЗаписатьНастройки()
          528  +    мФормаНастройки.Закрыть()
          529  +}
          530  +
          531  +function КпШапкаЗаписать(Кнопка) {
          532  +    мЗаписатьНастройки()
          533  +}
          534  +
          535  +/* Возвращает название макроса по умолчанию - вызывается, когда пользователь 
          536  +дважды щелкает мышью по названию скрипта в окне Снегопата. */
          537  +function getDefaultMacros() {
          538  +    return 'ОткрытьОкноВнешнихФайлов';
          539  +}
          540  +
          541  +function мВыбратьКаталог() {
          542  +    ДиалогОткрытияФайла=v8New("ДиалогВыбораФайла", РежимДиалогаВыбораФайла.ВыборКаталога)
          543  +    ДиалогОткрытияФайла.ПолноеИмяФайла = ""
          544  +    ДиалогОткрытияФайла.Заголовок = "Выберите каталог"
          545  +    if(ДиалогОткрытияФайла.Выбрать()==false) return ""
          546  +    return ДиалогОткрытияФайла.Каталог
          547  +}
          548  +
          549  +function КаталогиОбщиеИмяКаталогаНачалоВыбора(Элемент, СтандартнаяОбработка) {
          550  +    лКаталог=мВыбратьКаталог()
          551  +    if(лКаталог=="") return
          552  +    Элемент.val.Значение=лКаталог
          553  +}
          554  +
          555  +function КаталогиБазыИмяКаталогаНачалоВыбора(Элемент, СтандартнаяОбработка) {
          556  +    лКаталог=мВыбратьКаталог()
          557  +    if(лКаталог=="") return
          558  +    Элемент.val.Значение=лКаталог
          559  +}
          560  +
          561  +function НадписьCmdExeНажатие (Элемент) {
          562  +	мФормаНастройки.КомандаЗапускаКонсоли = Элемент.val.Заголовок;
          563  +}
          564  +
          565  +function НадписьFarExeНажатие (Элемент) {
          566  +	мФормаНастройки.КомандаЗапускаКонсоли = Элемент.val.Заголовок;
          567  +}
          568  +
          569  +////
          570  +////} ФормаНастройки - обработчики событий.
          571  +////////////////////////////////////////////////////////////////////////////////////////
          572  +
          573  +////////////////////////////////////////////////////////////////////////////////////////
          574  +////{ Инициализация скрипта
          575  +////
          576  +
          577  +// Зададим путь в профайле
          578  +var pflExtFilesOpenOnStart  = "ExtFiles/OpenOnStart"
          579  +var pflExtShowExtInName     = "ExtFiles/ShowExtInName"
          580  +var pflExtFilesPath         = "ExtFiles/Path"
          581  +var pflExtFilesPathBase     = "ExtFiles/PathBase"
          582  +var pflExtOpen1CExtensions  = "ExtFiles/Open1CExtensions"
          583  +var pflExtRunConsoleCommand = "ExtFiles/RunConsoleCommand"
          584  +
          585  +// Восстановим настройки
          586  +profileRoot.createValue(pflExtFilesOpenOnStart, false, pflSnegopat)
          587  +profileRoot.createValue(pflExtShowExtInName, true, pflSnegopat)
          588  +profileRoot.createValue(pflExtFilesPath, false, pflSnegopat)
          589  +profileRoot.createValue(pflExtFilesPathBase, false, pflBase)
          590  +profileRoot.createValue(pflExtOpen1CExtensions, СформироватьТзРасширенияФайловПоУмолчанию(), pflSnegopat)
          591  +profileRoot.createValue(pflExtRunConsoleCommand, 'cmd.exe /K cd /D "%1"', pflSnegopat)
          592  +
          593  +
          594  +var мОткрыватьПриСтарте = profileRoot.getValue(pflExtFilesOpenOnStart)
          595  +var мОтображатьРасширениеФайлаВПредставлении = profileRoot.getValue(pflExtShowExtInName)
          596  +var мТзКаталогиОбщие = profileRoot.getValue(pflExtFilesPath)
          597  +var мТзКаталогиБазы = profileRoot.getValue(pflExtFilesPathBase)
          598  +var мТзРасширенияФайлов = profileRoot.getValue(pflExtOpen1CExtensions);
          599  +var мКомандаЗапускаКонсоли = profileRoot.getValue(pflExtRunConsoleCommand);
          600  +
          601  +var RE_EXTENSIONS = null;
          602  +
          603  +var КэшКартинокТиповФайлов = {};
          604  +
          605  +global.connectGlobals(SelfScript)
          606  +
          607  +мТзКаталогиОбщие = ТзКаталоговИнициализировать(мТзКаталогиОбщие)
          608  +мТзКаталогиБазы = ТзКаталоговИнициализировать(мТзКаталогиБазы)
          609  +
          610  +мФормаСкрипта=null
          611  +мФормаНастройки=null
          612  +
          613  +if(мОткрыватьПриСтарте==true)
          614  +    macrosОткрытьОкноВнешнихФайлов()
          615  +
          616  +////} Инициализация скрипта
          617  +
   496    618   

Changes to extfiles.ssf.

cannot compute difference between binary files

Changes to extfilesparam.ssf.

cannot compute difference between binary files

Changes to mdNavigator.js.

   367    367       var n = Кнопка.val.Name
   368    368       doAction(function(mdObj){mdObj.editProperty(n)})
   369    369   }
   370    370   // Двойной щелчок по таблице
   371    371   function ТаблицаМетаданныхВыбор(Элемент, ВыбраннаяСтрока, Колонка, СтандартнаяОбработка)
   372    372   {
   373    373       doAction(function(mdObj){mdObj.activateInTree()})
          374  +}
          375  +/* Возвращает название макроса по умолчанию - вызывается, когда пользователь 
          376  +дважды щелкает мышью по названию скрипта в окне Снегопата. */
          377  +function getDefaultMacros()
          378  +{
          379  +    return 'Открыть объект метаданных';
   374    380   }

Changes to query_colors.js.

    14     14   
    15     15   function macrosОткрытьОкно()
    16     16   {
    17     17       form = loadScriptForm(SelfScript.fullPath.replace(/js$/i, 'ssf'), SelfScript.self)
    18     18       form.ОткрытьМодально()
    19     19       form = null
    20     20   }
           21  +
           22  +/* Возвращает название макроса по умолчанию - вызывается, когда пользователь 
           23  +дважды щелкает мышью по названию скрипта в окне Снегопата. */
           24  +function getDefaultMacros() {
           25  +    return 'ОткрытьОкно';
           26  +}
    21     27   
    22     28   function ПриОткрытии()
    23     29   {
    24     30       var qec = profileRoot.getFolder("SelectColorCategory")
    25     31       for(var i = 0, c = qec.valuesCount; i < c; i++)
    26     32       {
    27     33           var row = form.Категории.Добавить()

Changes to snippets.js.

    51     51       var sm = GetSnippetsManager();
    52     52       var params = sm.paramsManager.getAllParams();
    53     53       
    54     54       var selParam = sm.selectValue(params);
    55     55       if (selParam)
    56     56           w.SetSelectedText('<%' + selParam + '>');    
    57     57   }
           58  +
           59  +/* Возвращает название макроса по умолчанию - вызывается, когда пользователь 
           60  +дважды щелкает мышью по названию скрипта в окне Снегопата. */
           61  +function getDefaultMacros() {
           62  +    return 'ОткрытьНастройкиСкрипта';
           63  +}
    58     64   
    59     65   ////} Макросы
    60     66   
    61     67   ////////////////////////////////////////////////////////////////////////////////////////
    62     68   ////{ SnippetsManager
    63     69   ////
    64     70   
    65     71   function SnippetsManager() {
    66     72   
    67     73       SnippetsManager._instance = this;
    68     74   
    69         -    this.settings = SettingsManagement.CreateManager(SelfScript.uniqueName, {'TemplateFilesList':v8New('ValueList')});
           75  +    this.settings = SettingsManagement.CreateManager(SelfScript.uniqueName, {'TemplateFilesList':getDefaultTemplatesList()});
    70     76       this.settings.LoadSettings();    
    71     77       
    72     78       this._snippets = {};
    73     79       this._snippetNames = new Array();
    74     80       
    75     81       this.paramsManager = new SnippetParametersManager();         
    76     82       
................................................................................
   544    550       this.form.Close();
   545    551   }
   546    552   
   547    553   SettingsManagerDialog.prototype.CmdBarAbout = function (button) {
   548    554       RunApp('http://snegopat.ru/scripts/wiki?name=snippets.js');
   549    555   }
   550    556   
   551         -SettingsManagerDialog.prototype.CmdBarStListAddStFile = function (button) {
   552         -    
          557  +SettingsManagerDialog.prototype.selectTemplateFiles = function (multiselect) {
          558  +
   553    559       var dlg = v8New('FileDialog',  FileDialogMode.Open);
   554         -    dlg.Multiselect = true;
          560  +    dlg.Multiselect = multiselect ? true : false;
   555    561       dlg.CheckFileExist = true;
   556    562       dlg.Filter = "Файлы шаблонов (*.st)|*.st|Все файлы|*";
   557    563       
   558    564       if (dlg.Choose())
          565  +        return multiselect ? dlg.SelectedFiles : dlg.FullFileName;
          566  +        
          567  +    return null;
          568  +}
          569  +
          570  +SettingsManagerDialog.prototype.CmdBarStListAddStFile = function (button) {
          571  +
          572  +    var selected = this.selectTemplateFiles(true);    
          573  +    if (selected)
   559    574       {
   560    575           this.form.Modified = true;
   561    576           
   562         -        for(var  i=0; i<dlg.SelectedFiles.Count(); i++)
   563         -        {   
   564         -            var path = dlg.SelectedFiles.Get(i);
   565         -            if (!this.form.TemplateFilesList.FindByValue(path))
   566         -                this.form.TemplateFilesList.Add(path);
   567         -        }
          577  +        for (var i=0; i<selected.Count(); i++)
          578  +            this.form.TemplateFilesList.Add().Value = selected.Get(i);
   568    579       }
   569    580   }
   570    581   
   571    582   SettingsManagerDialog.prototype.CmdBarStListDeleteStFile = function (button) {
   572    583       var curRow = this.form.Controls.TemplateFilesList.CurrentRow;
   573    584       if (curRow)
   574    585       {
   575    586           this.form.TemplateFilesList.Delete(curRow);
   576    587           this.form.Modified = true;        
   577    588       }
   578    589   }
          590  +
          591  +SettingsManagerDialog.prototype.TemplateFilesListValueStartChoice = function (Control, DefaultHandler) {
          592  +
          593  +    DefaultHandler.val = false;
          594  +
          595  +    var fname = this.selectTemplateFiles(false);    
          596  +    if (fname)
          597  +    {
          598  +        this.form.Modified = true;
          599  +        Control.val.Value = fname;
          600  +    }    
          601  +}
   579    602   
   580    603   SettingsManagerDialog.prototype.OnOpen = function() {
   581    604   }
   582    605   
   583    606   SettingsManagerDialog.prototype.BeforeClose = function(Cancel, StandardHandler) {
   584    607   
   585    608       StandardHandler.val = false;
................................................................................
   599    622       }	
   600    623       
   601    624       Cancel.val = false;
   602    625   }
   603    626   
   604    627   ////} SettingsManagerDialog 
   605    628   
          629  +////{ Вспомогательные функции для работы с настройками. 
          630  +function getDefaultTemplatesList() {
          631  +    var tplList = v8New('ValueTable');
          632  +    tplList.Columns.Add('Value');
          633  +    return tplList;
          634  +}
          635  +
          636  +function __convertSettingsFromValueListToValueTable() {
          637  + 
          638  +    /* Изначально настройки хранились в СпискеЗначений. 
          639  +    Возникла необходимость переделать на ТаблицуЗначений.
          640  +    Данная процедура выполняет конвертацию. */
          641  +    
          642  +    var pflSnippets = SelfScript.uniqueName + '/TemplateFilesList';
          643  +    var defaultTplList = getDefaultTemplatesList();
          644  +    
          645  +    profileRoot.createValue(SelfScript.name, defaultTplList, pflSnegopat);    
          646  +    var tplList = profileRoot.getValue(pflSnippets);
          647  +    
          648  +    if (toV8Value(tplList).typeName() == 'ValueList')
          649  +    {
          650  +        for(var i=0; i<tplList.Count(); i++)
          651  +            defaultTplList.Add().Value = tplList.Get(i).Value; 
          652  +    }
          653  +    
          654  +    profileRoot.setValue(pflSnippets, defaultTplList);
          655  +
          656  +}
          657  +////} Вспомогательные функции для работы с настройками. 
          658  +
   606    659   ////////////////////////////////////////////////////////////////////////////////////////
   607    660   ////{ Startup
   608    661   ////
   609    662   function GetSnippetsManager() {
   610    663       if (!SnippetsManager._instance)
   611    664           new SnippetsManager();
   612    665           
   613    666       return SnippetsManager._instance;
   614    667   }
          668  +
          669  +//{ Конвертация значения настройки TemplateFilesList из списка значений в таблицу значений.
          670  +__convertSettingsFromValueListToValueTable();
          671  +//}
   615    672   
   616    673   events.connect(snegopat, "onProcessTemplate", GetSnippetsManager());
   617    674   
   618    675   ////} Startup 

Changes to snippets.settings.ssf.

cannot compute difference between binary files