Параметры инструментов
wait принимает каждый инструмент, projectPath все, кроме project_list и project_select; остальные параметры появляются только у тех команд, к которым применимы: у прогона тестов нет sha.
| Параметр | Назначение |
|---|---|
projectPath | Корень проекта (папка с packagedef). Без него команда выполняется в текущем проекте окна, относительный путь считается от текущего проекта. Текущий проект не меняет |
root | Корень проекта для project_select: абсолютный путь из ответа project_list |
settingsFile | Файл настроек vanessa-runner относительно projectPath. По умолчанию активный профиль проекта (env.json) |
ibConnection | Явная строка подключения к ИБ. Без неё берётся значение из файла настроек, иначе /F./build/ib |
sha | SHA коммита для cf_loadInc; пустая строка — полная загрузка |
extensions | Расширения для cfe_* и тестовых test_*Exts: имя каталога, путь от корня рабочей области или имя из метаданных; без параметра — сохранённый выбор проекта |
updateDb | Обновить конфигурацию БД (UpdateDBCfg) тем же запуском после загрузки: cf_load, cf_loadFile, cf_loadByList, cf_loadInc, cfe_load. Без параметра загрузка идёт без обновления, если в настройках проекта не задано иное |
profile | Профиль запуска: какой выбрать в env_selectProfile, на какой прогон — в pipelines_run. Id (dev), имя файла или подпись |
environment | Окружение: какое выбрать в env_selectEnvironment, на какой прогон — в pipelines_run. Имя (ci) или файл (.env.ci), пустая строка — «По умолчанию» |
pipeline | Идентификатор или название цепочки для pipelines_run |
frameworks | Включаемые тестовые фреймворки для test_configure (vanessa, xunit, yaxunit, onescript, onebdd) |
execute, command | Путь к EPF/ERF и строка /C для epf_run |
outputDirectory | Каталог результата сборки и выгрузки в файл: cf_compile, cf_unload, cf_makeDist, cfe_compile, cfe_unload, epf_compileProc, epf_compileReport. Относительно projectPath или абсолютный |
outputName | Имя файла без расширения для тех же инструментов. Переменные ${name}, ${folder}, ${version}, ${gitBranch} подставляются и в outputDirectory |
resource | Ресурс OData для odata_query: набор (Catalog_Номенклатура), элемент (Catalog_Номенклатура(guid'…')), свойство или $metadata |
method | Метод HTTP для odata_query: GET (по умолчанию), POST — создание, PATCH — изменение переданных полей, PUT — замена элемента целиком, DELETE — удаление |
url | Адрес своей публикации ИБ для odata_query, например http://srv/base. Без него запрос идёт в автономный сервер проекта |
filter, select, expand, orderby, top, skip | Параметры выборки odata_query: уходят в запрос как $filter, $select и т.д. |
body | Тело POST, PATCH и PUT для odata_query: строка с JSON объекта, например {"Description":"Стол"} |
include, exclude | Объекты, которые odata_setup включает в состав стандартного интерфейса OData и исключает из него: Справочник.Номенклатура или Catalog_Номенклатура |
available | odata_setup добавляет к ответу все объекты, которые можно включить в состав |
wait | Ждать завершения и вернуть { success, exitCode, stdout, stderr, tests, artifact, artifacts, durationMs }. По умолчанию true: без ожидания исход операции неизвестен. false — команда уходит в UI-терминал, управление возвращается сразу |
Синхронный вызов ждёт до 30 минут; предел меняется переменной окружения MCP_1C_WAIT_TIMEOUT_MS в конфиге MCP. У самого агента бывает свой предел ожидания: если он обрывает долгую операцию, запускайте её с wait: false и смотрите ход выполнения в терминале VS Code.
Проекты окна
Проект это каталог с packagedef. В окне их может быть несколько: папки рабочей области, подпроекты внутри них и проекты в папках без packagedef. project_list возвращает { current, projects, candidates }: у проекта корень, имя, признак подпроекта, вид (kind: designer и edt по формату исходного кода 1С, onec без исходного кода, onescript), формат и имя конфигурации; в candidates папки и конфигурации без packagedef. project_select с root делает проект текущим так же, как выбор в окне VS Code.
project_init и deps_initPackagedef требуют projectPath: это каталог, в котором создаётся packagedef, папка рабочей области или каталог из candidates, в том числе внутри проекта. Без него ответ перечисляет такие каталоги.
Окно агента
Вызовы идут в окно VS Code или Cursor, из которого запущен агент. Агенту вне окон окно выбирается по projectPath: абсолютному или относительному от каталога, где запущен агент. Отказы выбора окна:
| Код | Когда | Что делать |
|---|---|---|
WINDOW_NOT_FOUND | Проект или папка агента не открыты ни в одном окне | Открыть проект в VS Code или Cursor и повторить вызов |
PROJECT_PATH_REQUIRED | Агент запущен вне окон и не передал projectPath | Передать projectPath проекта из списка открытых окон в ответе |
WINDOW_AMBIGUOUS | Папка открыта в нескольких окнах | Оставить папку открытой в одном окне |
WINDOW_CLOSED | Окно, из которого запущен сервер, закрыто или перезагружено | Перезапустить MCP-сервер |
VERSION_MISMATCH | Окно открыто с другой версией 1C: Platform Tools | Обновить 1C: Platform Tools и 1C: Platform Tools MCP |
WORKSPACE_NOT_TRUSTED | Папке не доверяют | Подтвердить доверие папке и повторить вызов. Команды других окон отсюда тоже не выполняются |
Профили запуска и settingsFile
settingsFile перекрывает активный профиль для конкретного вызова. Так выбирается нужный набор сценариев, не переключая профиль в статус-баре:
// прогон init-сценариев вместо основного набора
{ "projectPath": "C:/work/erp", "settingsFile": "tools/vrunner.init.json" }Стандартный интерфейс OData
odata_query читает и меняет данные базы через …/odata/standard.odata/. Адрес берётся у автономного сервера проекта, когда он запущен с опубликованным OData, либо из параметра url для своей публикации. Учётная запись - db-user и db-pwd активного профиля или файла из settingsFile: пароль в вызов не передаётся.
// десять товаров: только ссылка и наименование
{ "resource": "Catalog_Номенклатура", "select": "Ref_Key,Description", "top": 10 }
// изменение элемента: только по просьбе пользователя
{ "resource": "Catalog_Номенклатура(guid'…')", "method": "PATCH", "body": "{\"Description\":\"Стол\"}" }Ответ содержит код HTTP и тело. Большая выборка урезается по записям с пометкой, сколько показано. Ошибка объясняет причину: сервер не запущен или OData не опубликован, 401 по учётной записи профиля, набор не входит в состав интерфейса.
Как работать с данными продуктивной системы (учётная запись только на чтение, файл с учётной записью вне репозитория, правило для агента) — в руководстве Данные через OData.
odata_setup работает с базой профиля: без параметров возвращает состав, include и exclude меняют его точечно, остальные объекты остаются как были. Состав меняет служебная обработка в Предприятии, поэтому пользователю профиля нужны административные права.
Исходный код проекта
Каталоги исходного кода инструменты не принимают: конфигурацию, расширения, внешние обработки и отчёты расширение находит в проекте само, в выгрузке конфигуратора и в проектах 1С:EDT.
Состояние окружения и контекст выполнения
env_status— read-only инструмент: возвращает JSON с версией vanessa-runner, схемой настроек (v2/v3), активным профилем и файлом настроек, списком профилей, выбранным окружением и списком окружений (переменные только именами), причиной, по которой запуск не начнётся, временными параметрами (пароль замаскирован) и итоговой строкой подключения. Вызывайте его перед операциями, когда важно, с какими профилем и окружением они выполнятся.- Явно переданные
settingsFile/ibConnectionимеют приоритет над временными параметрами активного профиля; применение или отбрасывание временных параметров отражается строками[контекст] ...в stdout результата. - Тестовые инструменты (
test_vanessa,test_xunit,test_yaxunit) приwait: trueвозвращают фактический результат тестов по jUnit-отчёту: счётчики, путь к отчёту и упавшие тесты; упавшие тесты и отсутствующий отчёт даютsuccess: false. test_syntaxCheckприwait: trueвозвращает список ошибок с путём к файлу модуля, путём по метаданным и текстом сообщения.- Неудачный вызов помечается признаком ошибки: упавшие тесты, ошибки синтаксического контроля, ненулевой код возврата и обрыв связи с расширением.
- Длинный вывод процесса обрезается: в ответе остаётся хвост с пометкой о пропущенном начале, полный лог доступен в панели расширения.