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

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

Скрипты для платформы 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\Editing\" каталога исполняемых файлов 1С:Предприятия, если этих файлов там ещё нет. Полный путь к этому каталогу может выглядеть, например, так:

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

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

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

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

Скрипт author.js автоматизирует разметку кода по признакам модифицированности со вставкой авторского комментария (подписи автора). Гибкая настройка подписи производится в специальном диалоговом окне. Полезные макросы:


МакросОписание
Настройка Вызывает окно настроек подписи. Настройки сохраняются в реестре в папке HKEY_CURRENT_USER\Software\1C\1Cv7\7.7\OpenConf\Scripts\Авторские комментарии\.
МаркерДобавлен Маркирует выделенный блок или текущую строку признаком "Добавлен".
МаркерИзменен Копирует и маркирует выделенный блок или текущую строку признаком "Изменён".
МаркерУдален Комментирует и маркирует выделенный блок или текущую строку признаком "Удалён".
ВставитьТекст Вставляет текст из буфера обмена и маркирует его как добавленный. Если выделен блок текста, этот блок комментируется и маркируется как изменённый (изменённый на текст из буфера обмена).

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

Скрипт Brackets.vbs позволяет обрамить текст в коде выбранной конструкцией, например двойными кавычками, конструкцией "СокрЛП(...)" и подобными. Если текст состоит из нескольких слов, его необходимо выделить. Полезные макросы:


МакросОписание
ChoiseTypeBracket Выдаёт список возможных конструкций для выбора и обрамляет текст выбранной конструкцией. Точка в каждой предлагаемой конструкции определяет положение обрамляемого текста.
AddBracket Обрамляет текст последней выбранной конструкцией без вопросов.

Список предлагаемых конструкций при необходимости можно отредактировать, открыв скрипт в любом текстовом редакторе. Для этого в процедуре скрипта ChoiseTypeBracket() следует отредактировать оператор присвоения значения переменной ArrOfTypeBracket, например, добавив в массив свои конструкции. Точка в каждой конструкции определяет положение обрамляемого текста.

Скрипт bufer.vbs позволяет эмулировать "многокарманный" буфер обмена (как в MS Office XP/2003 или Punto Switcher), сменить регистр текста (как в MS Word), автоматически сменить раскладку (рус/лат) неверно набранного текста (как в Punto Switcher). Полезные макросы:


МакросОписание
Settings Настройка многокарманного буфера в диалоговом окне. Позволяет включить/выключить многокарманный буфер и включить/выключить использование меток в многокарманном буфере. Если поставить флажок "Использовать метки", то при копировании текста будет выдаваться запрос на задание метки к копируемому тексту. Впоследствии при выборе из многокарманного буфера будут показываться метки, а не сам текст.
CopyText Копирует текст в многокарманный буфер. Если окно не текстовое, то копирование осуществляется стандартным буфером. Можно назначить сочетание клавиш Ctrl+C.
PasteText Осуществляет вставку текста. Если окно не текстовое, то вставка происходит из стандартного буфера. Можно назначить сочетание клавиш Ctrl+V.
EmptyBufer Удаляет из буфера выбранное значение. Можно назначить сочетание клавиш Ctrl+Shift+D.
EmptyAll Удаляет из буфера всё содержимое. Можно назначить сочетание клавиш Ctrl+D.
Translit Сменить раскладку (рус/лат) выделенного текста.
ToggleCase Сменить регистр текущего слова или выделенного текста. Можно назначить сочетание клавиш Shift+F3. Смена регистра имеет три итерации: все строчные, все заглавные, первая заглавная.

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


МакросОписание
RTrimCurrentWnd Обработка текущего открытого модуля.
ReFormatCurrentWnd Обработка текущего открытого модуля с последующим автоматическим форматированием ("штатным" Ctrl+Shift+F).
RTrimGlobalModuleDocReportsAndCalcVars Обработка глобального модуля, всех документов, отчётов и обработок конфигурации.

Скрипт Замена кода trad.vbs служит для автоматического добавления/убирания в начале выделенного блока символов: "|" и "//#" и автоматического сдвига влево/вправо текста выделенного блока за символом "|" для форматирования запросов. Полезные макросы:


МакросОписание
FormatSharp Комментирует выделенный блок или текущую строку символами "//#". Можно назначить сочетание клавиш Ctrl+3. Примечание: при использовании внешней компоненты 1С++ комментарии типа "//#" указывают на команды препроцессора.
UnFormatSharp Раскомментирует выделенный блок или текущую строку, закомментированную символами "//#". Можно назначить сочетание клавиш Ctrl+Shift+3.
FormatVertical "Комментирует" выделенный блок или текущую строку символами "|". Можно назначить сочетание клавиш Ctrl+\.
UnFormatVertical "Раскомментирует" выделенный блок или текущую строку, "закомментированную" символами "|". Можно назначить сочетание клавиш Ctrl+Shift+\.
MoveBlockLeftSpace Сдвигает выделенный блок или текущую строку, "закомментированную" символами "|", на пробел влево (если это возможно). Можно назначить сочетание клавиш Ctrl+[.
MoveBlockRightSpace Сдвигает выделенный блок или текущую строку, "закомментированную" символами "|", на пробел вправо. Можно назначить сочетание клавиш Ctrl+].
MoveBlockLeftTab Сдвигает выделенный блок или текущую строку, "закомментированную" символами "|", на табулятор влево (если это возможно). Можно назначить сочетание клавиш Ctrl+,.
MoveBlockRightTab Сдвигает выделенный блок или текущую строку, "закомментированную" символами "|", на табулятор вправо. Можно назначить сочетание клавиш Ctrl+..

