Набор скриптов для автоматизации ряда действий в конфигураторе.
Дальнейшее развитие проекта в виде самостоятельного приложения (без Autohotkey): https://github.com/ret-Phoenix/SmartConfigurator2
Набор скриптов с использованием Autohotkey позволяет упросить работу в конфигураторе. Часть функционала дублирует возможности снегопата/турбоконфа, часть уникальна. Возможности конфигуратора расширяются за счет автоматического вызова хоткеев плафтормы/операционной системы. Никаких внедрений в процессы, модификации файлов платформы/ОС не происходит.
Почти все скрипты написаны на OneScript (входит в поставку).
Если кто желает присоединиться к разработке / просмотреть историю изменений / скачать последнюю версию - добро пожаловать: https://github.com/ret-Phoenix/SmartConfigurator
Важно: имеется возможность перенастроить горячие клавиши, для этого редактируется файл SmartConfigurator.ahk
Реализованные функции:
Работа с метаданными:
- Навигация по метаданным: {ctrl + shift +j}
- Навигация по входящим в объект типам: {ctrl + j}
- Поиск метаданных по имени: {Alt + j}
Работа с методами:
- Вызов списка методов: {ctrl +1}
- Переход в начало метода: {Ctrl+b}
- Переход в конец метода: {Ctrl+e}
- Препроцессор метода: {Ctrl+7}
- Переход в процедуру: {ctrl+enter}
- Возврат на предыдущую позицию: {Alt,-}
- Показать имя метода: {Win + N}
- Взять в буфер текущее слово: {Win + C}
Прочие операции с текстом:
- Форматирование выделенного кода: {Ctrl+Alt+f}
- Поиск с рег.выражениями: {Alt+f}
- Поиск с рег.выражениями (результат последнего поиска): {Alt+r}
- Выбор ранее набранных слов + Выбор заранее заготовленных слов\фраз (файл words.txt в корне директории скриптов): {ctrl+w}
- Переход по областям: {Ctrl+2}
- Закоментировать строку: {ctrl + / (ctrl + .)}
- Развернуть модуль: {ctrl+i}
- Авторские комментарии:
- блок добавлен: {alt+a}
- блок изменен: {alt+e}
- блок удален: {alt+d}
- Cимвол '|': {Ctrl-}
- Cимвол '&': {Alt-&}
- Cимвол '[': {Alt-[}
- Cимвол ']': {Alt-]}
- Копирование текущей строки / выделенного блока и вставка в следующей строке: {Ctrl+d}
- Выделение в верхний регистр
- Выделение в нижний регистр
- Выделение в нормальный регистр
- Выравнять по равно
- Выравнять по первой запятой
- Выравнять по выбранному значению
- Очистить модуль (убирает комментарии (исключения в скрипте), лишние пустые строки (оставляет только 1 пустую), убирает пробелы в конце строк)
- Убрать пробелы на конце строк
- Установка/Удаление '|'
- Показать последний список выбора {shift + alt + r}
- Обрамление выделенного текста конструкциями:
- Если ... Тогда
- Пока .. Цикл
- Для По Цикл
- Для каждого Из Цикл
- Попытка .. Исключение
- Область
- Автозамена Переменная ++ Переменная += Переменная -- Переменная -=
- Перейти к началу слова в составной строке: Shift + Alt + Left
- Перейти к концу слова в составной строке: Shift + Alt + Right
- Передвинуть строку вверх: {Alt + Up}
- Передвинуть строку вниз: {Alt + Down}
- Взять в буфер слово под курсором: {Win + C}
- Продолжить комментирование, перенос строки: {Shift + Enter}
Прочие скрипты:
- Открытие внешних отчетов/обработок, файлов конфигурации: {Ctrl + 3}
- Менеджер скриптов (обработка выделенного блока, автоматическое добавление скриптов из папки auto): {Ctrl + shift + m}:
- Генератор кода для объектов метаданных (требуется предварительная генерация файла структуры обработкой SmartConfigurator\ext\ПолучениеСтруктуры.epf)
- Менеджер окон: {Win+W}
- Фильтрация результата поиска: {Win+S}
- Пример работы с меню {Win + X}:
- Быстрый выбор:
- КонецЕсли;
- КонецЦикла;
- КонецПроцедуры;
- КонецФункции
- Выравнивание выделения по знаку равно
- Быстрый выбор:
Новое 2017/10/04
- Снова перешел на обмен через буфер обмена. Выросла скорость в разы.
- Генератор кода переписан на oscript
- Убран оригинальный ContinueRow.ahk, сделана реализация на связке AHK + oscript. Работает моментально, анализирует предыдущие 3-4 строки.
Новое 2017/09/12
- Переход на OneScript GUI
- Множественные правки скриптов
Новое 2017/06/18
- Добавлено:
Форматирование выделенного кода: {Ctrl+Alt+f}
- Удалено:
Удаление строки: {Ctrl+y}
т.к. перекрывает команду в 1С
Новое 2017/06/14
- Удалить пустые строки
- Взять в буфер слово под курсором: {Win + C}
- Форматирование модуля: {Ctrl + Alt + F}
- Проверка типа текущего окна
- Убрал удаление строки по {Ctrl + Y}
Новое 2017/05/04
- Перейти к началу слова в составной строке: Shift + Alt + Left
- Перейти к концу слова в составной строке: Shift + Alt + Right
- Передвинуть строку вверх: {Alt + Up}
- Передвинуть строку вниз: {Alt + Down}
- Показать имя метода: {Win + N}
- Копировать выделенный блок/текущую строку по {Ctrl+d}
Новое 2016/06/15
- Полная реструктуризация скриптов (разложил по папочкам)
- Обрамление выделенного текста конструкциями - добавил Область
- Автозамена:
- Переменная ++
- Переменная +=
- Переменная --
- Переменная -=
- Переписаны с JS на 1script:
- Добавить/Удалить перенос строк
- Авторские комментарии
- Навигация по модулю
- Список методов
- Спивок областей
- Переход в начало метода
- Переход в конец метода
- Поиск с рег.выражениями
- Внешние файлы (ускорена работа)
- Менеджер скриптов (доступны обе версии, для 1script надо побороть появление консольного окна)
- Показать последний список выбора {shift + alt + r}
- Пример работы с меню {Win + X}:
- Быстрый выбор:
- КонецЕсли;
- КонецЦикла;
- КонецПроцедуры;
- КонецФункции
- Выравнивание выделения по знаку равно
- Быстрый выбор:
Новое 2016/06/10
- Автоматический поиск скриптов в папке auto (найденные скрипты вызываются через менеджер скриптов)
- Обрамление выделенного текста конструкциями:
- Если ... Тогда
- Пока .. Цикл
- Для По Цикл
- Для каждого Из Цикл
- Попытка .. Исключение
Новое 2016/06/08
- Стабилизировал навигацию по метаданным.
- Выделение в верхний регистр
- Выделение в нижний регистр
- Выделение в нормальный регистр
- Выравнять по равно
- Выравнять по первой запятой
- Выравнять по выбранному значению
- Очистить модуль (убирает комментарии (исключения в скрипте), лишние пустые строки (оставляет только 1 пустую), убирает пробелы в конце строк)
- Убрать пробелы на конце строк
- Пример испльзования других скриптовых движков (Python, PHP, 1Script)
Новое 2016/06/07
- Навигация по метаданным: {ctrl + shift +j}
- Навигация по входящим в объект типам: {ctrl + j}
Новое 2016/06/06
- Убрана привязка к svcsvs.dll. Выбор из списка осуществляется через спец.приложение на C#: SelectValueSharp.exe.
Новое 2016/05/20
- Переход в начало метода: {Ctrl+b}
- Переход в конец метода: {Ctrl+e}
- Переход по областям: {Ctrl+2}
- Поиск метаданных по имени: {Alt+j}
- Cимвол '&': {Ctrl-&}
- Cимвол '[': {Alt-[}
- Cимвол ']': {Alt-]}
Установить Autohotkey (http://www.autohotkey.com/)
SmartConfigurator\SmartConfigurator.ahk (Основной набор скриптов, раскладка при запуске значения не имеет)
При желании можно сделать exe файл, инструмент включен в Autohotkey.
При помощи Autohotkey назначаются управляющие сочитания клавиш (хоткеи). На языке Autohotkey описываются действия посылаемые платформе: оправляются нажатия клавиш, получается текст из буфера, читаются и записываются файлы.
Разберем работу скриптов на основе вызова списка методов (процедур/функций):
- Получаем текст модуля (шлем Ctrl+A и Ctrl+ins)
- Записываем полученный в буфер обмена
- Запускаем скрипт парсинга модуля
- Полученный список методов записываем во временный файл
- Запускаем приложение выбора из списка: SelectValueSharp
- Получаем номер строки выбранной функции (указывается в списке выбора перед названием метода) и возвращаем в ahk
- AHK вызывает хоткей перехода к строке (Ctrl + G) и вставляет номер строки, полученный при выборе метода, подтверждает переход к строке
Для обмена между скриптами текстом используются буфер обмена и текстовые файлы. При работе через файл: скрипты читают файл источник, обрабатывают и перезаписывают файл, который потом считывается ahk в буфер обмена и вставляется стандартным способом (Ctrl + V). При работе с буфером обмена результат вставляется напрямую в окно, минуя временные файлы.
Используя менеджер скриптов можно обрабатывать выделенный фрагмент кода. При использовании менеджера текст берется в буфер, обрабатывается выбранным скриптом и не снимая выделения вставляется результат. Скрипты находящиеся в папке auto добавляются в список выбора менеджера, при этом подразумевается что никаких входящих параметров скриптам передавать не надо. Если требуется организовать выбор или ввод данных для автоскрипта используется внешнее приложение, в поставку входит пример: auto\ОбрамлениеКода.os. Выбор обрамления происходит вызовом приложения SelectValueSharp. К автоматически добавляемым относятся файлы с раширением: os
; Ctrl + shit + 1
^+1::
putSelectionInFile()
RunWait, c:\work\portable\OpenServer\modules\php\PHP-5.2\php.exe scripts\other-lang-examples\example.php
pasteTextFromFile()
return
; Ctrl + shit + 2
^+2::
putSelectionInFile()
RunWait, scripts\other-lang-examples\example.py
pasteTextFromFile()
return
<?php
function Main() {
$data = file_get_contents('tmp/module.txt');
$newdata = strtoupper($data);
file_put_contents('tmp/module.txt',$newdata);
}
main();
?>
f = open('tmp\module.txt')
data = f.read()
f.close()
data = data.upper()
f = open('tmp\module.txt', 'w')
f.write(data)
f.close()