内容
* [](https://github.com/elemctl/blob/main/README.ru.md)
一款用于在 **:Enterprise.Element** 云1cmycloud.com)上通过 Console API v2 管理命令行工具、MCP Python 库。
elemctl 涵平台上的应用程序生命周期,而无需使用网页控制台:创建从项目源构建 `.x`.xlib` 档、上传构建、将其确保应用确实生效可能会静默回滚管理开发环境分支、数据转储和技术版本。同样的引擎以三种方式提供:用于终端 的 `elemctl` 命令、用于 AI 代理(Claude Code 和其他 MCP 客户端)的 MCP 服务器,以及用于您自己的脚本的 `elemctl` Python 模块。
*elemctl 是一个 CLI 工具、MCP 服务器和 Python 库,用于 1C:Enterprise.Element(1cmycloud)Console API:管理应用程序、上传构建并部署,并带有诚实的应用验证。CLI 输出为。*
开发笔记和更新(俄语): × AI:坊](https://tceh_1c Telegram 频道。
## 功能
- **应用程序**:列表、详情、创建、启动、停止、删除、技术版本、调试(`apps debug`)。
- **项目和构建**:上传 `.xasm`/`.x、列表构建、删除。
从源代码构建将项目目录(`Проект + 模块)打包成带有清单和 git 元数据的构建,并自动增加版本号。
一键部署**:构建 -> 上传 -> 应用 -> 重启 -> **验证应用是否确实生效**。
- **开发环境分支**、创建、绑定到合并。
- **数据**:创建和检查就。
- **M**:将相同的操作作为给 AI 代理(Claude Code 和其他 MCP - **插件**:`importlib.metadata` 入口点 – 外部包提供平台调试(`elemctl debug-adapter`),而无需增加。
- **自我更新**:ctl self-update`解压轮文件更新包,即使 `elemctl.exe` 被正在运行的 MCP 服务器占用(普通的 pipx/pip 会破坏- **VS Code 调试)**:在ors/vscode`](editors/vscode)侣 – 通过平台内置的调试在纯 VS Code 中调试 1C:Enterprise.Element(XBSL)应用程序通过 `elemctl apps debug` 获取调试会话坐标。
### 诚实的应用验证癖:如果失败,平台会 **静默回滚** 应用程序到以前的构建 – `Running` 状态并不表示部署是否成功`elemctl deploy信任状态,并在部署:
1. 后启动的 `Error`/`Failed` 状态的应用程序忽略历史中的旧;
2. 应用程序的实际项目版本(`source`)– 必须与刚刚上传的构建匹配;
3. 通过健康检查 HTTP 请求检查应用程序 URI 的可用性(信息性,报告中的 `uri-status` 字段:401/403 对关闭的应用程序来说是正常的)。
仅当构建确实,`deploy`代码为零。
```bash
pipx install elemctl :pip install elemctl install "elemctl[m # 带有
```
需要 Python 10+。核心和外部依赖(仅标准。
## 配置
来自环境变量或当前目录中的 `.env` 文件变量优先):
| | 用途 |
|| `ELEMENT_BASE_URL` | 平台基础 URL,例如://1cmycloud |
| `ELEMENT_CLIENT_ID` | 用于获取令牌的 Client-Id |
| `_CLIENT_SECRET` | 客户端| `ELEMENT` | 默认应用程序(可选) |
| `ELEMENT | 默认项目(可选 `ELEMENT_SPACE | 默认空间(可选)-Id/Client-S 1cmycloud 控制面板(Console API 集成部分颁发。文件env.example](.## 快速入门bash
# 列表elemctl apps list
应用程序详情(状态、实际项目版本)
elem get <app-id>
仅在应用程序不存在时创建:{"id": ..., " true|false}
elemctl acme-crm-dev-id <project-id>-build --wait
#代码进行完整部署循环,并带有应用验证
elemctlapp-id <app-idproject-id <project-idproject-dir acme/c# 调试会话数据debug-token": ..., "": ...}
# (服务器上启用调试:.yml enabled: true)
apps debug <app-id 仅构建 .x档,而不上传到
elemctl build --project-dir acme/crm --output
# 解析构建:清单、子系统、带有限定名称的全局elemctl inspect ./dist/e1c-CurrencyConverter-.xlib
#分支中的更改 branches merge <branch```
所有命令输出 JSON;长时间运行操作的进度 stderr。错误以带有` 字段和退出1 的 JSON 对象返回。
有关完整命令列表:`elemctl --help`,按组:`elemctl apps --help`,`elemctl deploy --help` 等。
## 语言
错误和进度消息以俄语和英语显示(JSON 结果为语言中立)。语言由 `--lang ru|en `ELEMCTL_LANG变量 > 系统区域设置语选择。文本为俄语。
##服务器将平台 MCP 工具暴露(传输):
```bash "elemctl[mclaude mcp add -- elemctl m```
服务器从相同的 `_*` 变量 /` 读取连接凭证。list_apps`_app`、`deploy`中带有 `ok``verify_de、`list_builds`、`` 等。
##
elemctl 通过 `.metadata` 入口点包:它在自己的.toml` 中插件信息,并在需要它们。这将不可发布的件保存在单独的 elemctl 核心和公开。
目前组 – **`elemctl`**:插件包声明平台调试适配器的目录(专C jars,不随 交付)。入口路径或返回路径的可调用对象;路径适配器 jars 的 `repo目录。
```
# 插件包project.toml
[project."elemctl.debug_adapter"]
name = "my_package_root" # ()包含 repo/ 的目录
```
```bash
已安装的插件获取(适用于 VS):
# {" "...", "found": 或 {"path": nullfound": false}
debug-adapter
#的插件 – 安装诊断 plugins
```
本身(专有 jars)由 `tools_adapter.py` 从平台版中提取 –手动 `xbslPath` 的目录,或插件包。脚本在包分发版中。
通过 `ELEMCTLUGINS=1`插件发现(仅功能运行)。
## VS Code
两个配套扩展将 集成到编辑:
- [XBhttps://marketplace.visual/items?itemName=.xbsl)([xbsl-lint](https://github.com/keyfire/xbsl-lint) 项目)– 高亮、校验、表单预览和 *XBSL: 部署项目* 按钮,该按钮将 `elemctl deploy` 作为终端任务运行,并带有应用验证。
- [XBSL 调试://marketplace.visualstudio.com/items?itemName=keyfire.xbs)(位于此仓库[`editors/v`](editors/v)– 使用平台AP 适配器调试 1C:Element 应用程序会话数据来自 `elem debug`。
两者 [Open VSXopen-vsxnamespace/keyfire)。
## 作为库使用
```python
ctl import Config, Elementfrom elemctl.deploy_from_sources
client =.from_env())
apps = client.list_apps()
report = deploy_from_sources(
,
app_id=" project_id="...",
projectacme/c log=print,
report.ok, report
```
## 构建`.xasm`)和 `.xlib`)是 ZIP 存档:
```
Assembly.yaml 单:ProjectKind、Name、Version、name}/... 项目文件:.yamlxbsl、```
项目目录必须遵循}/{vendor}/{name.yaml` 布局 – 存档相对于仓库根项目类型(应用程序/库 `Проект.yaml `ВидПро 字段确定。
限制和状态
- 该工具 **非官方**1C 公司无关;Console API 可能会在未通知的情况下更改。
- 仅使用已记录的 Console API v2 – 该工具不调用或描述平台控制台的内部 API。
-凭 `--project-id` 创建应用程序会在某些平台配置中生成一个空的骨架,而不包含项目数据。可靠的路径是构建源:`elemctl apps create <name> --project-id <id> --latest-build`(`create_app` MCP 工具自动替换最新的构建),然后在创建后使用 `elemctl deploy`。
- 已删除的应用程序在平台列表中保留为 `Deleted` 状态和其 `id`,`apps get` 和 `deploy` 返回 404。`apps find` 和 `apps ensure` 跳过它们;要恢复以前的搜索行为,请使用 `apps find --include-deleted`。
- 平台不允许您删除具有开发环境中未发布更改的应用程序(HTTP 400 `FAILED_PRECONDITION`),并且 Console API 中没有强制删除 – 只能通过控制面板删除;elemctl 在错误消息中指出了这一点。
- 重新创建应用程序(删除 + 创建)会更改其 URL – 绑定到地址的外部设置(OIDC 重定向等)需要更新。Console API 中没有“软”清除应用程序数据;它在管理控制台中完成。
## 起源和法律说明
代码是根据平台的外部接口规范从头开始编写的 – 过程和保证在 [ORIGIN.md](ORIGIN.md) 中描述。商标和与 1C 公司的非关联性在 [NOTICE](NOTICE) 文件中涵盖。
## 许可证
[MIT](LICENSE)