Установить Autohotkey (http://www.autohotkey.com/)
Зарегистрировать библиотеки:
v8CfgAddsAhk\system\svcsvc.dll
v8CfgAddsAhk\system\WshExtra.dll
Запуск
v8CfgAddsAhk\v8CfgAdds.ahk (Основной набор скриптов)
v8CfgAddsAhk\continueRow.ahk (Операции по переносу комментариев, строк). Автор ADirks
Реализованные функции
Вызов списка процедур: {ctrl +1}
Поиск с регулярными выражениями: {Alt+f}
Поиск с регулярными выражениями (результат последнего поиска): {Alt+r}
Генератор кода для объектов метаданных (требуется предварительная генерация файла структуры обработкой v8CfgAddsAhk\ext\ПолучениеСтруктуры.epf): {Alt+g}
Добавление ссылки на основной реквизит в модуле (преобразование модуля формы из обычных форм в управляемые формы): {Alt+h}
Авторские комментарии:
блок добавлен: {alt+s}
блок изменен: {alt+e}
блок удален: {alt+d}
Закоментировать строку: {ctrl + / (ctrl + .)}
Развернуть модуль: {ctrl+i}
Удаление строки: {Ctrl+y}
Cимвол ‘<‘: {Ctrl-,} - Cимвол ‘>': {Ctrl-.}
Cимвол ‘|': {Ctrl-\}
Копирование текущей строки и вставка в следующей: {ctrl+shift+c}
Регулярные выражения - это то, что все время забывается из-за не слишком частого использования.
Управляющие символы (., ?, *, +, {}, [], |, $, ^):
. Заменяет один произвольный символ a.c aac, abc ...
^ Отрицание [^0-9] Все кроме цифр. (Ставится внутри скобок)
^ Начало строки ^a Все строки, которые начинаются с буквы a (Ставится в начале строки)
| Альтернативный оператор a|b|c или [abc] Строка содержит либо "a" либо "b" либо "c".
* НОЛЬ или более символов [a-z]* Подряд может идти сколь угодно букв
+ ОДНО или более повторений [a-z]+ Должна быть минимум одна буква
? Ноль или одно повторение 0?7 7, 07
{n,k} [a-z]{1,3} Подряд может идти от одного до трех букв
{n} [a-z]{n}[0-9]{k} Сначала в строке идут n символов, потом k цифр
{n,} [a-z]{0,} Символ может встречаться n и более раз. Тоже самое [a-z]*
$ Конец строки zz$ Все строки, которые заканчиваются строкой "zz"
() Сохранение результата [a-z]{0,} Символ может встречаться n и более раз. Тоже самое [a-z]*
/s Пробел, табуляция, новая строка
/S Все, что не совпадает с /s
/w Слово
/W Все, что не совпадает с /w
/d Цифры
/D Все, что не совпадает с /d
Примеры:
"\\[text\\]" - Поиск строки "[text]" (с управляющим символом).
"/^[a-zA-Z0-9]+$/" - Имя пользователя состоит из букв и цифр.
Данные функции позволяют разложить строку в массив, используя заданный разделитель
Например есть строка: абв$dfd$232$-0oj$5
Выполнив код: НашМассив = РазложитьСтрокуВМассив(абв$dfd$232$-0oj$5, "$") ;
Получим: НашМассив = абв
dfd
232
-0oj
5
Пример с использованием предустановленной библиотеки RegExp, т.е. она есть в любом windows.
Плюсы RegExp:
1. Хорошая скорость анализа, т.к. 1С анализ строк (разбор) обычно реализуется циклами и функциями: Лев, Прав, Сред, Найти, а встроенный язык медленный
2. Высокая читаемость и модифицированность (более предсказуем в случае несоответствия строки - разбору)
3. Дополнительный функционал (можно осуществлять анализ, замену и проверку строковых выражений)
Минусы RegExp:
1. Не все задачи можно решить (например рекурсивные разборы тип 1 + (2+3*(2-7)) в случае если нужно разобрать на выражения в скобках) приходится смешивать с кодом.
2. Возможность зависания при использовании сложных шаблонов(редкость, но бывает).
3. RegExp - это дополнительная библиотека и инициализация занимает значительное время.