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

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    212497    1159    413    

1048

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

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

8400 руб.

20.08.2024    40289    219    114    

207

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

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

16000 руб.

10.11.2023    18758    78    39    

92

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

Расширение для создания и редактирования печатных форм в системе 1С:Предприятие 8.3. Благодаря конструктору можно значительно снизить затраты времени на разработку печатных форм, повысить качество и прозрачность разработки, а также навести порядок в многообразии корпоративных печатных форм.

22200 руб.

06.10.2023    26437    67    30    

96

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

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

9500 руб.

17.05.2024    37526    134    55    

176

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

Первые попытки разработки на 1С с использованием больших языковых моделей (LLM) могут разочаровать. LLMки сильно галлюцинируют, потому что не знают устройства конфигураций 1С, не знают нюансов синтаксиса. Но если дать им подсказки с помощью MCP, то результат получается кардинально лучше.<br/> Далее в публикации:<br/> MCP для поиска по метаданым 1С, справке синтакс-помошника и проверки синтаксиса.

9900 руб.

25.08.2025    3706    6    10    

14

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

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

3600 руб.

27.12.2024    3649    7    0    

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

Для VSCode сценария отладки, видимо, не сделать.
Для отправки сообщения требуется регистрация/авторизация