Перейти к основному содержимому

Редактор кода

Подсистема включает редактор кода на базе Monaco или Ace с подсветкой синтаксиса BSL. Взаимодействие осуществляется из клиентского контекста через общий модуль УИ_РедакторКодаКлиент.

  • Модуль (клиент): УИ_РедакторКодаКлиент
  • Модуль (сервер): УИ_РедакторКодаСервер
к сведению

Подсистема поддерживает два типа редакторов: Monaco (по умолчанию) и Ace. Некоторые методы (оригинальный текст, контекст, определение метода) работают только для Monaco. Для каждого метода есть вариант ...ЭлементаФормы, принимающий элемент формы (ПолеФормы) вместо строкового идентификатора.

Подключение на форму

Пошаговая инструкция по встраиванию редактора кода на форму 1С вынесена в отдельное руководство в разделе Руководства.

Методы

МетодОписание
УстановитьТекстРедактора(Форма, Идент, Текст, УстОриг = Ложь)Установить текст редактора
УстановитьОригинальныйТекстРедактора(Форма, Идент, Текст)Установить оригинальный текст (Monaco)
УстановитьОригинальныйТекстРедактораРавнымТекущему(Форма, Идент)Оригинал = текущему
ТекстКодаРедактора(Форма, Идент)Получить текст кода
ОригинальныйТекстКодаРедактора(Форма, Идент)Оригинальный текст (Monaco)
ГраницыВыделенияРедактора(Форма, Идент)Текущие границы выделения
УстановитьГраницыВыделения(Форма, Идент, НачСтр, НачКол, КонСтр, КонКол)Установить выделение
ВставитьТекстПоПозицииКурсора(Форма, Идент, Текст)Вставить текст по курсору
ВыделенныйТекстРедактора(Форма, Идент)Получить выделенный текст
ДобавитьКомментарииСтрокРедактора(Форма, Идент)Закомментировать строки
УдалитьКомментарииСтрокРедактора(Форма, Идент)Раскомментировать строки
ДобавитьПереносСтрокРедактора(Форма, Идент)Добавить переносы строк
УдалитьПереносСтрокРедактора(Форма, Идент)Удалить переносы строк
ПереключитьВидимостьРедактора(Форма, Идент, НовВидим = Неопр)Переключить/установить видимость
РежимТолькоПросмотрРедактора(Форма, Идент)Получить режим "только просмотр"
УстановитьРежимТолькоПросмотрРедактора(Форма, Идент, Режим)Установить режим "только просмотр"
ПерейтиКОпределениюМетодаРедактора(Форма, Идент, ИмяМетода)Перейти к определению метода (Monaco)
РежимИспользованияОбработкиДляВыполненияКодаРедактора(Форма, Идент)Признак выполнения кода через обработку
УстановитьРежимИспользованияОбработкиДляВыполненияКодаРедактора(Форма, Идент, Режим)Установить режим выполнения кода
УстановитьЯзыкРедактораКода(Форма, Идент, Язык)Установить язык редактора
ПреобразоватьТекстЗапросаИзВыраженияВстроенногоЯзыкаРедактораКода(Форма, Идент)Преобразовать текст запроса
ДобавитьКонтекстРедактораКода(Форма, Идент, Контекст)Добавить контекст автодополнения (Monaco)
ВставитьМакроКолонкуРедактораЗапроса(Форма, Идент)Вставить макроколонку запроса
ОткрытьКонструкторЗапроса(Текст, Оповещение, РежКомп = Ложь)Открыть конструктор запроса
ОткрытьКонструкторФорматнойСтроки(Строка, Оповещение)Открыть конструктор форматной строки
ПоделитьсяКодом(Код, ЭтоЗапрос, Владелец = Неопр)Загрузить код в сервис и получить ссылку
НачатьЗагрузкуКодаИзСервиса(Оповещение, Владелец = Неопр)Загрузить код из сервиса по ссылке
НачатьСборкуОбработокДляИсполненияКода(Форма, Оповещение, Перем, ИдентКлиент)Собрать обработки для исполнения кода

Полное описание сигнатур и параметров — в исходном коде модуля.

Серверные методы

МетодОписание
УИ_РедакторКодаСервер.ФормаПриСозданииНаСервере(Форма, ВидРедактора = Неопр)Инициализация подсистемы редактора на сервере
УИ_РедакторКодаСервер.СоздатьЭлементыРедактораКода(Форма, Идент, Поле, События = Неопр, Язык = "bsl", Группа = Неопр)Создание элементов редактора на форме

Примеры

Установка и получение текста редактора

УИ_РедакторКодаКлиент.УстановитьТекстРедактора(ЭтотОбъект, "Код", "Сообщить(1)", Истина);

Текст = УИ_РедакторКодаКлиент.ТекстКодаРедактора(ЭтотОбъект, "Код");

Работа с выделением и комментариями

// Получить границы выделения
Границы = УИ_РедакторКодаКлиент.ГраницыВыделенияРедактора(ЭтотОбъект, "Код");

// Установить выделение (строки 1-5, вся строка)
УИ_РедакторКодаКлиент.УстановитьГраницыВыделения(ЭтотОбъект, "Код", 1, 0, 5, 0);

// Закомментировать выделенные строки
УИ_РедакторКодаКлиент.ДобавитьКомментарииСтрокРедактора(ЭтотОбъект, "Код");

// Раскомментировать
УИ_РедакторКодаКлиент.УдалитьКомментарииСтрокРедактора(ЭтотОбъект, "Код");

Вставка текста и управление видимостью

// Вставить текст в позицию курсора
УИ_РедакторКодаКлиент.ВставитьТекстПоПозицииКурсора(ЭтотОбъект, "Код", "Новый текст");

// Скрыть редактор
УИ_РедакторКодаКлиент.ПереключитьВидимостьРедактора(ЭтотОбъект, "Код", Ложь);

// Переключить видимость
УИ_РедакторКодаКлиент.ПереключитьВидимостьРедактора(ЭтотОбъект, "Код");