Кабинет
На этой странице

Инструменты · Код

code_write

W · записьпо подпискеизменяет проект

Правит один модуль BSL — добавляет метод в нужную область, заменяет точный фрагмент текста, удаляет метод. После записи модуль проверяется на синтаксис; при ошибке запись откатывается, и сломанный код в проекте не остаётся.

обновлено 30.09.2026плагин 0.2.0 · EDT 2025.2Предложить правку или письмом

Когда использовать

  • Добавить новый метод или несколько методов сразу — create_method; область создаётся сама, если её нет.
  • Изменить существующий код — edit: замена точного фрагмента, как у обычного инструмента правки файлов; в том числе переписать метод целиком.
  • Удалить метод вместе с директивой и комментарием — delete_method; опустевшая область удаляется.
  • Переименовать метод с обновлением вызовов в других модулях — не здесь, а code_action с операцией rename_method.

Соседние инструменты домена «Код»

Операции

Операции code_write
operationЧто делаетНужно передать
create_methodДобавляет метод в область area (по умолчанию СлужебныеПроцедурыИФункции). Отсутствующая стандартная область создаётся на своём месте по стандарту 1С, своя — ниже стандартных. Массив в content — пачка методов: одна проверка и одна запись, до 100 методов, всё или ничего.project, module_fqn, content; по желанию area, position
editЗаменяет old_string на new_string. Фрагмент должен встречаться в модуле один раз, иначе — replace_all: true. Пустая new_string удаляет фрагмент.project, module_fqn, old_string, new_string; по желанию replace_all
delete_methodУдаляет метод вместе с директивой и комментариями над ним; опустевшая область удаляется.project, module_fqn, method

Параметры

Параметры code_write
Параметр и типОбязательныйОписаниеПо умолчанию
projectстрокадаИдентификатор проекта рабочей области EDT — имя из ответа project_read (например, УТ2020). Для расширения — проект расширения.—
module_fqnстрокадаАдрес модуля: CommonModule.X, Catalog.X.ObjectModule, Catalog.X.ManagerModule, InformationRegister.X.RecordSetModule, <Тип>.X.Form.Y (модуль формы). Русские префиксы и суффиксы тоже принимаются.—
operationстрокадаОперация инструмента — значения и их смысл в таблице «Операции».значения: create_method · edit · delete_method—
methodстрокадля delete_methodИмя метода — для delete_method.—
contentстрока | массивдля create_methodДля create_method: полный текст метода — директива, объявление, тело, КонецПроцедуры или КонецФункции. Массив таких текстов — пачка: методы вставляются в порядке массива.—
areaстроканетДля create_method: имя области #Область, куда добавить метод. Отсутствующая область создаётся.СлужебныеПроцедурыИФункции
positionстроканетДля create_method: место метода в области — first, last, before:<метод>, after:<метод>. По умолчанию — в конец.—
old_stringстрокадля editДля edit: точный заменяемый текст с отступами. Должен быть единственным в модуле, если не задан replace_all.—
new_stringстрокадля editДля edit: новый текст. Пустая строка удаляет old_string.—
replace_allбулевонетДля edit: заменить все вхождения.false
skip_validationбулевонетtrue — не проверять синтаксис после записи. Позволяет записать неработающий код; включайте, только если уверены.false
dry_runбулевонетtrue — предпросмотр: текст временно записывается для проверки синтаксиса и гарантированно откатывается. Ответ содержит diff и результат проверки; файл не меняется.false
titleстроканетНеобязательная подпись вызова до 40 символов: клиент показывает её в шапке карточки вызова. На результат не влияет.—

Таблица собрана из схемы инструмента, которую получает агент при подключении.

Адреса

Адрес модуля задаётся параметром module_fqn. Поддерживаются общие модули, команды и формы, модули объектов и менеджеров, модули наборов записей регистров и модули форм.

Адреса code_write
АдресЧто адресует
CommonModule.<Модуль>общий модуль
Catalog.Контрагенты.ObjectModuleмодуль объекта
Catalog.Контрагенты.ManagerModuleмодуль менеджера
InformationRegister.КурсыВалют.RecordSetModuleмодуль набора записей
Catalog.Контрагенты.Form.ФормаЭлементамодуль формы

Пример вызова и ответа

Ответ всегда содержит секцию Diff с изменением модуля и поле validation с результатом проверки синтаксиса.

аргументы code_write
{
  "project": "УТ2020",
  "module_fqn": "CommonModule.<Модуль>",
  "operation": "create_method",
  "area": "ПрограммныйИнтерфейс",
  "content": "Функция ПолучитьДанные(Параметр) Экспорт\n\n\tРезультат = Новый Структура;\n\tРезультат.Вставить(\"Успех\", Ложь);\n\tВозврат Результат;\n\nКонецФункции"
}

Пример ответа в подготовке Устройство ответа — на странице Формат ответов.

Отказы и ошибки

rolled_back · синтаксическая ошибка

После записи модуль не прошёл проверку синтаксиса — изменение откачено, в ответе ошибки с позициями. Исправьте текст и повторите.

Фрагмент для замены не найден или не единственный

old_string должен совпадать с текстом модуля посимвольно, с отступами-табуляциями. Если вхождений несколько — расширьте фрагмент или задайте replace_all: true.

QUANTA_AST_NOT_READY

Сразу после запуска EDT дерево кода ещё строится. Повторите через 5–30 секунд — Инструменты не отвечают первые секунды.

failed · Unknown operation

Неизвестное значение operation. В ответе — fix_hint: supported: … со списком допустимых операций и секция Did you mean. Допустимо: create_method, edit, delete_method.

failed · лицензия

Без действующего ключа инструмент отвечает карточкой failed с сообщением лицензия: … и подсказкой, где ввести ключ; в секции Context — список инструментов, доступных без ключа. Подробнее — Лицензия и бесплатный доступ.

Ограничения

  • Пачка create_method — до 100 методов за вызов, атомарно.
  • Области #Область не правятся напрямую: их создаёт create_method и убирает delete_method.
  • Проверяется синтаксис; смысловые ошибки — неизвестные идентификаторы, вызовы несуществующих методов — проверяет validate с fqn объекта.
Нашли ошибку — предложите правку.обновлено 30.09.2026

Например: metadata_write, «порт занят», коллекционный адрес.

↑ ↓ выборEnter открыть/ или Ctrl K — открыть поиск