Словарь
| база | информационная база 1С: конфигурации и данные, с которыми работают пользователи. Бывает файловой, в кластере или за автономным сервером; у проекта сколько угодно именованных баз, умолчание зовётся origin, как у гита |
| исходники | та же конфигурация, разложенная в файлы под контролем версий |
| набор исходников | каталог с одним предметом: конфигурация, расширение или группа внешних обработок |
| пакет | один файл с предметом: .cf, .cfe, .epf, .erf |
| выгрузка | база → исходники |
| загрузка | исходники → база |
| применение | основная конфигурация → конфигурация базы данных |
| исполнитель | инструмент или точка входа, которыми выполняется операция; роли и ограничения перечислены в списке инструментов |
| workPath | рабочий каталог раннера: журналы, временные файлы и то, что раннер пересчитает сам. Его можно удалить |
| localPath | личное состояние рабочей копии, которое без базы не пересобрать: память о том, на чём остановились, отдельная для каждой базы, стенды, которые поднял раннер, и файловая база по умолчанию. По умолчанию .local рядом с v8project.yaml; удаление workPath его не задевает |
| квитанция | ответ команды: что сделано, чем, что пропущено. Текстом или JSON |
| превью | --dry-run: показать план, ничего не делая |
Инструменты и сервисы
Раннер запускает утилиты, подключается к точкам входа и использует компоненты внутри клиента 1С. В таблицах указано, что делает каждый инструмент и как раннер с ним взаимодействует.
Утилиты и приложения
| Инструмент | Что это | Как использует раннер |
|---|---|---|
1cv8 DESIGNER | Конфигуратор 1С в пакетном режиме: административные операции с базой и конфигурацией. | Запускает процесс на операцию, передаёт аргументы, читает результат и журнал. Возможности зависят от команды и режима базы. |
1cv8 /AgentMode | Конфигуратор в режиме агента: точка входа для машинных команд по SSH. | Запускает собственный агент либо подключается к уже работающему. Собственным процессом управляет; подключённый внешний агент не завершает. SSH-клиент встроен в раннер. |
1cv8 ENTERPRISE | Толстый клиент 1С, выполняющий приложение и внешние обработки. | Запускает клиент для работы пользователя, тестов, внешней обработки или клиентского MCP. Ожидание завершения и управление процессом зависят от варианта запуска. |
1cv8c | Тонкий клиент 1С. | Запускает клиент по строке подключения или по веб-адресу через HTTP/HTTPS. Способы запуска описаны в launch. |
ibcmd | Утилита администрирования информационной базы из поставки платформы 1С. | Запускает на операцию. Утилита работает с файловой базой или напрямую с СУБД по dbms; кластерная строка подключения для прямого доступа не используется. До прямой работы серверные процессы, обслуживающие эту базу, должны быть остановлены: кластер или ibsrv. СУБД остаётся запущенной. См. условия работы с кластерной базой. |
1cedtcli | Командная строка 1C:Enterprise Development Tools (EDT). | Импортирует и экспортирует проекты EDT, проверяет исходники. Работает с проектами и рабочей областью EDT; раннер запускает разовую команду или управляет своей интерактивной сессией. |
webinst | Утилита платформы 1С для веб-публикации базы на Apache или IIS. | Запускает локально для создания или удаления публикации, записи default.vrd и настройки веб-сервера. Нужен доступ к каталогу и требуемой конфигурации веб-сервера. См. web publish. |
git | Система контроля версий исходников. | Запрашивает правила игнорирования и состояние локальных файлов, чтобы оценить риск потери работы перед заменой каталога. Раннер не создаёт коммиты и не отправляет изменения в Git; работа без Git возможна. |
| Браузер и обработчик ссылок ОС | Приложение по умолчанию для открытия веб-адреса. | launch web передаёт URL системе: open на macOS, xdg-open на Linux, rundll32.exe на Windows. Раннер не управляет вкладками и не проверяет доступность публикации при таком открытии. |
Серверы и внешние сервисы
| Компонент | Что это | Как используется |
|---|---|---|
Кластер 1С: ragent, rmngr, rphost | Агент сервера, менеджер кластера и рабочие процессы, обслуживающие информационные базы. | К базе через кластер подключаются Конфигуратор, агент и клиенты 1С. Кластер запускаете вы — службой или из консоли, и тогда раннер его процессы не трогает, — или раннер на своей машине Windows командой cluster start. |
| PostgreSQL для 1С | Сборка PostgreSQL для платформы: initdb, pg_ctl, postgres, pg_isready, psql. | СУБД вы поднимаете сами, и тогда раннер только идёт в неё по адресу из dbms. При dbms.managed раннер запускает её на своей машине Windows командой dbms start из каталога tools.postgres.path. |
ibsrv | Автономный сервер 1С: обслуживает базу, предоставляет прямой шлюз, агентский SSH-шлюз и HTTP-доступ. | Раннер использует SSH-шлюз; Конфигуратор и тонкий клиент могут подключаться по прямому шлюзу, клиенты — по HTTP. Сервер поднимаете вы, и тогда раннер его процесс не трогает, или раннер на своей машине командой standalone start. См. варианты подключения. |
Apache с модулем wsap | Веб-сервер и модуль расширения 1С, обслуживающие веб-публикации. | Публикацию настраивает webinst; браузер и тонкий клиент открывают её по HTTP/HTTPS. Веб-сервер соединяется с базой через модуль 1С. Раннер не запускает и не останавливает Apache. |
IIS с модулем wsisapi | Веб-сервер Windows и модуль расширения 1С для веб-публикаций. | Для публикации используется webinst, для открытия — веб-адрес. Запуском и остановкой IIS раннер не управляет. Готовую публикацию можно открыть без права менять её: достаточно web.url. |
| СУБД | Сервер базы данных, в котором хранится информационная база серверного варианта. | С СУБД работает кластер, ibsrv или ibcmd при прямом доступе. Раннер передаёт настройки dbms утилите; собственного SQL-драйвера для этих операций нет. Запуском и остановкой СУБД раннер не управляет. |
| GitHub Releases | Сервис публикации выпусков и файлов внешних инструментов. | tools download запрашивает выпуск и скачивает готовый артефакт или архив исходников. Запросы выполняет встроенный HTTP-клиент раннера. |
Компоненты внутри клиента 1С
| Инструмент | Что это | Как использует раннер |
|---|---|---|
| YAxUnit | Расширение 1С для выполнения модульных тестов. | Может скачать расширение или его исходники. Для test yaxunit подготавливает компоненты и параметры, запускает клиент 1С, затем читает JUnit и журналы. Загрузка файлов и установка расширения в базу — отдельные действия. |
| Vanessa Automation Single | Внешняя обработка .epf для сценарных тестов и автоматизации клиента 1С. | Может скачать обработку, передаёт ей настройки и запускает внутри клиента для test va или launch mcp va. Это компонент платформенного клиента, а не отдельная программа ОС. |
onec-client-mcp-devkit | Расширение, предоставляющее MCP-инструменты из клиента 1С. | Скачивает артефакт или исходники, подготавливает расширение для клиентского MCP и запускает клиент. При --wait-ready проверяет готовность MCP по HTTP. У Vanessa в режиме MCP есть собственная точка входа, проверяемая тем же механизмом. |
Администрирование кластера и работа с пакетами
| Инструмент | Что это | Взаимодействие с раннером |
|---|---|---|
rac План | Консольная утилита администрирования кластера 1С через RAS. | Управление сеансами своей базы: список, завершение и блокировка начала. Администрирование серверов, лицензий и профилей безопасности остаётся за пределами раннера. |
ras План | Сервер администрирования кластера 1С, к которому обращается rac. | Объявленный cluster.ras используется как готовый сервис: его запуск и остановка из раннера недоступны. Если адрес не задан, раннер запускает собственный RAS на своей машине на время команды и завершает его вместе с ней. У кластера, который запустил раннер, RAS работает вместе с кластером до cluster stop. См. варианты RAS. |
ibcmd-rs План | Отдельный конвертер между XML-исходниками и пакетом конфигурации без платформы 1С. | Раннер запускает его для преобразования исходников и пакетов. Совпадение части имени с ibcmd не делает утилиты взаимозаменяемыми. |
SSH, SFTP и HTTP — протоколы взаимодействия. Для агентского доступа и SFTP раннер использует встроенный клиент; внешние команды ssh и sftp не требуются. Docker относится к размещению серверов: раннер не вызывает Docker CLI. EDT IDE используется для разработки проектов; раннер обращается к 1cedtcli.
Режимы доступа к базе
Под вариантами команд эти значки показывают, как база обслуживается и что команда делает в каждом режиме. Рядом со значком всегда стоит название режима.
- Файловая
- База хранится в каталоге с файлом
1Cv8.1CD. Для доступа к ней не нужны кластер или автономный сервер. Варианты файловой базы. - Кластер
- Базу обслуживает кластер серверов 1С; данные хранятся в СУБД. Варианты кластера.
- Автономный
- Базу обслуживает автономный сервер
ibsrv. Она может храниться в файле или в СУБД. Варианты автономного сервера.
Значок обозначает режим доступа, а не утилиту команды. Вызов ibcmd сам по себе не делает базу автономной. Прямой доступ к СУБД описывается отдельно, вместе с условиями остановки обслуживающего базу сервера.
Форматы исходников
Формат задаёт, как исходники хранятся в проекте. Он выбирается ключом format в v8project.yaml и сочетается с любым режимом доступа к базе.
- Конфигуратор
- XML-формат выгрузки платформы. В проекте —
format: DESIGNER. - EDT
- Формат проекта 1C:Enterprise Development Tools. В проекте —
format: EDT. Обмен с базой проходит через XML-формат платформы (108).
Исполнитель команды выбирается отдельно от формата исходников. Подробнее — «Исходники и база».
Как читать схемы
Схемы нарисованы в нотации ArchiMate, уровень технологий: рамка — машина (node), прямоугольник — процесс (system software), скруглённый блок — точка входа (technology service), «документ» и цилиндр — данные (artifact), синий блок — сам раннер (application component). Подпись на стрелке называет канал и протокол; пунктир — сеть, сплошная — процесс или файл на той же машине. Серое — то, с чем раннер не разговаривает.
Операции платформы раннер поручает исполнителям. Утилиту он вызывает запуском процесса — аргументы командной строки, код выхода и журнал; с агентом и шлюзом говорит сессией SSH. Поэтому на стрелке от раннера стоит вид вызова, а не имя команды. Где раннер поднимает процесс сам, у стрелки написано «поднимает»: агент Конфигуратора он запускает и только потом к нему подключается, а шлюз автономного сервера работает вне раннера — туда идёт одна сессия. Сервер администрирования работает по тому же правилу: объявленный раннер использует, необъявленный поднимает сам.
Ответы команд
На странице каждой CLI-команды перечислены её классы результатов: выполнено, запланировано, пропущено, получено с предупреждением или не выполнено. Не каждый класс возможен у каждой команды. Сообщения платформы и пути могут различаться; классы и поля ответа позволяют понять исход.
Как читать CLI и JSON
В JSON ok сообщает об исходе всей команды. data содержит её результат, warnings — предупреждения, steps — шаги, error — причину неуспеха. У выполнения может быть отдельный data.execution.status: succeeded, failed, cancelled, timed_out или invalid_output.
Статус шага — другой уровень: succeeded, failed, skipped или degraded. Последний означает выполненный шаг с ухудшением/предупреждением, а не универсальный статус команды. Нельзя заменять предметные статусы clean, issues_found, up_to_date или planned одним этим перечнем.
В тексте итоговые знаки означают: ● выполнено, ▲ выполнено с предупреждениями, ✖ не выполнено, ○ пропущено. ◌ относится к текущему ходу работы, не к окончательному ответу. Последний отказ печатается в stderr как ERROR: ….
Отказ до работы и ошибка после начала
Ранний отказ может вернуть в data только {"message": "…"}. Когда сценарий уже получил предметный результат, ошибка сохраняет его собственную форму: выполненные шаги, опубликованные файлы, исход проверки, отчёт или пути журналов. Некоторые команды сохраняют форму операции даже при раннем отказе. ok: false не обещает, что ничего не изменилось.
Предупреждение не равно отказу: ok может оставаться true. У отдельных команд предупреждения находятся в data.message, журнале или диагностике исполнения, а не только в общем warnings. Превью тоже успешно, но работу не выполняет. provider_dispatched и PID читайте по правилам конкретного метода: они не заменяют его фактические статусы шагов и проверку готовности.
Причины отказов
error.kind группирует причину, error.code уточняет её. Код ошибки отдельного шага в data.execution.errors[].code принадлежит другому словарю. Коды выхода 2/3/4 относятся к CLI; код выхода внешней утилиты в data может отличаться.
| Причина и код | Род и выход CLI | Смысл |
|---|---|---|
Неверные настройки или ключиinvalid_argument | validationВыход: 2 | Запрос не прошёл проверку. |
Значение не поддерживаетсяunsupported_value | validation | Значение ключа или настройки не входит в допустимый набор для выбранной операции. |
Набор скрыт правилами gitsource_set_ignored_by_git | validationВыход: 2 | Правило игнорирования git прячет файл набора исходников: раннер не видит его изменений. |
workPath на другом томеwork_path_on_another_volume | validationВыход: 2 | pull: каталог набора и workPath лежат на разных томах, и выгрузку нельзя опубликовать переименованием; ничего не записано. |
Операция недоступнаcapability_unavailable | capabilityВыход: 2 | Нет подходящего способа выполнить операцию. |
Живой агент выключенlive_agent_off | capabilityВыход: 2 | agent hold при tools.designer_agent.live: false: раннер не держит живого агента. |
Неподходящий предметsubject | capabilityВыход: 2 | Операция неприменима к выбранному предмету, например к внешней обработке вместо конфигурации. |
Неподходящая цельtarget | capabilityВыход: 2 | Операция не выполняется для этой цели. error.next может назвать подходящую команду. |
Среда недоступнаenvironment_unavailable | environmentВыход: 2 | Не найдена требуемая утилита или среда не подготовлена. |
Нет выпуска платформыplatform_release_missing | environmentВыход: 2 | Нужной версии платформы на машине нет. Отказ называет запрошенный выпуск в platform_release и найденные установки. |
Предел живых агентовagent_limit | environmentВыход: 2 | agent hold: все живые агенты на пределе live-max удерживаются. Обычная команда в этом случае не отказывает, а работает с разовым агентом. |
Раннер в Joblive_agent_job | environmentВыход: 2 | agent hold: раннер запущен в Job, из которого нельзя выйти, и живой агент умер бы вместе с ним. |
Рабочий каталог занятworkspace_busy | workspaceВыход: 3 | Другой вызов владеет workPath; этот вызов не начинает работу. |
Файловая база занятаinfobase_busy | workspaceВыход: 3 | Другой вызов владеет файловой базой; этот вызов не начинает работу. Дождитесь завершения владельца базы и повторите команду. |
В базе есть сеансыinfobase_sessions | workspaceВыход: 3 | Операции нужна база без сеансов, а в ней работают; sessions перечисляет их. |
База открыта в Конфигуратореinfobase_designer_busy | workspaceВыход: 3 | Базу держит открытый Конфигуратор; sessions называет его. Закройте его или освободите живого агента (agent release). |
Сбой платформы или внешнего инструментаplatform_failure | platformВыход: 4 | Ошибка запуска, ненулевой выход либо другой сбой внешнего исполнения. |
Команда агента брошенаagent_command_abandoned | platformВыход: 4 | Второй сигнал бросил ожидание итога команды внешнего агента: агент мог её ещё выполнять, конец не подтверждён. |
Результат не подтверждёнinvalid_output | invalid_outputВыход: 4 | Ожидаемый файл или машинный ответ не получен либо невалиден. |
Ошибка выполнения сценарияruntime_failure | runtimeВыход: 3 | Сбой файловой системы, сети, публикации результата или другой шаг оркестрации; некоторые проверки возвращают этот же род. |
Операция отмененаcancelled | interruptionВыход: 4 | Терминальное прерывание; данные могут содержать уже выполненные шаги. |
Истёк срок выполненияtimed_out | interruptionВыход: 4 | Терминальное прерывание по сроку. У отдельных ожиданий предметный результат может оформляться как runtime_failure. |
План База ушла вперёдnon_fast_forward | non_fast_forward | Контроль поколений отказывается перезаписать непринятые изменения базы. |
План Нет памяти обменаuntracked_base | untracked_base | Для решения об обмене не хватает сохранённого состояния базы. |
Диагностика до ответа команды
Неизвестная команда, неизвестный ключ или ошибка синтаксиса аргументов возникают в парсере CLI до сценария. Парсер печатает диагностику и Usage, завершает процесс с кодом 2; JSON-конверт при этом не обещается. Это отличается от проверок глобальных ключей после разбора: они уже могут вернуть общий конверт отказа, даже для version.
Ошибка загрузки проекта после разбора команды оформляется общим отказом. Если сам раннер не удалось запустить или записать ответ, это сбой запуска/вывода процесса; ответа команды может не быть.
Примеры общих отказов
Это примеры формы CLI/JSON для разных причин. Они не обещают, что каждая команда выдаёт каждую причину; применимость указана на её странице.
Неверные настройки или ключи
ERROR: validation error: Неверные настройки или ключи
Операция недоступна
ERROR: capability unavailable: Операция недоступна
Неподходящая цель
ERROR: capability unavailable: the operation is not available for this target
Среда недоступна
ERROR: environment unavailable: required utility was not found
Рабочий каталог занят
ERROR: workspace busy: workPath is locked by another command
Файловая база занята
ERROR: infobase busy: file infobase is locked by another command
Сбой платформы или внешнего инструмента
ERROR: platform error: Сбой платформы или внешнего инструмента
Результат не подтверждён
ERROR: invalid output: Результат не подтверждён
Ошибка выполнения сценария
ERROR: runtime error: Ошибка выполнения сценария
Операция отменена
ERROR: cancelled: Операция отменена
Истёк срок выполнения
ERROR: timed out: Истёк срок выполнения