vscode-1c-platform-tools
yellow-hammer/vscode-1c-platform-tools加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
凌晨两点,俄罗斯加尔金边疆州某 ERP 实施公司的运维窗口里,配置师 Sasha 面对一份刚导出的配置源码:3000 多个元数据对象、40 万行 BSL 代码、散落在七个分支上的定制扩展。传统 1C 开发工作流要求他打开 Windows 桌面版 1С:Enterprise 配置器,慢得像在开一辆 1998 年的卡车——而团队三个月前刚刚全部迁移到 Linux 与 Cursor。
就在这时,yellow-hammer/vscode-1c-platform-tools 出现了。它不是一个"1C 语言的 AI 代码补全插件",而是把 1C 开发这套沉重的仪式整体搬进现代编辑器的基础设施型扩展:项目树、元数据树、属性面板、测试面板、调试器、流水线、ER 图谱,再加上一个真正的 MCP 服务器,让 Claude Code / Cursor 这类 AI 代理可以直接驱动 1C 平台执行命令。

1C:Enterprise 是俄语区 ERP 市场的绝对主导平台,其配置器(Configurator)是一个基于 Windows 桌面、仅支持 BSL/OneScript、界面停留在 2000 年代审美、且完全闭源的 IDE。它的元数据模型(配置、目录、文档、寄存器、报表、角色)有自己的 XML 序列化格式(*.cf、*.cfe),有自己的一套专有扩展点机制,也有一整套围绕 vanessa-runner(Open Source 替代配置器 CLI)建立起来的社区工具链。
这个项目做的事情,本质上不是"写一个更好的插件",而是做 1C 生态的 VS Code 语言服务器兼操作总线:
packagedef)、1C:EDT(Java 集成开发环境)格式、OneScript 脚本工程;vanessa-runner 的几十条命令收进一棵可视化的命令树(信息库、配置、扩展、外部文件、发行版、启动、测试环境、依赖);.feature)、xUnit/Vanessa-ADD、YAxUnit、OneScript(OneUnit 与 1testrunner)、1bdd 五套框架;ibsrv 发布文件型信息库,在浏览器里直接调 HTTP/Web/OData 服务;customEditors、断点、调试器、walkthrough、键位,几乎接管了整个编辑器外壳。如果把 1C 平台比作一台只能从驾驶舱操作的挖掘机,那么这个扩展就是加装在挖掘机上的第二套驾驶舱,并且同时配了一个能听懂人话的调度员(MCP)。
vanessa-runner 进程里;扩展做的是遥控器;ibcmd);ibcmd 走服务端组件,让 GitHub Codespaces 这类无 GUI 的云端开发环境也能干活。
项目内嵌了 19 个 SKILL.md 技能包(resources/skills/1c-platform-tools-*/SKILL.md),按域拆分为配置、调试、依赖、EDT、扩展、OData、流水线、测试、会话等。每个技能都以"任务 → Command ID → MCP 工具名"的三列表格描述能力边界。
更关键的是 src/shared/agentGate.ts 这个代理门禁:代理发起的调用不允许弹出交互式窗口(因为用户可能根本没坐在电脑前——可能在用手机或 Web 会话)。无法非交互执行的命令会返回结构化错误,并附带"改用哪个参数化命令"的提示。这是一种很成熟的 Agent 工程直觉:把 GUI-only 的命令显式隔离出 Agent 通道。
代理还有一条"文件触发器"通道:在 .cursor/1c-platform-tools-run-command 写入一行命令 ID,扩展执行后删掉文件。数据侧则通过标准 OData 接口读取,避免为 AI 单独造一套数据通道。
从仓库结构看,这是一个成熟度相当高的 TypeScript 工程:
.ts 文件,功能代码 362 个、测试代码 241 个,测试/功能文件比约 0.67;xvfb-run -a npm test 跑真实的 VS Code Extension Host 集成测试,另有一个三平台矩阵(Ubuntu / Windows / macOS)专门做"活进程 argv 与输出编码"测试;pretest 串联了 schema 生成校验、编译、tsc --noEmit 类型检查、eslint --max-warnings 0,质量门禁相当严格;docs/ 下 22 篇功能手册(admin.md 32KB、metadata.md 34KB、tools.md 33KB),配套 VitePress 站点与 walkthrough 引导式教程;githubToken.ts 解释为何必须用 SecretStorage 而非 settings.json——后者会随 Settings Sync 外传甚至被提交进 Git)。
架构上,代码被切成 src/app(注册与生命周期)、src/commands(21 个命令族)、src/features(23 个业务特性:元数据、集群、调试、EDT、流水线、测试……)、src/shared(69 个横切模块)、src/webviews、src/utils 六层,典型的特性驱动 + 命令注册表结构,边界清晰。releases.1c.ru 凭据。对没有 1C 授权的团队来说,"开箱即用"是不成立的。ibsrv 的文件锁处理、路径编码、进程终止都留有大量 Windows 特判(src/shared/ibsrvDataLock.ts、shellEscape.ts)。这个项目最值得关注的不是 1C 本身,而是它示范了遗留平台如何"反向适配"AI 时代:不去改造那个改不动的闭源平台,而是站在编辑器这一层,把平台能力重新包装成 AI 代理可以理解(MCP 工具 + SKILL.md)、可以调度(命令树 + 文件触发器)、可以自动化(流水线 + Docker + CI)的接口。
这条路径与当年"用 IntelliJ 插件生态改造 Struts/Spring 老项目"、"用 VS Code 远程开发改造本地 IDE 工作流"高度同构:当底座不可动时,就在旁边建一个可编排的控制平面。 对任何手握存量封闭系统的团队——从老旧 MES 到金融核心——这都是可复用的思路。

适合:
结论:这是一个工程质量远超同体量垂直工具、但部署前提极其苛刻的 IDE 扩展。它把"1C 开发"这件事从 1998 年的卡车驾驶舱,搬进了 2026 年的智能代理调度台。