Редактор сценариев, созданный с помощью 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) - создать простой редактор для сравнения двух файлов.
popVanessaMessage() - получение одного сообщения из очереди событий.
Для управления редактором кода из 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 | При обновлении состояния брейкпоинтов | 
| CONTENT_DID_CHANGE | При изменении текста, содержащегося в модели редактора | 
| POSITION_DID_CHANGE | После изменения позиции курсора в редакторе | 
| ON_HREF_CLICK | При нажатии на ссылку | 
| ON_KEY_DOWN | После нажатия клавиши на клавиатре при фокусе установленном в редакторе | 
| ON_KEY_UP | После отпускания клавиши на клавиатре при фокусе установленном в редакторе | 
| ... другие события ... | Команды, переданные в VanessaEditor.addCommands | 
Пример:
Function VanessaEditorOnReceiveEventHandler(Event, Arg)
  If Event = "CONTENT_DID_CHANGE" Then
    ContentDidChange = True;
  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- Ключевые слова верхнего уровня делят файл на секции и сворачиваются сами по себе, независимо от наличия отступов.
- Комментарии которые идут подряд сворачиваются к первой строке комментариев тоже независимо от отступов. Пустая строка прерывает группу комментариев.
- Параметры шага, строки начинающиеся с символа "|" сворачиваются к своей строке шага. Если внутри комментарии, они сворачиваются независимо сами в себя.
- Инструкции, которые начинаются с собаки "@", группируются внутри себя.
- Всё остальное сворачивается внутри секций по числу пробелов и табуляторов.