Перейти на главную страничку сайта (список статей, файлы для скачивания)

ФОРУМ (здесь можно обсудить эту статью, а также любые проблемы программирования на различных макроязыках и в скриптовых средах)

Скрипты для платформы OpenConf: навигация по коду

Назначение и установка скриптов

Скрипты для платформы OpenConf, о которых пойдёт речь в этой статье, предназначены для повышения удобства навигации по коду конфигурации или внешних обработок 1С:Предприятия. Данные скрипты требуют наличия работающего OpenConf. Получить информацию об OpenConf (в том числе и о том, где его можно скачать вместе со скриптами, о которых пойдёт речь в этой статье) вы можете в статье "Проект OpenConf (Открытый Конфигуратор)" на этом сайте. Скрипты для платформы OpenConf распространяются свободно.

Установка скриптов сводится к следующему:

  1. Установите OpenConf, если он ещё не установлен.
  2. Скопируйте файлы в любой каталог на жёстком диске, например

    C:\Program Files\1Cv77\BIN\config\system\

    Эти файлы не должны лежать непосредственно в подкаталоге "config" каталога исполняемых файлов 1С:Предприятия, так как все dll-файлы из этой папки OpenConf считает плагинами и пытается их загрузить в момент запуска Конфигуратора (а эти файлы плагинами для OpenConf не являются). Зарегистрируйте в системе каждую из вышеуказанных библиотек с помощью regsvr32.exe, если это ещё не сделано. Командная строка регистрации библиотеки может выглядеть, например, так:

    regsvr32.exe "C:\Program Files\1Cv77\BIN\config\system\CommonServices.wsc"

  3. Скопируйте файлы в подкаталог "config\scripts\Navigation\" каталога исполняемых файлов 1С:Предприятия, если этих файлов там ещё нет. Полный путь к этому каталогу может выглядеть, например, так:

    C:\Program Files\1Cv77\BIN\config\scripts\Navigation\

    Примечание: в принципе, папку "Navigation" можно и не создавать, положив скрипты прямо в "config\scripts\". Однако, кроме этих скриптов, для OpenConf существуют и другие скрипты. Если впоследствии вы захотите установить их, хорошо организованная структура папок вам пригодится.
  4. Перезапустите Конфигуратор, если он был запущен.

Использование

Установленные скрипты содержат макросы (состав макросов вы можете изучить в дереве на вкладке OpenConf окна конфигурации), каждому из которых вы можете назначить сочетание клавиш через меню "OpenConf" - "Макросы" - "Клавиатура...". Перед установкой сочетаний клавиш вы можете запустить любой макрос вручную, находясь в любом режиме работы, нажав Ctrl+M и выбрав нужный макрос в специальном диалоговом окне.

Скрипт Переходы по модулю.vbs содержит следующие полезные макросы:


МакросОписание
GotoBeginOfMethod Позволяет быстро перейти к началу текущей процедуры/функции. Текущее положение курсора при этом запоминается, и к нему можно будет вернуться с помощью вызова макроса ReturnToSavedPosition.
GotoEndOfMethod Позволяет быстро перейти к завершению текущей процедуры/функции. Текущее положение курсора при этом запоминается, и к нему можно будет вернуться с помощью вызова макроса ReturnToSavedPosition.
ReturnToSavedPosition Позволяет быстро вернуться на позицию курсора, которую он занимал перед последним прыжком, сделанным с помощью GotoBeginOfMethod или GotoEndOfMethod.
SelectProcedure Позволяет быстро выделить весь текст текущей процедуры/функции, чтобы например, затем быстро скопировать его в буфер обмена или удалить.

Скрипт ScriptMethodList.vbs содержит полезный макрос "ShowMethodsList". В ветви дерева "Скрипты" вкладки "OpenConf" в окне Конфигурации каждый скрипт представлен одним элементом. Двойной щелчок мыши, либо нажатие ENTER на самом элементе скрипта открывает скрипт для редактирования в текстовом редакторе 1С:Предприятия. Если вы находитесь в таком окне скрипта (vbs, js), макрос "ShowMethodsList" показывает список методов этого скрипта (для быстрого перехода к выбранному методу), а иначе просто показывает окно "Методы модуля" от OpenConf. Этому макросу удобно назначить сочетание клавиш Ctrl+1, сделав таким образом команду вызова списка методов универсальной - она будет правильно работать как в текстовом окне модуля, так и в текстовом окне скрипта. Это может оказаться удобным для просмотра или разработки скриптов OpenConf в текстовом редакторе 1С:Предприятия.

Примечание: иногда при работе со скриптами в текстовом редакторе 1С:Предприятия при наличии установленной бета-версии плагина "Телепат" возможны "вылеты" Конфигуратора (как правило, на больших скриптах). Поэтому используйте эту возможность осторожно.

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

Если установлен плагин "Телепат", то в подменю "Шаблоны" контекстного меню редактора текстов 1С:Предприятия будут добавлены два пункта: "Открыть форму..." и "Открыть модуль...", соответствующие описанным выше макросам.

