Skip to content

Параметры инструментов ​

wait принимает каждый инструмент, projectPath все, кроме project_list и project_select; остальные параметры появляются только у тех команд, к которым применимы: у прогона тестов нет sha.

ПараметрНазначение
projectPathКорень проекта (папка с packagedef). Без него команда выполняется в текущем проекте окна, относительный путь считается от текущего проекта. Текущий проект не меняет
rootКорень проекта для project_select: абсолютный путь из ответа project_list
settingsFileФайл настроек vanessa-runner относительно projectPath. По умолчанию активный профиль проекта (env.json)
ibConnectionЯвная строка подключения к ИБ. Без неё берётся значение из файла настроек, иначе /F./build/ib
shaSHA коммита для 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_Номенклатура
availableodata_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 перекрывает активный профиль для конкретного вызова. Так выбирается нужный набор сценариев, не переключая профиль в статус-баре:

jsonc
// прогон init-сценариев вместо основного набора
{ "projectPath": "C:/work/erp", "settingsFile": "tools/vrunner.init.json" }

Стандартный интерфейс OData ​

odata_query читает и меняет данные базы через …/odata/standard.odata/. Адрес берётся у автономного сервера проекта, когда он запущен с опубликованным OData, либо из параметра url для своей публикации. Учётная запись - db-user и db-pwd активного профиля или файла из settingsFile: пароль в вызов не передаётся.

jsonc
// десять товаров: только ссылка и наименование
{ "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 возвращает список ошибок с путём к файлу модуля, путём по метаданным и текстом сообщения.
  • Неудачный вызов помечается признаком ошибки: упавшие тесты, ошибки синтаксического контроля, ненулевой код возврата и обрыв связи с расширением.
  • Длинный вывод процесса обрезается: в ответе остаётся хвост с пометкой о пропущенном начале, полный лог доступен в панели расширения.

Распространяется по лицензии MIT.