Vanessa Automation Editor
Редактор сценариев, созданный с помощью Monaco и поддерживающий взаимодействие с платформой 1C:Предприятие 8.3.15+.
Собрано для Vanessa Automation.
Сборка
Для установки выполните команду (необходим установленный node.js для сборки)
npm install .
Для запуска отладки в браузере (на встроенном сервере для разработки) выполните команду
npm run debug
Для сборки финального файла ./dist/index.html
, встраиваемого в проект выполните команду
npm run build
Для сборки примера внешней обработки из исходников в epf файл (необходим oscrip) выполните команду
npm run compile
Для разборки примера внешней обработки из epf в исходники (необходим oscript) выполните команду
npm run decompile
Для запуска статанализа проверки стиля кода
npm run codestyle
Как использовать в своем проекте
Доступны три режима работы:
- Простой редактор кода в одном окне
- Редактор для сравнение двух файлов
- Многооконный интерфейс с вкладками
По умолчанию открывается пустая страница без редакторов. Для начала работы при помощи глобального метода необходимо создать экземпляр объекта, соответствующий выбраному режиму.
Смотрите пример использования во внешней обработке Example.
API
Глобальные свойства
VanessaGherkinProvider - экземпляр класса, реализующего поддержку языка Gherkin и обеспечивающий его конфигурирование.
VanessaEditor - экземпляр редактора, если оспользуется модель одного окна.
VanessaDiffEditor - экземпляр редактора для сравнение двух файлов, если оспользуется модель одного окна.
VanessaTabs - объект для управления множеством редакторов, с вкладками для переключения между ними.
Глобальные методы
createVanessaTabs() - создать многооконный интерфейс для управления множеством редакторов.
createVanessaEditor(content, language) - создать простой редактор с одним окном для редактирования кода.
createVanessaDiffEditor(original, modified, language) - создать простой редактор для сравнения двух файлов.
popVanessaMessage() - получение одного сообщения из очереди событий.
Действия (Actions)
Для управления редактором кода из 1С:Предпрития вы можете вызывать методы-действия объекта редактора, полученного из HTML-документа расположенного на форме.
Action | Description |
---|---|
setTheme |
Установить тему редактора vs , vs-dark или hc-black |
setContent |
Загрузить контент в модель редактора |
getContent |
Получить текст из модели редактора |
revealLine |
Выполнить прокрутку редактора до определенной строки |
... другие команды ... | см. другие команды в vanessa-editor.ts |
Пример:
view = Items.VanessaEditor.Document.defaultView;
VanessaEditor = view.createVanessaEditor("", "turbo-gherkin");
VanessaEditor.setContent("Text to edit");
Посмотреть все доступные действия можно в списке действий в Example.
События (Events)
Редактор может отправлять события, которые будут получены и могут быть обработаны на стороне 1С:Предприятия.
Событие | Описание |
---|---|
UPDATE_BREAKPOINTS |
При обновлении состояния брейкпоинтов |
ON_HREF_CLICK |
При нажатии на ссылку |
... другие события ... | Команды, переданные в 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
Правила сворачивания строк
- Ключевые слова верхнего уровня делят файл на секции и сворачиваются сами по себе, независимо от наличия отступов.
- Комментарии которые идут подряд сворачиваются к первой строке комментариев тоже независимо от отступов. Пустая строка прерывает группу комментариев.
- Параметры шага, строки начинающиеся с символа "|" сворачиваются к своей строке шага. Если внутри комментарии, то они сворачиваются независимо, сами в себя.
- Инструкции, которые начинаются с собаки "@", группируются внутри себя.
- Всё остальное сворачивается внутри секций по числу пробелов и табуляторов.
Установка предыдущей версии Node.js
- Скачиваем и устанавливаем NVM for Windows
- Запускаем с правами локального администратора:
nvm install v16.13.0
nvm use 16.13.0