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

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

См. также

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

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

15500 руб.

02.09.2020    177560    986    403    

942

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

Инструмент представляет собой обработку для проведения свёртки или обрезки баз данных. Работает на ЛЮБЫХ конфигурациях (УТ, БП, ERP, УНФ, КА и т.д.). Поддерживаются серверные и файловые базы, управляемые и обычные формы. Может выполнять свертку сразу нескольких баз данных и выполнять их автоматически без непосредственного участия пользователя. Решение в Реестре отечественного ПО

8400 руб.

20.08.2024    19044    127    70    

130

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

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

15000 руб.

10.11.2023    12790    53    33    

72

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

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

22200 руб.

06.10.2023    18747    49    19    

82

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

Инструмент для написания и отладки кода в режиме «1С:Предприятие». Представляет собой консоль кода с возможностью пошаговой отладки, просмотра значений переменных любых типов, использования процедур и функций, просмотра стека вызовов, вычисления произвольных выражений на встроенном языке в контексте точки останова, синтаксического контроля и остановки по ошибке. В консоли используется удобный редактор кода с подсветкой, контекстной подсказкой, возможностью вызова конструкторов запроса и форматной строки.

9360 руб.

17.05.2024    28893    100    48    

146

Инструментарий разработчика Программист 8.3.14 Россия Платные (руб)

Расширение для конфигурации “Конвертация данных 3”. Добавляет подсветку синтаксиса, детальную контекстную подсказку, глобальный поиск по коду.

20000 руб.

07.10.2021    18611    7    32    

43

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

Разработка Конструктор автоматизированных рабочих мест "Конструктор АРМ" реализована в виде расширения и является универсальным инструментом для создания АРМ любой сложности в пользовательском режиме.

3600 руб.

27.12.2024    1702    2    0    

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

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