Снегопат

Снегопат - программный комплекс для 1С–программистов, который делает Конфигуратор удобнее и продуктивнее, улучшая контекстную подсказку и добавляя кучу новых возможностей. Для ознакомления с возможностями Снегопата создана эта демо-версия.

Она основана на релизе 1.4.7.2 Снегопата, и включает помимо самого снегопата базовый набор полезных скриптов, разработанных сообществом пользователей. Также уже сделаны общеупотребительные настройки и назначены горячие клавиши. В дальнейшем вы можете их менять.

В демо-версию встроены следующие ограничения:

Большая часть функционала Снегопата реализована в виде макросов. Макрос - это команда самого снегопата или дополнительных аддинов, которая может быть вызвана пользователем. Также аддины могут сами выполнять какие-нибудь действия в ответ на происходящие в конфигураторе события.

ВАЖНО: Внимательно прочтите ВЕСЬ этот документ, с описаниями дополнительных скриптов. Это может отсеять сразу многие ваши вопросы.

Установка и запуск

Для установки достаточно просто распаковать папку куда-либо. Если вам часто приходится работать "на выезде", лучше всего держать снегопат на флешке, так он будет всегда под рукой.

ВАЖНО: Так как Снегопат хранит настройки в своей папке, у вас должны быть права на запись в папку после ее распаковки.

Далее необходимо зарегистрировать дополнительные компоненты, необходимые для работы скриптов. Для этого запустите файл scripts\bin\regall.cmd. Если носите на флешке, не забывайте это делать на каждом новом рабочем месте.

Для запуска конфигуратора со снегопатом запустите программу core\starter.exe. Она запустит стандартный стартер 1С, и будет отслеживать запуск им Конфигуратора, после чего внедрит в запущенный Конфигуратор snegopat.dll.

ВАЖНО: отслеживание и внедрение выполняется с помощью библиотеки inject.dll, и используемые для этого методы некоторыми антивирусами ошибочно детектируются как вирусная активность. В этом случае просто внесите ее в список исключений антивируса.

ВАЖНО: Если снегопат при запуске не может найти стандартный стартер 1С (1cestart.exe), прочитайте, как это исправить здесь.

После запуска, в открывшемся Конфигураторе появится окно Снегопата.

В окне показаны загруженные аддины, а также содержится интерфейс для выполнения некоторых действий и настроек. Список загружаемых аддинов находится в файле addins.ini и может быть изменен вами в соответствии с вашими нуждами.

Назначенные хоткеи

Хоткеи можно посмотреть и настроить, нажав кнопку Клавиатура в окне снегопата. Для добавления хоткея нажмите Ins в таблице хоткеев, выберите макрос и желаемое сочетание клавиш. После настройки, нажмите кнопку Применить в командной панели окна. На одно сочетание клавиш может быть назначено несколько макросов, в этом случае они выполняются последовательно, в порядке их назначения, пока один из макросов не вернет не false.

Здесь я опишу те хоткеи, которые уже предустановленны в демо-версии:

Помните, что в хоткеи вынесены только часто употребительные команды снегопата и аддинов, и через окно макросов можно воспользоваться еще разными командами. Изучайте поставляемые скрипты и их макросы и настройки.

Дополнительные аддины

Демо-версия комплектуется набором дополнительных скриптов и аддинов, расположенных в папке scripts. Описания скриптов можно искать на сайте и на форуме. В разделе "Гостевой" форума могут писать и незарегистрированные пользователи, нужно только сначала авторизоваться на основном сайте как anonymous, нажав кнопку "Заполнить капчу".

Аддин SciColorerV8, который предоставляет альтернативный редактор модулей включен в поставку, но по-умолчанию не подключен, для его подключения раскомментируйте нужные строки в addins.ini.

Кратко перечислю загруженные аддины:

author.js - Авторский комментарий

Позволяет при правке модуля быстро вставлять комментарии о добавлении, изменении и удалении кода. Макросы для этого уже назначены на хоткеи.
Описание

format.js - Форматирование модуля

