===========================================================================
(c) 2004 Alexander Kuntashov
===========================================================================
Скрипт:  navigator.js ("Навигатор")
Версия:  1.0
Автор:   Александр Кунташов
E-mail:  kuntashov at yandex dot ru
ICQ UIN: 338758861
===========================================================================

    Скрипт "Навигатор" для OpecConf предназначен для быстрого доступа к объектам
матаданных конфигурации или объектам файловой системы, задаваемых в тексте модуля
полным (абсолютным) или относительным (только для путей файловой системы) путем. 

    Термин "путь" в контексте файловой системы используется в своем обычном значении,
в контексте же метаданных под "путем" понимается правильный с точки зрения
синтаксиса и полностью квалифицированный (разыменованный, "полный", если хотите) 
идентификатор объекта метаданных. То есть, для справочника "Номенклатура" его "путь" - 
это строка "Справочник.Номенклатура"; полный путь для формы с идентификатором "ДляПодбора" 
журнала документов "ПлатежныеДокументы" будет выглядеть так:
    Журнал.ПлатежныеДокументы.ДляПодбора 
и т.п.

    "Навигатор" при его вызове с помощью одного из макросов или через пункт меню шаблонов 
пытается интерпретировать часть строки под курсором как путь и открыть его.
Пути вида (слово1.слово2[.cлово2]...) интерпретируются как идентификаторы объектов 
метаданных; иначе путь интерпретируется как путь файловой системы.

    "Часть строки" - это либо текущее выделение (только в пределах одной строки), либо 
подстрока текущей строки, состоящая из символов латинского или русского алфавитов,
точки ('.'), двоеточия (':'), прямого или обратного слешей ('/' или '\'). Все остальные
символы трактуются как разделители и в "путь" попадать не будут. (То есть, пути,
содержащие пробелы, корректно открываться не будут. Обойти этот "баг" можно 
предварительно выделив путь).

    Для объекта метаданных открывается форма диалога или модуль в зависимости от 
используемого макроса/пункта меню шаблонов.

    Внешние файлы с расширениями 'txt', 'ert', 'mxl', '1s', '1c' ('c' - латинская или 
русская) открываются внутри конфигуратора, при этом для внешних обработок/отчетов,
по аналогии с объектами метаданных, в зависимости от использованного макроса/пункта
меню шаблонов открывается форма диалога или модуль. 

    Для всех остальных типов файлов проверяется, какая программа с ними ассоциирована
в операционной системе, и производится попытка открыть этот файл с помощью этой программы.
В случае, если никакой программы с данным типом файлов не сопоставлено, выдается 
сообщение об этом.

    Если путь файловой системы - это путь до папки (каталога), то она открывается с помощью
Проводника.

    В качестве базы для разрешения относительного пути до абсолютного в настоящий момент
в "Навигаторе" используется каталог информационной базы (IBDir).

    Работа с "Навигатором" осуществляется с помощью двух макросов:
        ОткрытьМодульДляОбъектаПодКурсором()
и 
        ОткрытьФормуДляОбъектаПодКурсором().
    Их смысл ясен из идентификаторов макросов. Если путь - это путь файловой системы,
то оба макроса работают одинаково, за исключением случая, когда внешний файл - это
отчет или обработка.

    Рекомендую назначить этим макросам удобные для Вас комбинации клавиш. (Лично
я использую комбинацию Ctrl+Shift+M для макроса ОткрытьМодульДляОбъектаПодКурсором()
и Ctrl+Shift+F для макроса ОткрытьФормуДляОбъектаПодКурсором()).

    Если у Вас установлен плагин "Телепат", то в меню шаблонов контекстного меню редактора 
текстов будет добавлены два пункта меню "Открыть форму..." и "Открыть модуль...". Выполняемые 
с помощью них действия аналогичны описанным выше макросам.

-----------------------------------------------------------------------------

Примеры путей, которые открывает "Навигатор":
                    
    СоздатьОбъект("Справочник.Номенклатура");  (курсор должен быть внутри строки "...")
    Справочник.Контрагенты.ФормаСписка
    ОткрытьФорму("Элемент.Контрагенты"); (курсор должен быть внутри строки "...")
    
    Отчет.АнализСубконто
    Обработка.ОбработкаДокументов  
    
    Документ.Выписка     
    
    Журнал.ПлатежныеДокументы.ФормаСписка
    Журнал.ПлатежныеДокументы.ДляПодбора
    Журнал.Подчиненные
    
    ЖурналРасчетов.Новый1
    ЖурналРасчетов.Новый1.Форма2    
    
    Счет.Основной
    ПланСчетов.Основной.Основная
    
    СоздатьОбъект("Операция"); (курсор должен быть внутри строки "...")      
    
    блаОперация (если выделить слово "Операция", то откроет форму операции)
    
    ЖурналОпераций.ФормаСписка
    
    ЖурналПроводок.Основной
    ЖурналПроводок.ДляОпераций    
    
    D:\home\KuntashovAM\Projects\oconf\docs\names.txt  (откроет внутри конфигуратора)
    
    D:\home\KuntashovAM\Projects\oconf\docs\form.zip  (откроет внешним архиватором)
    
    D:\home\KuntashovAM\Projects\oconf\docs\OpenConf.chm   
    
    D:\temp\bazopuzo.ert    (откроет внутри конфигуратора) 
    
    D:\temp\test.1c   (откроет внутри конфигуратора)
    
    D:\home\KuntashovAM\Bases77\ConvData\ExtForms\CDExport.ert   (откроет внутри конфигуратора)
    
    \\SVETLANA\ПБОЮЛ\ExtForms\PrnForms\1cbd.mxl  (откроет внутри конфигуратора)
    
    .\ExtForms\HKeys.ert       (откроет внутри конфигуратора)
    
    .\ExtForms\CDExport.ert  (откроет внутри конфигуратора)
    
    ..\readme.txt      (откроет внутри конфигуратора)
    
    ..\..\ConvData\ExtForms\CDExport.ert (откроет внутри конфигуратора)  
    
    ..\..\ConvData\ExtForms\   (откроет в Проводнике)

Что бы открыть папку или путь содержащий пробелы, его нужно предварительно выделить
    C:\Program Files\1Cv77.Adm\BIN\Config\scripts\

