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

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

Плагин Телепат для платформы OpenConf

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

Плагин Телепат реализует функционал Intellisense в среде 1С:Предприятие v7.7 (при вводе текста модуля программа предлагает интеллектуальное автодополнение кода и информацию о синтаксисе текущего оператора). Кроме того, Телепат предлагает некоторый функционал для быстрого перемещения по коду различными способами. Телепат предоставляет настолько удобную среду разработки, что от него невозможно отказаться, попробовав хотя бы раз.

Плагин Телепат представляет из себя библиотеку telepat.dll, которая подключается к уже установленной платформе OpenConf (т.е. требует наличия работающего OpenConf). Автор программы - Александр Орефков, адрес электронной почты которого вы можете найти в диалоге "О программе" OpenConf. Бета-версия данного плагина бесплатна и распространяется свободно. Информацию о том, где можно скачать Телепат, вы можете получить в статье "Проект OpenConf (Открытый Конфигуратор)" на этом сайте. Предполагается, что финальная версия Телепата будет платной (около 500 рублей).

Чтобы установить Телепат, необходимо просто скопировать файл telepat.dll из дистрибутива в папку "config", расположенную в каталоге исполняемых файлов 1С:Предприятия (чаще всего это C:\Program Files\1Cv77\bin\config). При следующем запуске Конфигуратора плагин будет автоматически загружен. Запустив Конфигуратор, откройте окно конфигурации (меню "Конфигурация" - "Открыть конфигурацию") Если на закладке "OpenConf" в ветви "Плагины" есть элемент "Телепат" - плагин установлен.

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

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

Чтобы понять, как работает Intellisense, откройте любой модуль в конфигурации и начните набирать какой-нибудь текст. Например, наберите "В". После этого вы должны немедленно увидеть выпадающий список, содержащий возможные продолжения текста ("ВвестиДату", "ВвестиЗначение" и т.д.). Вы можете перемещаться по этому списку с помощью клавиш управления курсором (стрелка вверх и стрелка вниз), выбирая нужный вариант нажатием клавиши "Enter". Кроме того, для перемещения по списку можно использовать клавиши PageUp, PageDown, Home, End. Не правда ли, значительно удобнее, чем полностью набирать весь текст? В любой момент такой список можно закрыть нажатием "Esc" и открыть нажатием "Ctrl+Space" (чтобы список открылся, курсор ввода должен находиться в пределах слова).

Наберите в тексте модуля "ВвестиДату(" и вы увидите всплывающую подсказку о параметрах этого метода. Убрать и заново показать эту подсказку можно в любой момент нажатием "Esc". Чтобы подсказка появилась, курсор должен находиться в тексте между скобками. Если параметров метода несколько, в тексте подсказки текущий параметр подсвечивается жирным шрифтом, что тоже весьма удобно.

Наберите в тексте модуля "Очистить(" и вы увидите всплывающую подсказку о параметрах этого метода. (Если подсказки нет, попробуйте нажать "Esc" или "Ctrl+Shift+Space".) В первой строке текста подсказки вы должны увидеть: "[1 из 5] ТаблицаЗначений::Очистить()". Нажмите Alt+Вниз, после чего в первой строке текста подсказки вы должны увидеть: "[2 из 5] Таблица::Очистить()". Таким образом, с помощью клавиш Alt+Вниз и Alt+Вверх вы можете передвигаться по подсказкам, если их несколько (это бывает, когда имена методов разных объектов совпадают).

Список автозавершения работает и в строковых константах. Например, попробуйте набрать кавычку и букву "С" (русская). Появится список из строки "Справочник" и всех документов/справочников, начинающихся на "С". Далее выберите "Справочник" и поставьте точку - появится список всех справочников конфигурации. При переводе строки, если строковая константа не закончена, Телепат вставит символ "|" автоматически.

Тем, кто немного знаком с синтаксисом С++, понравится и такая мелочь: попробуйте в тексте модуля набрать "МояПеременная ++" или "МояПеременная +=" - сработает интересная автозамена.

При автоактивации списка завершений для более быстрой работы применяется ускоренный анализ текста модуля. При этом текст анализируется не с самого начала, а с ближайшего слова "Процедура", "Функция", "КонецПроцедуры", "КонецФункции". Полагается, что структура модуля до этих мест не изменилась с момента предыдущего анализа (в большинстве случаев это так). Так как технически очень сложно отследить все действия с текстом модуля, могущие изменить его структуру, возможно появление в автоматически появляющемся списке "устаревших" данных или наоборот, отсутствие "свежих". В этом случае достаточно "принудительно" вызвать список завершений. При таком вызове производится полный повторный анализ текста модуля.

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

Настройка

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

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

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

Обратите внимание, что часть команд панели инструментов "Телепат" продублирована в контекстном меню текстовой области модуля (и в меню "Действия"). Примечание: команда контекстного меню "Показать тип" (кнопка "Информация о типе переменной/метода" на панели инструментов) пока не реализована.