Скрипт Навигация.vbs предназначен в основном для похожих целей, что и navigator.js, но работает несколько в другом стиле + имеет дополнительные возможности. Макросы скрипта:


МакросОписание
GoToObject Выполняет переход к объекту, его модулям или месту инициализации переменной, или открывает файл (используя текст под курсором или элемент, который находится в фокусе). Поведение макроса достаточно подробно описано в комментариях в начале самого скрипта (дублировать эту информацию здесь большого смысла нет). Может выдаваться список вариантов, куда перейти. В частности, позволяет быстро перейти к процедуре модуля из формулы на кнопке или создать такую процедуру, если её ещё нет, перейти к объекту в дереве метаданных из реквизита диалога (по типу реквизита диалога), осуществлять прыжки внутри дерева метаданных (по типу объектов) и т.п. Поэксперементируйте с этим макросом в различных ситуациях, назначив ему сочетание клавиш (например, Ctrl+Shift+O). Использует NavigationTools.vbs (прочитайте комментарии в начале этого скрипта) и Открыть файл из директивы ЗагрузитьИзФайла.vbs.
SelectAndNavigateToClasses Служит для получения списка всех установленных классов 1С++, выбора из списка и открытия файла с телом класса, после чего показывается окно "Методы модуля" для быстрого перехода к нужному методу. Удобен для быстрой навигации по классам 1С++ и их коду.
ToggleWorkbookPage Переключение страниц Диалог/Модуль. Имеет смысл назначить клавишу F12, как в Delphi.
GoToDialogPage Переключение на страницу Диалога.
GoToModulePage Переключение на страницу Модуля.
GoToMXLPage Переключение на страницу шаблона Таблицы. Если шаблонов несколько, то выдаётся список для выбора.
GoToPage Переключение на страницу Диалога/Модуля/Таблицы. Выдаётся список всех страниц, и производится переход к выбранной странице.

Скрипт NavigationTools.vbs используется макросом "GoToObject" скрипта "Навигация.vbs", а также имеет полезные макросы:


МакросОписание
ActivateFindEdit Устанавливает фокус ввода в поле поиска на панели инструментов "Стандартная" и вставляет туда текст из буфера обмена (можно назначить ему сочетание клавиш Ctrl+F).
SelectMetadataAndGotoObj Осуществляет быстрый переход в дерево метаданных из любого режима работы (выдаётся список метаданных для выбора). В списке для выбора возможна мгновенная фильтрация по вхождению нескольких подстрок. Можно назначить макросу сочетание клавиш Ctrl+Shift+M.

Скрипт Открыть файл из директивы ЗагрузитьИзФайла.vbs используется макросом "GoToObject" скрипта "Навигация.vbs".

Скрипт jumper.vbs реализует функционал для быстрого перемещения по тексту модуля по управляющим конструкциям "Если", "Пока", "Процедура" и т.п. Функционал реализован в трёх стилях (различающихся "размахом" прыжка) в виде трёх пар макросов для прыжков вверх и вниз. Выберите подходящий вам стиль и назначьте сочетания клавиш для прыжков вверх и вниз (например, Ctrl+Shift+U и Ctrl+Shift+D). Прочитайте комментарии в начале скрипта.

Скрипт FindText.vbs реализует функционал поиска текста в текущем модуле с установкой закладок с помощью регулярных выражений. Полезные макросы скрипта:


МакросОписание
FindWithAddBookmarks При вызове макроса откроется окно поиска с двумя готовыми шаблонами: для поиска только в комментариях и только НЕ в комментариях. Для использования этих шаблонов замените текст в конце шаблона ("ВыражениеТолькоНеКомментариях" или "ВыражениеТолькоВКомментариях") на свой текст и нажмите Enter. Вы получите список найденного с номерами строк, из которого можно мгновенно перейти к любому найденному месту (обратите внимание, что размеры окна с этим списком можно изменять). В модуле будут автоматически установлены закладки на каждом найденном фрагменте (вы можете просмотреть их все, перемещаясь по модулю с помощью клавиши F2). При следующем вызове макроса список предлагаемых шаблонов поиска будет пополнен вашим шаблоном.
FindWithoutAddBookmarks То же, что и FindWithAddBookmarks, но закладки в модуле не устанавливаются.

Макрос SelectFromComboBox скрипта Выбрать из списка.vbs позволяет осуществить быстрый выбор из выпадающего списка, в котором находится фокус ввода. Выбор производится с помощью удобного фильтрующегося списка (можно фильтровать по вхождению нескольких подстрок). Это удобно при выборе типа реквизита метаданного в диалоге "Свойства Реквизита" или при выборе типа реквизита диалога в окне "Свойства", когда фокус ввода находится в выпадающем списке. Скрипт также работает и в "обычных" списках, например при поиске в синтаксис-помощнике. Если "повесить" макрос на горячую клавишу (например, Alt+F7), то он отработает и в модальных окнах.

Людоговский Александр

Перейти на главную страничку сайта (список статей, файлы для скачивания)

© 2007 http://www.script-coding.com При любом использовании материалов сайта обязательна ссылка на него как на источник информации, а также сохранение целостности и авторства материалов.