Совсем недавно Александр Орефков, автор популярных проектов для 1С:Предприятия 7.7: ОпенКонф, Телепат 2.0, внешних компонент 1sqlite и Turbomd и других, опубликовал на Инфостарте анонс проекта Снегопат.
Снегопат – это проект по расширению возможностей конфигуратора 1С:Предприятия 8.2 как среды разработки прикладных решений. Для знакомых с ОпенКонфом, можно коротко сказать, что Снегопат – это ОпенКонф и Телепат, только для 1С:Предприятия 8.2 и уже на сегодня заметно круче :).
Кроме специализированного функционала, который добавляется в Конфигуратор (возможность группировки произвольных блоков кода, список процедур/и функций с фильтрацией по вхождению подстроки, синтаксическая подсветка текста запросов внутри строковых констант и др.) при использовании Снегопата, разработчики могут добавлять новый функционал самостоятельно, создавая свои собственные скрипты, автоматизирующие работу в Конфигураторе.
Это возможно благодаря тому, что Снегопат «из коробки» поддерживает аддины, реализованные как скрипты для ActiveScripting-движков (в первую очередь, JScript и VBScript). Диалоговые формы скриптов могут быть разработаны с использованием штатных возможностей «обычных» (не «управляемых») форм 1С:Предприятия 8, манипуляции с объектами конфигуратора доступны через объектную модель, предоставляемую Снегопатом.
Уже на сегодня в репозитории скриптов для Снегопата размещено почти 20 скриптов различного назначения, делающих работу в Конфигураторе удобнее и эффективнее. Давайте познакомимся с некоторыми из них и посмотрим, как они помогают при конфигурировании прикладных решений.
Внешние файлы
Скрипт «Внешние файлы» является аналогом окна «File Explorer» в других средах разработки. Он предоставляет удобную возможность просмотра структуры заданных пользователем каталогов и открытия файлов, находящихся в этих каталогах, непосредственно из Конфигуратора. Навигация в дереве файлов сделана по возможности максимально похожей на навигацию в дереве конфигурации.
Для удобства использования окно скрипта рекомендую закрепить слева или справа окна конфигуратора (мне удобнее прикреплять его внизу окна конфигурации). Очень удобно при работе с внешними обработками конкретной информационной базы. В настройках скрипта можно указываются каталоги, общие для всех информационных баз и каталоги, специфичные для конкретной информационной базы.
Расширенный поиск
Скрипт «Расширенный поиск» добавляет в Конфигуратор возможность поиска текста в окнах редактора модулей и произвольных текстов Конфигуратора как при помощи регулярных выражений, так и традиционным способом (по вхождению строки или поиск целого слова, с учетом и без учета регистра).
Кроме возможности поиска регулярными выражениями, скрипт обладает еще и тем преимуществом перед штатным неглобальным поиском (команда F3 в окне редактора), что выводит сразу все результаты поиска в окно, аналогично тому, как выводятся результаты глобального поиска:
Расширение текстового редактора
Скрипт "Расширение текстового редактора" реализует несколько удобных функций по редактированию текста, которых зачастую не хватает:
Шаблоны кода
Скрипт «Шаблоны кода» реализует дополнительный функционал для штатного механизма шаблонов Конфигуратора 1С:Предприятия 8. Основная возможность, ради которой и реализовывался скрипт в первую очередь – это возможность «применять» шаблон к выделенному тексту.
Как известно, стандартно механизм шаблонов умеет только выполнять подстановку шаблона в позицию курсора. Поскольку мне чаще приходится работать с готовым кодом, чем писать код с нуля, возникают ситуации, когда готовый блок кода надо «обрамить» в условную конструкцию или конструкцию Попытка-Исключение, циклы и т.п.
Для более эффективной работы по такому сценарию в штатном механизме шаблонов очень не хватает возможности выделить блок и вызвать соответствующий шаблон той управляющей конструкции, которой необходимо обрамить выделенный код:
Скрипт использует штатный формат шаблонов 1С:Предприятия 8. Подробнее о настройке шаблонов для использовании совместно со скриптом «Шаблоны кода» можно прочитать на странице скрипта.
Query Params Extractor
Скрипт «Query Params Extractor» предназначен для автоматической генерации кода установки параметров запроса на основе текста запроса:
Конструктор таблицы значений
Скрипт «Конструктор таблицы значений», аналогично скрипту "Query Params Extractor" также относится к группе скриптов, генерирующих исходный код. С его помощью код по программному созданию таблицы значений можно сформировать путем визуальной настройки свойств ТЗ при помощи простого редактора:
Автодополнение в стиле редактора Vim
Скрипт «Автодополнение в стиле редактора Vim» существует со времен ОпенКонфа, и был портирован мною для проекта Снегопат, благо это оказалось совсем просто. Скрипт с тех же самых времен находится в тени «интеллектуальных» «подсказчиков» (Телепат +Intellisence), но на практике очень эффективен при наборе строковых констант или комментариев в коде или текста в любых других текстовых окнах.
Например, при вставки значений в структуру:
Принцип работы, как вы видите тривиален: вы набираете первые символы слова, вызываете один из макросов скрипта («Предыдущее слово» или «Следующее слово») и скрипт производит поиск ближайшего слова, начинающегося с введенных вами символов и использует его для подстановки. Повторное нажатие найдет следующее подходящее слово и так далее. Т.е. подстановка выполняется на основе уже имеющегося текста.
Другие скрипты
Кроме названных выше скриптов, являющихся интерактивными инструментами, явным образом используемыми разработчиками, есть еще и маленькие «работяги», описание которых может оказаться больше, чем их собственный код, но которые делают нашу жизнь много лучше.
С помощью них можно : автоматически открывать обработки/отчеты, сохраненные как внешние сразу после сохранения и автоматически открывать файл, путь на который указан в буфере обмена, выравнивать знаки «=» в тексте модуля, настраивать заголовок конфигуратора (пример работы вы могли увидеть в заголовке конфигуратора на всех видео).
Некоторые скрипты совсем незаметны и даже не имеют макросов, но выполняют за нас грязную работу: очищают окно сообщений перед синтаксической проверкой, автоматически подключаются за нас к хранилищу без лишних вопросов, избавляют от назойливых диалогов.
Страна должна знать своих героев!
Я намеренно не указывал выше в описаниях скриптов их авторов, потому что практически все они благодаря открытому исходному коду совершенствуются совместно дружной командой. Вот эти герои меча и магии notepad++ и javascript:
- Артур Аюханов (artbear)
- Александр Орефков (orefkov)
- Владимир Пушин (vladnet)
- Василий Фролов (palytsh)
- Степан Рыбальченко (steban)
- Александр Кунташов (kuntashov)
(Если кого-нибудь пропустил, напомните).
Присоединяйтесь к команде! Сделать это не сложно, первые шаги коротко и доходчиво описаны Артуром в рекомендациях по разработке скриптов. Те, кто писал скрипты для ОпенКонфа быстро войдут в тему.
Документации пока не много, но основные приемы разработки можно подсмотреть в перечисленных выше скриптах. Вопросы по разработке скриптов можно задать на официальном форуме.
Что дальше
В разработке сейчас находятся скрипты для выполнения простых видов рефакторинга кода 1С, аналог скрипта Intellisence для ОпенКонфа, уже готов редактор регулярных выражений (но поскольку без страницы описания, то не включен в подборку).
Идеи и предложения принимаются на уже упомянутом форуме и в комментариях к этой статье.
Высокой всем производительности и прочих успехов в работе! :-)