Установка и настройка
Чтобы разрабатывать скрипты для нового Снегопата, вам понадобится установить такие продукты, как:
-
Core.As – это ядро для запуска модуля Снегопата.
-
Сам модуль Снегопата в виде git-репозитария.
-
Visual Studio Community Edition – IDE, в которой происходит сборка модуля Снегопата.
-
Visual Studio Code — хороший редактор TypeScript.
-
Git — берете свой любимый.
Разберемся, где что брать.
-
последний релиз Core.As Loader скачиваем по ссылке https://github.com/infostart-hub/core_as_loader/releases.
Скачиваете архив из текущего релиза. В этот архив входят бинарники стартера и самого Core.As – модуль Снегопата сюда не входит, его нужно будет скачивать отдельно.
Скачанный архив с релизом просто распакуйте в отдельную папку, из которой и будете его запускать. Core.As не требует какой-то особой установки, не пишет в реестр. Достаточно прав на запись в эту папку. Получится так:
ВАЖНО: для дальнейшей сборки модуля Снегопата используется запуск утилит из Core.As, поэтому вам нужно в свойствах проекта для сборки Release платформ Win32 и x64 в пункте VC++ Directories (Каталоги VC++) прописать пути к папкам
Ваша_Папка_Core_As\lib\x64; Ваша_Папка_Core_As\lib\x86
(подробнее об этом ниже) -
Далее клонируем модуль Снегопата из
https://github.com/infostart-hub/snegopat_modul
в ваше обычное место расположения проектов. -
Visual Studio Code – нужно просто скачать его по адресу https://code.visualstudio.com/download и установить.
-
Visual Studio Community Edition нужно скачать по адресу https://visualstudio.microsoft.com/ru/vs/community/ и установить.
На этапе установки необходимо будет обязательно выбрать опцию «Разработка классических приложений на C++», потому что в модуль Снегопата входят исходники небольшой DLL на C++.
На закладке «Отдельные компоненты» в поле поиска наберите script и обязательно установите:
-
TypeScript SDK
-
поддержку языков JavaScript и TypeScript
-
диагностика JavaScript.
Это нужно для того, чтобы у вас собирались скрипты и работала их отладка.
Собираем модуль Снегопата
Мы сейчас создадим модуль Снегопата. Для этого заходим в папку, куда склонировали репо Снегопата и открываем проект snegopat_modul.sln.
Чтобы у вас работала отладка скриптов в Visual Studio, нужно проверить, что в Tools (Средства) – Options (Параметры) в пункте Just-In-Time у вас все галочки проставлены – Script (Скрипт), Native (Машинный), Managed (Управляемый).
Тогда отладчик Visual Studio будет подключаться к отладке скриптов Снегопата.
Еще раз напомню, что дальнейшей сборки модуля Снегопата используется запуск утилит из Core.As, поэтому пути к утилитам Core.As - Ваша_Папка_Core_As\lib\x64; Ваша_Папка_Core_As\lib\x86 нужно прописать в свойствах проекта.
Для этого нужно зайти в свойства проекта snegopat_modul и в пункте VC++ Directories (Каталоги VC++) задать пути для платформ Win32 и x64. Нам достаточно задать пути для конфигурации Release.
Это нужно, потому что часть процесса сборки модуля Снегопата сама сделана в виде модуля Core.As и для его запуска утилита coreas_runner_c.exe из состава Core.As должна запускаться просто по имени.
Поменяем конфигурацию проекта на Release и попробуем собрать проект pack_all – он соберет и проверит одновременно две версии (x64 и x86).
В результате в каталоге _build\Release должен собраться модуль Снегопата.
Теперь его нужно подключить к загружаемым модулям Core.As.
Папку _build\Release\load просто скопируйте в папку с Core.As, достаточно сделать это один раз.
Сам модуль располагается в _build\Release\modules\snegopat. Можно либо каждый раз копировать его в папку Core.As\modules при изменениях, либо один раз создать линк на неё (требуются права админа). Для этого открываем командную строку в папке Core.As\modules и выполняем команду:
mklink /d snegopat “путь к репо Снегопата\_build\Release\modules\snegopat”
Если у вас эти папки лежат где-то рядом, путь можно задать относительным.
Таким образом мы в папку модулей Core.As подключили модуль Снегопата – тот, который у нас собирается в папке _build.
Итак, мы выполнили настройку путей, собрали проект модуля Снегопата и создали ссылку на сборку в модулях Core.As.
Первый запуск – настраиваем стартер
Для запуска модуля идем в Core.As и запускаем starter.exe.
Ранее мы скопировали папку load, в которой для стартера есть настройка: отслеживать запуск процессов с именем 1cv8.exe и если такой процесс запущен, туда будет подгружаться библиотека test.dll, которая проверит, запущена ли 1С в режиме конфигуратора. Если запущена, то будет загружен модуль Снегопата.
Запускаем стартер – он создает иконку в трее и выводит уведомление, что запущен.
Теперь можно просто запускать 1С. При открытии Конфигуратора туда будет подключаться Снегопат.
Создаем свой скрипт для Снегопата
Скрипт для Снегопата мы будем писать на TypeScript в среде VS Code – здесь это делать наиболее удобно.
Для этого заходим в папку с репо Снегопата. В каталоге src/ts мы будем создавать свой скрипт на TypeScript. Все ts-файлы, которые есть в этой папке, при сборке проекта автоматически компилируются в JavaScript-файлы и копируются в каталог _build\ modules\snegopat\addins.
Запустите в этом каталоге VS Code.
Проще всего начать создавать скрипт, просто скопировав какой-то уже существующий. Поэтому просто скопируйте какой-либо из существующих скриптов, переименовав его на свой вкус.
Первое, что нам нужно сделать – это исправить информацию о скрипте. У каждого скрипта задается:
-
uname – уникальное имя, по которому его можно найти в Снегопате.
-
dname - описательное имя.
-
descr – небольшое описание.
Ниже идет стандартная шапка с указанием пути к файлам snegopat.d.ts и v8.d.ts. Эти две строчки трогать не нужно – именно они подключают интеллисенс (контекстную подсказку по типам Снегопата и платформы).
В каждом скрипте должна быть точка входа, через которую можно вызвать его функциональность. Обычно это оформляется в виде макросов. Простейший макрос создается с помощью обычной функции, у которой название начинается с подстроки macros. Все, что после этой подстроки – это название макроса. Поэтому создадим функцию macrosMyFirstMacros().
Итак, простейший скрипт создан. Давайте проверим, что он загружается – добавим в макрос показ сообщения.
Чтобы этот скрипт у нас заработал, нам нужно перейти в Visual Studio и собрать проект. При этом скрипты на TypeScript компилируются в js-файлы и выкладываются в папку сборки.
После сборки, если вы не создали линк на получаемую папку, скопируйте её в Core.As.
Запускаем конфигуратор 1С, открываем список подключаемых скриптов - наш скрипт появился в списке, можно прямо сейчас его загрузить.
Проверим наш макрос. Нажимаем Ctrl+M – у нас в пользовательских аддинах появилась команда “Показ git blame: MyFirstMacros”.
Вызываем команду – выводится сообщение.
О развитии функционала скрипта, а именно о том, что предоставляет объектная модель Снегопата, какие возможности даёт и как её использовать - будет в следующей статье.
Пока же могу порекомендовать изучать справку Снегопата
На данный момент в ней описано не всё, но базовые вещи есть. Подсказка в Visual Studio Code - актуальная и отображает текущую объектную модель. Также можно изучать существующие скрипты, а в затруднительных случаях и код самого движка Снегопата в папке engine. Успехов и новых идей вам!