Содержит разные плюшки для форматирования текста в текущем модуле:

Описание и видео

snippets.js - Шаблоны кода

Предназначен для расширения возможностей штатного механизма шаблонов кода конфигуратора 1С:Предприятия 8. Позволяет использовать в шаблонах дополнительные управляющие конструкции, а также подставлять в шаблоны текущий выделенный в редакторе текст ("обрамлялки"). Предустановлена настройка брать шаблоны из файла scripts\std-templates\Development8x.st, в котором помимо прочего добавлены шаблоны для обрамления выделенного текста в блоки Если, Пока, Для, Попытка. Также эти шаблоны-обрамлялки вынесены в макросы этого скрипта и могут быть назначены на горячие кнопки. Основной макрос скрипта назначен на Ctrl + 4.
Описание

editor_colors.js - Настройка цветовых профилей редактора

Позволяет быстро сохранить/установить цвета для редактора модулей. Содержит три встроенные схемы - стандартную схему 1С и светлую с темной схемы из вот этой разработки с инфостарта При первом запуске сразу сохраняет вашу текущую цветовую схему и назначает "светлую". Если она вам не понравится, можно восстановить сохраненную с помощью макроса Настройка профилей цветов редактора::Применить цветовую схему.
Описание

VimComplete.js - Автодополнение в стиле Vim

Позволяет быстро подобрать слово из уже набранных в тексте выше или ниже.

Принцип дополнения базируется на идее, что очередное набираемое слово уже присутствует выше или далее в тексте. При вызове команды дополнения в качестве отправной точки используется часть набранного слова слева от позиции курсора и затем ищется ближайшее слово, начинающееся с этих же символов (вверх по тексту или вниз по тексту в зависимости от вызванного макроса). Очередной вызов макроса выполнит поиск и подстановку следующего слова и так по кругу, пока все подходящие слова не закончатся. Макросы уже назначены на хоткеи Ctrl + Вверх и Ctrl + Вниз.
Описание

mline_group - Группировка длинных строк

Скрипт предназначен для помощи в свертке многострочных строк, путем быстрой вставки маркеров группировки //{ и //} перед и после многострочных литералов.

Содержит два макроса:

refactoring.js - Рефакторинг

Скрипт для организации рефкаторинга. Сейчас поддерживаются extract method и несколько дополнительных фишек.
extract method - выделите текст, который хотите вынести в отдельный метод и вызовите макрос.

vtcreator.js - Конструктор ТЗ

Скрипт, позволяющий сгенерировать код для создания таблицы значений.
Описание и видео

gen_mgr.js - Менеджер генераторов кода

Скрипт, организующий работу различных генераторов кода. Сейчас это

textEditorExt.js - Расширение редактора текстов

Содержит ряд макросов для различного редактирования текста текущего модуля. Один из наиболее мне нравящихся - клонировать строку (Ctrl + D) - вставляет под текущей строкой ее копию, а также содержит макросы (по большей части уже назначенные на хоткеи) для преобразования регистра выделенного текста, а также обрамления его кавычками или скобками.

AnalizeEventSubscript.js - Анализ подписок на события

Скрипт позволяет получить отчет о подписках на события в разрезе объектов метаданных и быстро переходить к подпискам, объектам и обработчикам событий.
Описание

CfgStore.js - Хранилище

Ряд макросов для облегчения работы с хранилищем. На Ctrl + Alt + T назначен захват текущего редактируемого объекта в хранилище.
Описание

jump2refs.js Переход к ссылкам метаданных

Скрипт для быстрого перехода в дереве метаданных по ссылкам на текущий объект. Очень удобно, например, находясь на реквизите, переходить к объекту - его типу. Этот макрос уже назначен на Ctrl + Enter.
Описание

mdNavigator.js - Навигатор по метаданным

Скрипт для быстрого поиска метаданных и перехода к ним. Основной вызов по Ctrl + ~. Как пользоваться - в-основном понятно по ходу работы.
Одна неочевидная возможность: если текущий выбор стоит на объекте, имеющем модуль, то набрав в строке фильтра :, сразу попадаем в список методов модуля, и все, что в фильтре после двоеточия - фильтрует уже методы.
Описание