Скрипт Замена кода.vbs служит для замены и/или обрамления кода различными способами, удобного копирования строк, вставки комментариев и т.п. (см. ниже описание макросов). Полезные макросы:


МакросОписание
CodeReplace Служит для замены выделенного блока или текущей строки кода с включением обрамляющих комментариев (похоже на макрос "МаркерИзменен" из author.js, но немного в другом стиле). Чтобы настроить начальный и конечный комментарий, присвойте нужные значения переменным sBeginComment и sEndComment в начале скрипта.
CodeReplaceWithQuestion То же, что и CodeReplace, но текст начального и конечного комментария каждый раз запрашивается в диалоговом окне.
CodeFramingWithQuestion Служит для обрамления выделенного блока или текущей строки кода указанными комментариями. Текст начального и конечного комментария каждый раз запрашивается в диалоговом окне.
CodeFramingForTimer Служит для обрамления выделенного блока или текущей строки кода командами "гТаймер.Запуск("Method");" и "гТаймер.Стоп("Method");", где "Method" - имя метода, которое запрашивается в диалоговом окне при вызове макроса. Примечание: удобно при использовании класса "Общие.ТаймерСКоличеством" 1С++ для профилирования кода, т.е. определения наиболее "медленных" участков кода. Класс доступен для скачивания здесь.
CopyLine Копирует текущую строку или выделенный блок кода. Если назначить этому макросу "быструю" клавишу, такое копирование становится значительно более удобным, чем копирование "штатными" способами.
ExchangeLeftAndRightOfAssign Меняет местами левую и правую часть оператора присваивания с сохранением возможных комментариев и пробелов возле знака "=".
CommentSelection
UnCommentSelection
Комментируют и раскомментируют выделенный блок или текущую строку. В отличие от типовых "Ctrl+/" и "Ctrl+Shift+/" не требуют выделения, если работа происходит с текущей строкой. В vbs-скриптах при работе с текущей строкой используют символ апострофа.

Скрипт Копировать модуль в буфер обмена.vbs позволяет скопировать текст текущего модуля в буфер обмена или заменить текст текущего модуля на содержимое буфера обмена, не затронув конструкцию "#ЗагрузитьИзФайла", если таковая имеется в начале модуля. Полезные макросы:


МакросОписание
CopyTextToClipboard Копирует текст текущего модуля в буфер обмена.
ReplaceTextFromClipBoard Заменяет текущий модуль на содержимое буфера обмена.

Скрипт Форматирование текста.vbs позволяет выровнять выделенный текст по знакам равенства ("=") различными способами. Полезные макросы:


МакросОписание
FormatBlock Форматирует выделенный блок. Например, текст
ы=1;
абвгде = 2;
превратится в текст
ы      =1;
абвгде = 2;
FormatLines Форматирует выделенный блок. Например, текст
ы      =1;
абвгде = 2;
превратится в текст
ы      = 1;
абвгде = 2;
FormatBlockWithTabs То же, что и FormatBlock, но используются символы табуляции.
ChoiseCharForFormating Позволяет сменить символ разделителя (по умолчанию "=") на другой (предлагается список). Выбранный символ будет работать до перезагрузки скрипта (или до следующего перевыбора этого символа).
FormatBlockWithTabsAskChar Запрашивает символ-разделитель (предлагается список), а затем форматирует выделенный блок с использованием символов табуляции. Практически - последовательно вызывает макросы ChoiseCharForFormating и FormatBlockWithTabs.

Скрипт RunPerlScripts.vbs позволяет убрать из текстов модулей лишние пробелы и пустые строки, а также автоматически сгенерировать текст модуля какого-либо объекта конфигурации на основе существующих шаблонов (такие шаблоны необходимо предварительно создать). Полезные макросы:


МакросОписание
CodeBeautifier Удаляет пробелы в концах строк текущего модуля и пустые строки (из нескольких пустых строк, идущих подряд, остаётся только одна).
CodeIns Вставляет код в текущий модуль, используя существующие шаблоны в каталоге текущей информационной базы. Файлы "ФормаДокумента.pl" и "ФормаЭлемента.pl" являются примерами таких шаблонов. Удобен при создании нового документа, справочника, журнала, отчета или обработки в конфигурации. Шаблоны для различных модулей конфигурации необходимо создать самостоятельно. Возможные имена шаблонов: "МодульДокумента", "ФормаДокумента", "ФормаЭлемента", "ФормаГруппы", "ФормаСписка", "ФормаЖурнала", "Отчет", "Обработка" (расширение имён файлов - .pl).
CodeInsReferences Применяет шаблоны ко всем справочникам конфигурации.
CodeInsDocuments Применяет шаблоны ко всем документам конфигурации.
CodeInsToAll Последовательно запускает макросы CodeInsReferences и CodeInsDocuments.

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

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

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