用途:在 Bitrix 环境中基于模板生成 DOCX/PDF 文档。仅适用于 Bitrix24 版本(云端与本地部署),安装需要 humanresources 模块,在“站点管理”中不存在;PDF/JPG 转换需要 transformer 模块和文档服务器。基线:main 23.0+;验证版本:documentgenerator 26.200.100、main 26.800.0。
主要能力与规则:
- 模板与占位符:支持占位符、修饰符、表格、图片,并可从代码创建模板,详见 rules/templates.md。
- 自定义数据:可定义自有实体的提供者类、字段、列表及注册,详见 rules/providers.md。
- 生成流程:生成 DOCX/PDF、编号、存储、删除、事件,详见 rules/generation.md。
- 权限与接口:模块权限、角色、模板访问、REST、UI 组件,详见 rules/access-rest.md。
- CRM 文档(发票、交易)使用 CRM 自带提供者:bitrix24-crm。
必要用法与不变量:
- Loader::requireModule('documentgenerator'),代码位于自有模块的 /local/modules/ 下,由该模块 id 注册提供者。
- 模板 MODULE_ID 必须等于一个已安装模块,否则提供者被静默忽略。
- 在调用 getFields() / Document::createByTemplate() 之前先调用 Template::setSourceType(),并检查 getSourceType()。
- 显式检查权限:UserPermissions、模板访问、Document::hasAccess();加载与创建本身不检查权限,用户 0 可通过数据检查。
- 文件引用使用 b_documentgenerator_file.ID(FILE_ID、PDF_ID),用 FileTable::getBFileId() 转换。
- PDF 为异步:使用 getFile(false) 生成或忽略转换错误,并响应 onDocumentTransformationComplete。