Skip to content

ret-Phoenix/SmartConfigurator

Repository files navigation

Smart Configurator (ранее v8CfgAddsAhk)

Набор скриптов для автоматизации ряда действий в конфигураторе.

Дальнейшее развитие проекта в виде самостоятельного приложения (без 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 описываются действия посылаемые платформе: оправляются нажатия клавиш, получается текст из буфера, читаются и записываются файлы.

Разберем работу скриптов на основе вызова списка методов (процедур/функций):

  1. Получаем текст модуля (шлем Ctrl+A и Ctrl+ins)
  2. Записываем полученный в буфер обмена
  3. Запускаем скрипт парсинга модуля
  4. Полученный список методов записываем во временный файл
  5. Запускаем приложение выбора из списка: SelectValueSharp
  6. Получаем номер строки выбранной функции (указывается в списке выбора перед названием метода) и возвращаем в ahk
  7. 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

example.php

<?php

function Main() {
	$data = file_get_contents('tmp/module.txt');
	$newdata = strtoupper($data);
	file_put_contents('tmp/module.txt',$newdata);
}

main();

?>

example.py

f = open('tmp\module.txt')
data = f.read()
f.close()

data = data.upper()
f = open('tmp\module.txt', 'w')
f.write(data)
f.close()

About

Расширяем конфигуратор без Снегопата и ТурбоКонфа

Resources

License

Stars

Watchers

Forks

Packages

No packages published