Консоль для 1С 8.3 (Управляемые и формы)
Для работы внутри 1С требуется версия платформы не ниже 8.3.24 (обновлённый WebKit)
Для работы с платформами от 8.3.14.1565 до 8.3.23.2157 следует использовать архивные ветки:
На основе Monaco editor, версии 0.55.1
Новый, присваивание, результат метода или функцииnpm install
npm run debug
Помимо самого редактора (http://localhost:9000/), dev-сервер сразу отдаёт страницы тестов:
http://localhost:9000/test.html (встроенный язык) и http://localhost:9000/test_query.html
(язык запросов).
./dist/index.htmlnpm run build
Собирает ./dist/index.html как единый самодостаточный файл без внешних ресурсов: JS, CSS,
шрифты, картинки, иконки дерева и воркер Monaco инлайнятся в сам HTML (data:/blob:). Это нужно,
чтобы загружать редактор в «Поле HTML документа» 1С как текст и обойти предупреждение безопасности
платформы 8.3.27+ «ПолеHTMLДокумента пытается открыть локальный файл» (оно возникает на любой
ресурс, читаемый с диска).
npm run build:single
После сборки в ./dist/ остаётся ровно один файл index.html. Проверить отсутствие внешних
ссылок можно отдельно:
npm run check:single
Обычная сборка (npm run build) при этом не меняется.
npm run build:pack
По умолчанию штатный интерфейс Monaco (поиск, контекстные меню, панель inline-подсказок и другие виджеты) собирается на русском языке. Английские варианты основных команд:
npm run debug:en
npm run build:en
npm run build:single:en
npm run build:pack:en
То же значение можно передать webpack напрямую: --env monacoLocale=en. Поддерживаются только
ru и en; локаль фиксируется на время жизни HTML-документа. Функция switchLang переключает
язык программных подсказок BSL и не меняет штатный интерфейс Monaco.
Для передачи дополнительных опций, используемых при создании редактора, можно воспользоваться следующей командой:
npm run build -- --env customOptions="automaticLayout: true, someOption: false"
Опции подставляются в вызов editor.create() (маркер customOptions в src/editor.js). Значение —
через --env (webpack-cli 5+ не принимает произвольные флаги вроде --customOptions).
./dist/index.html, либо воспользоваться ссылкойnpm run build:single) и загрузить содержимое ./dist/index.html в «Поле HTML документа»
как текст — так платформа не выдаёт предупреждение об открытии локального файла.| Функция | Описание |
|---|---|
setText |
Устанавливает переданный текст в текущую или определенную позицию |
updateText |
Полностью заменяет весь текст редактора, игнорируя при этом режим Только просмотр |
setContent |
Устанавливает текст редактора. Игнорирует режим Только просмотр и не генерирует событие EVENT_CONTENT_CHANGED |
getText |
Возвращает весь текст из окна редактора |
eraseText |
Удаляет весь текст редактора |
selectedText |
Получает или заменяет выделенный текст |
getSelection |
Возвращает selection, аналог GetTextSelectionBounds |
setSelectionByLength |
Устанавливает выделение, аналог первой сигнатуры SetTextSelectionBounds |
setSelection |
Устанавливает выделение, аналог второй сигнатуры SetTextSelectionBounds |
getLineCount |
Возвращает количество строк |
getLineContent |
Возвращает содержимое строки по её номеру, аналог GetLine |
setLineContent |
Устанавливает содержимое строки по её номеру, аналог ReplaceLine |
getCurrentLineContent |
Возвращает содержимое текущей строки |
getCurrentLine |
Возвращает номер текущей строки |
getCurrentColumn |
Возвращает номер текущей колонки |
getCurrentWord |
Возвращает текущее слово и его позици |
getModuleMethods |
Возвращает JSON-описание процедур и функций модуля; список перехода открывается по CTRL+ALT+P |
getQuery |
Определяет текст запроса в текущей позиции и возвращает его вместе с областью текста |
getFormatString |
Определяет текст форматной строки в текущей позиции |
findText |
Возвращает номер строки, в которой находится заданный текст |
addComment |
Добавляет комментарий к текущему блоку кода |
removeComment |
Удаляет комментарий у текущего блока |
addWordWrap |
Добавляет перенос строки к текущему блоку |
removeWordWrap |
Удаляет перенос строки у текущего блока |
insertLine |
Вставляет текст в строку с указанным номером |
addLine |
Добавляет новую строку с указанным текстом |
deleteLine |
Удаляет строки с указанным номером |
getPositionOffset |
Возвращает координаты текущей позиции курсора |
jumpToBracket |
Переход к парной скобке CTRL+[] |
selectToBracket |
Выделяет скобки и текст между ними SHIFT+ALT+B |
formatDocument |
Форматирование выделенного фрагмента кода или всего кода ALT+SHIFT+F |
insertSnippet |
Вставляет переданный сниппет в текущую позицию редактора |
revealDefinition |
Переход к определению переменной, функции или поля запроса F12 |
peekDefinition |
Быстрый просмотр определения переменной, функции или поля запроса CTRL+F12 |
getDifferences |
Возвращает список различий в режиме сравнения |
hideBlocks |
Сворачивает переданные диапазоны строк в обычном редакторе |
showHiddenBlocks |
Раскрывает области, свернутые функцией hideBlocks |
| Функция | Описание |
|---|---|
createTab |
Создаёт и выбирает новую независимую вкладку с редактором |
closeCurrentTab |
Закрывает текущую вкладку или очищает единственную вкладку |
getCurrentTab |
Возвращает название и нулевой индекс текущей вкладки |
| Функция | Описание |
|---|---|
init |
Инициализация редактора с передачей версии платформы и имени пользователя |
setLanguageMode |
Переключение режимов редактора (встроенный язык, язык запросов и т.п.) |
setContextMode |
Установка контекста редактора (сервер / тонкий клиент) |
getContextMode |
Получение текущего контекста редактора (сервер / тонкий клиент) |
setTheme |
Установка темы редактора bsl-white, bsl-white-query, bsl-dark, bsl-dark-query, bsl-edt-white, bsl-edt-dark |
setReadOnly |
Устанавливает/снимает режим Только просмотр |
getReadOnly |
暂无开放 Issues,或尚未同步最近议题。