1
0
mirror of https://github.com/salexdv/bsl_console.git synced 2024-11-24 08:33:29 +02:00
Консоль кода для 1С 8.3 (Управляемые и обычные формы)
Go to file
2020-08-06 10:52:46 +03:00
src Доработка подсказок по ссылке т.к в 1С некорректно работают некоторые регулярные выражения. 2020-08-06 10:11:27 +03:00
.gitignore Подсказки через точку для реквизитов типа справочники/документы 2020-07-31 11:05:35 +03:00
CHANGELOG.md readme && changelog 2020-08-06 10:52:46 +03:00
LICENSE Initial commit 2020-07-16 21:40:27 +03:00
README.md readme && changelog 2020-08-06 10:52:46 +03:00

Консоль кода для 1С 8.3 (Управляемые и обычные формы)

Для работы внутри 1С требуется версия платформы не ниже 8.3.14.1565

Как работает?

На основе Monaco editor

Основные возможности:

  • Подсветка синтаксиса языка 1С
  • Автокомплит для глобальных перечислений и функций
  • Автокомплит для метаданных (Справочники, Документы и т.п.)
  • Автокомплит для объектов метаданных (СправочникСсылка, ДокументОбъект и т.п.)
  • Подсказка параметров конструкторов и методов
  • Подсказка для типов
  • Вставка готовых блоков кода (сниппеты)
  • Вызов конструктора запроса и конструктора форматной строки
  • Загрузка пользовательских функций и сниппетов
  • Выделение строки, при выполнении которой произошла ошибка
  • Сворачивание циклов, условий и текстов запросов
  • Всплывающие подсказки для глобальных функций, перечислений и классов
  • Подсказки через точку для реквизитов типа справочники/документы
  • Подсказки через точку для объектов типа ТаблицаЗначений/Массив/РезультатЗапроса/ДвоичныеДанные и др., в том числе для объектов, полученных через методы других объектов.

Как запускать?

  1. Для запуска в браузере достаточно открыть index.html из каталога src, либо воспользоваться ссылкой
  2. Для запуска в 1С можно использовать обработку console.epf, выкладываемую в релизах или сделать свою.

Функции для взаимодействия с 1С:Предприятием

Для управления редактором кода из 1С:Предпрития вы можете вызывать методы-действия объекта редактора, полученного из HTML-документа расположенного на форме.

Функция Описание
setText Устанавливает переданный текст в текущую или определенную позицию
getText Возвращает весь текст из окна редактора
eraseText Удаляет весь текст редактора
getQuery Определяет текст запроса в текущей позиции и возвращает его вместе с областью текста
getFormatString Определяет текст форматной строки в текущей позиции
updateMetadata Обновляет через JSON структуру метаданных (Справочники/Документы/пр.)
updateSnippets Обновляет пользовательские сниппеты
updateCustomFunctions Обновляет пользовательские функции
setTheme Установка темы редактора bsl-white или bsl-dark
setReadOnly Устанавливает/снимает режим Только просмотр
switchLang Переключает язык подсказок с английского на русский и обратно
addComment Добавляет комментарий к текущему блоку кода
removeComment Удаляет комментарий у текущего блока
markError Индикация ошибки в указанной строке
findText Возвращает номер строки, в которой находится заданный текст
init Инициализация редактора с передачей версии платформы
enableQuickSuggestions Включает/выключает режим быстрых подсказок

Проверенные платформы:

  • 8.3.15.1830
  • 8.3.16.1148
  • 8.3.17.1386
  • 8.3.18.891

Известные проблемы:

  • На платформах до 8.3.16 могут не работать горячие клавиши CTRL+C, CTRL+V и CTRL+Z и т.п.
  • На платформах до 8.3.18 команды копировать/вставить работают только в пределах окна редактора
  • В веб-клиенте недоступно любое взаимодействие редактора и 1С. Можно попробовать только набор кода. Иногда для этого в браузере надо предварительно открыть данную ссылку
  • Работа в linux на данный момент не поддерживается.
  • Из-за особенностей реализации подсказка через точку для реквизитов ссылочного типа работает только тогда, когда подсказываемый реквизит выбран через Enter

Благодарности

Выражаю благодарность команде 1c-syntax и их проекту для VSCode за подробное описание внутренних конструкций языка в JSON, а также за коллекцию сниппетов.