Разработка скриптов для Снегопата

26.07.21

Разработка - Инструментарий разработчика

Это небольшая статья для тех, кто хочет сам разрабатывать скрипты для нового Снегопата, или править сам движок Снегопата, или просто собирать модуль самостоятельно для внесения оперативных исправлений. В ней я расскажу, как установить и настроить всё необходимое для этого. Скрипты будем создавать на языке TypeScript, инфраструктура заточена именно под этот язык. Предполагается, что вы умеете пользоваться git’ом и настраивать переменные окружения.

Установка и настройка

 

Чтобы разрабатывать скрипты для нового Снегопата, вам понадобится установить такие продукты, как:

  • 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. Успехов и новых идей вам!

См. также

Infostart Toolkit: Инструменты разработчика 1С 8.3 на управляемых формах

Инструментарий разработчика Роли и права Запросы СКД Платформа 1С v8.3 Управляемые формы Запросы Система компоновки данных Конфигурации 1cv8 Платные (руб)

Набор инструментов программиста и специалиста 1С для всех конфигураций на управляемых формах. В состав входят инструменты: Консоль запросов, Консоль СКД, Консоль кода, Редактор объекта, Анализ прав доступа, Метаданные, Поиск ссылок, Сравнение объектов, Все функции, Подписки на события и др. Редактор запросов и кода с раскраской и контекстной подсказкой. Доработанный конструктор запросов тонкого клиента. Продукт хорошо оптимизирован и обладает самым широким функционалом среди всех инструментов, представленных на рынке.

10000 руб.

02.09.2020    124978    683    389    

732

Infostart PrintWizard - создание и редактирование печатных форм в 1С 8.3

Пакетная печать Печатные формы Инструментарий разработчика Платформа 1С v8.3 Запросы 1С:Зарплата и кадры бюджетного учреждения 1С:Конвертация данных 1С:ERP Управление предприятием 2 1С:Управление торговлей 11 Платные (руб)

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

18000 руб.

06.10.2023    7774    24    6    

42

Infostart УДиФ: Управление данными и формами

Инструменты администратора БД Инструментарий разработчика Роли и права Платформа 1С v8.3 Конфигурации 1cv8 Россия Платные (руб)

Расширение позволяет без изменения кода конфигурации выполнять проверки при вводе данных, скрывать от пользователя недоступные ему данные, выполнять код в обработчиках. Не изменяет данные конфигурации, легко устанавливается практически на любую конфигурацию на управляемых формах.

10000 руб.

10.11.2023    4286    12    2    

36

SALE! %

PowerTools

Инструментарий разработчика Инструменты администратора БД Платформа 1С v8.3 Управляемые формы Конфигурации 1cv8 Россия Платные (руб)

Универсальный инструмент программиста для администрирования конфигураций. Сборник наиболее часто используемых обработок под единым интерфейсом.

3600 2280 руб.

14.01.2013    178655    1084    0    

862

Многопоточность. Универсальный «Менеджер потоков» 2.1

Инструментарий разработчика Платформа 1С v8.3 Конфигурации 1cv8 Россия Платные (руб)

Восстановление партий или взаиморасчетов, расчет зарплаты, пакетное формирование документов или отчетов - теперь все это стало доступнее. * Есть желание повысить скорость работы медленных алгоритмов! Но... * Нет времени думать о реализации многопоточности? * о запуске и остановке потоков? * о поддержании потоков в рабочем состоянии? * о передаче данных в потоки и как получить ответ из потока? * об организации последовательности? Тогда ЭТО - то что надо!!!

5000 руб.

07.02.2018    99637    239    97    

298

[ЕХТ] Фреймворк для Расширений 1С

Инструментарий разработчика Платформа 1С v8.3 Управляемые формы Платные (руб)

"Фреймворк для Расширений 1С" это универсальное и многофункциональное решение, упрощающее разработку и поддержку создаваемых Расширений. Поставляется в виде комплекта из нескольких Расширений с открытым исходным кодом. Работает в любых Конфигурациях в режиме Управляемого приложения с режимом совместимости 8.3.12 и выше без необходимости внесения изменений в Конфигурацию.

3000 руб.

27.08.2019    18391    6    8    

40

Выполнение произвольного кода или запроса с параметрами через Web-сервис (замена COM-подключений)

Инструментарий разработчика Обмен между базами 1C Платформа 1С v8.3 Платные (руб)

В процессе работы в 1С часто возникает потребность получить данные из другой базы.  Обычно это делается через COM-соединение, и время выполнения запроса при этом оставляет желать лучшего. В данной публикации представлено универсальное решение, позволяющее практически моментально выполнить произвольный код или запрос с параметрами в другой информационной базе через Web-сервис.

2400 руб.

24.09.2019    23857    16    15    

33

1С HTML Шаблоны / HTML Templates

Инструментарий разработчика Платформа 1С v8.3 Конфигурации 1cv8 Платные (руб)

Быстрая и удобная обработка для работы с шаблонами HTML. Позволяет легко и быстро формировать код HTML.

2040 руб.

27.12.2017    28324    3    10    

16
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. ShootNICK 13 18.12.21 22:35 Сейчас в теме
А сама отладка описана в доке к снегопату )
Пишем debugger в месте где хотим попасть в отладку.
Собираем
Попадаем в место отладки в Visual Studio Community Edition.

Для VSCode сценария отладки, видимо, не сделать.
+
Оставьте свое сообщение