Редактор сценариев, созданный с помощью 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 с JSDoc для каждого метода — в
src/types/public-api.d.ts. TS/JS-интеграторы получают autocomplete и проверку типов в IDE автоматически.
VanessaGherkinProvider - экземпляр класса, реализующего поддержку языка Gherkin и обеспечивающий его конфигурирование.
VanessaEditor - экземпляр редактора, если оспользуется модель одного окна.
VanessaDiffEditor - экземпляр редактора для сравнение двух файлов, если оспользуется модель одного окна.
VanessaTabs - объект для управления множеством редакторов, с вкладками для переключения между ними.
createVanessaTabs() - создать многооконный интерфейс для управления множеством редакторов.
createVanessaEditor(content, language) - создать простой редактор с одним окном для редактирования кода.
createVanessaDiffEditor(original, modified, language) - создать простой редактор для сравнения двух файлов.
Для управления редактором кода из 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.
Редактор отправляет события, которые могут быть обработаны на стороне 1С:Предприятия. Примеры:
UPDATE_BREAKPOINTS— обновлено состояние брейкпоинтовON_HREF_CLICK— клик по ссылке
Полный enum (9 встроенных событий) — в public-api.d.ts → VanessaEditorEventName. Дополнительно можно регистрировать кастомные события через 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