При соответствующей настройке Телепат подменяет стандартное окно "Процедуры и функции модуля", которое вызывается из меню "Действия" - "Процедуры и функции модуля" на своё окно "Методы модуля". Рекомендуется так и сделать, поскольку окно "Методы модуля" Телепата работает быстрее (вы можете ощутить это, например, при работе в глобальном модуле типовой конфигурации) и обладает дополнительными возможностями. Настройка поведения Телепата в этом случае осуществляется группой флажков "Диалог "Методы модуля"" панели настройки Телепата (см. выше). В окне "Методы модуля" можно сортировать методы, а также автоматически фильтровать на лету список методов по вхождению строк и подстрок (для поиска нужного метода). Например, откройте глобальный модуль типовой бухгалтерской конфигурации и вызовите диалог "Методы модуля", затем наберите в строке поиска "пол сче" (с пробелом в середине) и нажмите кнопку фильтра, если она ещё не "зажата". В списке должны остаться только те методы глобального модуля, в которых есть оба сочетания - и "пол", и "сче". Быстрый вызов диалога "Методы модуля" - Ctrl+1, кнопки сортировки и фильтрации в нём переключаются нажатиями Ctrl+S и Ctrl+F соответственно.

Быстрые клавиши для использования

КлавишиОписание
Ctrl+Space Открыть список автозавершения. Убрать список - Esc.
Esc или Ctrl+Shift+Space Открыть подсказку параметров метода. Убрать подсказку - Esc.
Alt+Вниз и Alt+Вверх Передвижение по подсказкам параметров метода, если таких подсказок несколько.
Ctrl+Enter Осуществить быстрый переход к определению функции/процедуры или переменной модуля, на вызове которой сейчас находится курсор.
Alt+Влево и Alt+Вправо Шаг назад/вперёд по истории прыжков.
Ctrl+Shift+Enter Открыть окно истории прыжков.
Ctrl+1 Открыть окно "Методы модуля". Управление кнопками сортировки и фильтрации в этом окне - Ctrl+S и Ctrl+F.
Ctrl+2 Открыть для быстрого выбора часть контекстного меню модуля, которая касается шаблонов (это то меню, которое всплывает при наведении мыши на пункт "Шаблоны" стандартного контекстного меню модуля).
Ctrl+M Открыть окно "Макросы" для запуска любого макроса любого загруженного скрипта OpenConf (эта команда относится к самому OpenConf, а не конкретно к Телепату).
Ctrl+[ и Ctrl+] Прыжки по составным частям конструкций Если-Иначе-КонецЕсли, Процедура-КонецПроцедуры и подобным (эта команда относится к штатным возможностям Конфигуратора, но не все о ней знают).
Ctrl+Shift+[ и Ctrl+Shift+] Выделение конструкций Если-Иначе-КонецЕсли, Процедура-КонецПроцедуры и подобных (эта команда относится к штатным возможностям Конфигуратора, но не все о ней знают).
Ctrl+Shift+L Переход к строке модуля по номеру (эта команда относится к штатным возможностям Конфигуратора).
Ctrl+Вниз, Ctrl+Вверх Вертикальная прокрутка текста модуля без изменения расположения курсора (эта команда относится к штатным возможностям Конфигуратора).
Ctrl+Alt+F, Ctrl+Alt+B Переход по закладком "рабочей книги" вперёд и назад (эти команды относятся к штатным возможностям Конфигуратора). Работает в открытых формах (переход между формой, модулем и макетами табличных документов), в окне общих таблиц, в окне конфигурации (переход между вкладками метаданных, прав, интерфейсов и т.д.). Переход осуществляется "циклически", т.е. с последней страницы - на первую, и наоборот.

Не забывайте также, что вы можете назначить произвольные быстрые клавиши для любых макросов в среде OpenConf через меню "OpenConf" - "Макросы" - "Клавиатура..." (эта возможность относится к самому OpenConf, а не конкретно к Телепату).

Программная настройка плагина

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

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

Set Telepat = Plugins("Телепат")
If Not Telepat Is Nothing Then
    'Группа "Компоненты"
    '1-Торговля, 2 - Бухгалтерия, 4 - Расчет, 8 - УРБД
    '(указывать сумму параметров)
    Telepat.Components = 1 + 2 + 4 + 8
    'Группа "Язык"
    '1- Английский, 2 - Русский (указывать сумму параметров)
    Telepat.Language = 2
    'Группа "Диалог 'Методы модуля'"
    Telepat.UseStdMethodDlg = False  'фл. "Использовать стандартный"
    Telepat.NoOrderMethodDlg = False 'фл. "Не сортировать"
    Telepat.FilterMethodDlg = True   'фл. "Фильтровать"
    'Группа "Подсказка о параметрах"
    Telepat.AutoParamInfo = True          'фл. "Автоактивация"
    Telepat.ParamInfoAddMethDescr = True  'фл. "Описание метода"
    Telepat.ParamInfoAddParamDescr = True 'фл. "Описание параметра"
    'Группа "Список завершений"
    Telepat.AutoActiveCountSymbols = 1 'количество символов для автозавершения
    'Группа "Шаблоны"
    'отключить шаблоны: 1-в комментариях, 2-в строках (указывать сумму параметров)
    Telepat.DisableTemplateInRemString = 1 + 2
    Telepat.AddTemplate = True 'фл. "Добавлять в список"
Else
    Scripts.Unload SelfScript.Name 'выгрузим скрипт, если плагин не загружен
End If

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


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

Перезапустите Конфигуратор, и указанные в скрипте настройки вступят в силу.

Версия 2.0.0.0s от 30.04.2007

Изменения:

Версия 2.0.0.0t от 17.09.2007

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

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

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

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