stg_autoconnect.js - Авто-подключение к хранилищу

Скрипт при первом подключении к хранилищу предлагает запомнить параметры подключения и в дальнейшем при подключении сразу подставляет сохраненные параметры и нажимает Ок. Содержит макросы для сброса сохраненных данных и настройки показа сообщения при подключении.

extfiles.js - Внешние файлы

Мощный скрипт для организации работы с внешними файлами. Создает окно с деревом файлов. Настолько мощный, что я сам еще не знаю всех его возможностей :). Позволяет интегроваться с системами контроля версий - fossil, git, bazaar.
Описание

extSearch.js- Расширенный поиск

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

FuncProcPanel.js - Панель функций

Альтернативное окно с методами текущего модуля. Показывает в числе прочего и кто вызывает метод, а для обработчиков - контрол, который его вызывает. Назначен на Ctrl + 3.
Описание

type_finder.js - Быстрый поиск типа

Скрипт для облегчения выбора нужного типа из списка типов.
Описание

wndpanel.js - Панель окон

Альтернативная панель окон, открытых в Конфигураторе. Назначена на Ctrl + W. Группирует окна по принадлежности к объектам метаданных, то есть окна одного объекта будут находится рядом в списке. Поддерживает отбор окон по вхождению слов в заголовок окна. При нажатии Enter - активирует окно, при нажатии Ctrl + Enter - активирует окно и закрывается. С помощью скрипта SessionManager.js позволяет сохранять и восстанавливать сессии (наборы открытых окон) и многое другое.
Обсуждение

RegExpEditor.js - Редактор регулярных выражений

Супер-обработка, позволяет быстро и удобно написать и отладить регулярное выражение.
Описание

SessionManager.js - Менеджер сессии

Позволяет организовывать сессии - наборы открытых окон в конфигураторе. Позволяет к примеру при запуске конфигуратора сразу открыть те объекты, которые были открыты при его закрытии.

configCaption.js - Заголовок окна Конфигуратора

Позволяет гибко настраивать заголовок окна Конфигуратора.
Описание

DebugInstruments.js - Отладка с Инструментами разработчика

Позволяет упростить отладку с применением подсистемы "Инструменты разработчика".
Обсуждение

watch_ext.js - Расширенное табло

Скрипт автоматически при отладке показывает значения всех переменных в текущем контексте, а также позволяет добавлять и свои выражения (как в Табло).
Описание

choiceHelpTopic.js - Выбрать главу справки

Позволяет быстро выбрать нужную главу справки, когда их много с одним названием.
Описание

choiceSubSystem.js - Выбрать подсистему

Реализует быстрый поиск/выбор подсистем в модальном окне фильтра подсистем. Позволяет быстро включить/выключить отбор по подсистемам в окне конфигурации.
Описание

choiseParamType.js - Выбор типа в подсказке о параметрах

Скрипт для быстрого выбора из вариантов подсказки параметров. Если Снегопат находит много одноименных методов для подсказки параметров, т.е. пишет [n из M], то нажав Ctrl + 2 можно быстро найти тип, для метода которого необходимо показать параметры. Сейчас я работаю над усовершенствованием этого скрипта, чтобы он по-возможности сам отсеивал все лишнее, но когда доделаю - неизвестно.
Описание

sc_clear.js - Очистка перед проверкой

Скрипт очищает окно сообщений перед выполнением команды синтаксической проверки.

silence.js - Тишина в отсеках

Вместо вас отвечает на некоторые вопросы Конфигуратора, так что вы их даже не видите. Список таких ответов лучше смотреть в самом скрипте.
Описание

std-templates.js - Авто-подключение своих шаблонов

Скрипт при запуске 1С автоматически подключает использование всех файлов шаблонов, которые находятся в папках scripts\std-templates или папка снегопата\templates. Полезно для часто работающих "на выезде". В поставку включен файл с очень хорошими шаблонами с инфостарта - Development8x.st.