Skip to content

Pr-Mex/VAEditor

Repository files navigation

Vanessa Automation Editor

Редактор сценариев, созданный с помощью Monaco и поддерживающий взаимодействие с платформой 1C:Предприятие 8.3.14+ (рекомендуется 8.3.18+).

Собрано для Vanessa Automation.

Сборка

Для установки выполните команду (необходим установленный node.js для сборки)

npm install .

Для запуска отладки в браузере (на встроенном сервере для разработки) выполните команду

npm run demo

Для сборки финального файла ./dist/index.html, встраиваемого в проект выполните команду

npm run build

Для сборки примера внешней обработки из исходников в epf файл (необходим oscrip) выполните команду

npm run compile

Для разборки примера внешней обработки из epf в исходники (необходим oscript) выполните команду

npm run decompile

Для запуска статанализа проверки стиля кода

npm run codestyle

Как использовать в своем проекте

Доступны три режима работы:

  • Простой редактор кода в одном окне
  • Редактор для сравнение двух файлов
  • Многооконный интерфейс с вкладками

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

Смотрите пример использования во внешней обработке Example.

API

Полный машиночитаемый контракт публичного API с JSDoc для каждого метода — в src/types/public-api.d.ts. TS/JS-интеграторы получают autocomplete и проверку типов в IDE автоматически.

Глобальные свойства

VanessaGherkinProvider - экземпляр класса, реализующего поддержку языка Gherkin и обеспечивающий его конфигурирование.

VanessaEditor - экземпляр редактора, если оспользуется модель одного окна.

VanessaDiffEditor - экземпляр редактора для сравнение двух файлов, если оспользуется модель одного окна.

VanessaTabs - объект для управления множеством редакторов, с вкладками для переключения между ними.

Глобальные методы

createVanessaTabs() - создать многооконный интерфейс для управления множеством редакторов.

createVanessaEditor(content, language) - создать простой редактор с одним окном для редактирования кода.

createVanessaDiffEditor(original, modified, language) - создать простой редактор для сравнения двух файлов.

Действия (Actions)

Для управления редактором кода из 1С:Предприятия вы можете вызывать методы-действия объекта редактора, полученного из HTML-документа расположенного на форме. Самые часто используемые:

  • setTheme(theme) — установить тему (vs, vs-dark, hc-black)
  • setContent(text) — загрузить контент в модель редактора
  • getContent() — получить текст из модели
  • revealLine(lineNumber) — прокрутить редактор до строки

Полный список (53 метода с JSDoc-описанием) — в public-api.d.ts → интерфейс IPublicVanessaEditor.

Пример:

view = Items.VanessaEditor.Document.defaultView;
VanessaEditor = view.createVanessaEditor("", "turbo-gherkin");

VanessaEditor.setContent("Text to edit");

Посмотреть все доступные действия можно в списке действий в Example.

События (Events)

Редактор отправляет события, которые могут быть обработаны на стороне 1С:Предприятия. Примеры:

  • UPDATE_BREAKPOINTS — обновлено состояние брейкпоинтов
  • ON_HREF_CLICK — клик по ссылке

Полный enum (9 встроенных событий) — в public-api.d.tsVanessaEditorEventName. Дополнительно можно регистрировать кастомные события через VanessaEditor.addCommands.

Пример:

Function VanessaEditorOnReceiveEventHandler(Event, Arg)

  If Event = "UPDATE_BREAKPOINTS" Then
    UpdateBreakpoints(Arg);
  EndIf;

EndFunction

Отслеживать события можно в логе событий в Example.

Примеры

Json

В большинстве случаев обмен редактора и 1С:Предприятия осуществляется с помощью сообщений в json формате. Для быстрой сериализации и десериализации объектов 1С:Предпрития в json формат Вы можете воспользоваться функциями:

&AtClient
Function JsonDump(Value)

	JSONWriter = New JSONWriter;
	JSONWriter.SetString();
	WriteJSON(JSONWriter, Value);
	Return JSONWriter.Close();

EndFunction

&AtClient
Function JsonLoad(Json)

	JSONReader = New JSONReader;
	JSONReader.SetString(Json);
	Value = ReadJSON(JSONReader);
	JSONReader.Close();
	Return Value;

EndFunction

Правила сворачивания строк

  1. Ключевые слова верхнего уровня делят файл на секции и сворачиваются сами по себе, независимо от наличия отступов.
  2. Комментарии которые идут подряд сворачиваются к первой строке комментариев тоже независимо от отступов. Пустая строка прерывает группу комментариев.
  3. Параметры шага, строки начинающиеся с символа "|" сворачиваются к своей строке шага. Если внутри комментарии, то они сворачиваются независимо, сами в себя.
  4. Инструкции, которые начинаются с собаки "@", группируются внутри себя.
  5. Всё остальное сворачивается внутри секций по числу пробелов и табуляторов.

Установка предыдущей версии Node.js

  • Скачиваем и устанавливаем NVM for Windows
  • Запускаем с правами локального администратора:
nvm install v16.13.0
nvm use 16.13.0

About

Visual Studio Code in 1C:Enterprise

Topics

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors