Редактор сценариев, созданный с помощью 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.
VanessaGherkinProvider - экземпляр класса, реализующего поддержку языка Gherkin и обеспечивающий его конфигурирование.
VanessaEditor - экземпляр редактора, если оспользуется модель одного окна.
VanessaDiffEditor - экземпляр редактора для сравнение двух файлов, если оспользуется модель одного окна.
VanessaTabs - объект для управления множеством редакторов, с вкладками для переключения между ними.
createVanessaTabs() - создать многооконный интерфейс для управления множеством редакторов.
createVanessaEditor(content, language) - создать простой редактор с одним окном для редактирования кода.
createVanessaDiffEditor(original, modified, language) - создать простой редактор для сравнения двух файлов.
Для управления редактором кода из 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.
Редактор может отправлять события, которые будут получены и могут быть обработаны на стороне 1С:Предприятия.
| Событие | Описание | 
|---|---|
UPDATE_BREAKPOINTS | 
При обновлении состояния брейкпоинтов | 
ON_HREF_CLICK | 
При нажатии на ссылку | 
| ... другие события ... | Команды, переданные в VanessaEditor.addCommands | 
Пример:
Function VanessaEditorOnReceiveEventHandler(Event, Arg)
  If Event = "UPDATE_BREAKPOINTS" Then
    UpdateBreakpoints(Arg);
  EndIf;
EndFunctionОтслеживать события можно в логе событий в Example.
В большинстве случаев обмен редактора и 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- Ключевые слова верхнего уровня делят файл на секции и сворачиваются сами по себе, независимо от наличия отступов.
 - Комментарии которые идут подряд сворачиваются к первой строке комментариев тоже независимо от отступов. Пустая строка прерывает группу комментариев.
 - Параметры шага, строки начинающиеся с символа "|" сворачиваются к своей строке шага. Если внутри комментарии, то они сворачиваются независимо, сами в себя.
 - Инструкции, которые начинаются с собаки "@", группируются внутри себя.
 - Всё остальное сворачивается внутри секций по числу пробелов и табуляторов.
 
- Скачиваем и устанавливаем NVM for Windows
 - Запускаем с правами локального администратора:
 
nvm install v16.13.0
nvm use 16.13.0