用途
Highload blocks(高负载块)是 Bitrix 框架中用于存储大量结构化数据的扁平 ORM 表。其列由用户字段(UF_*)构成,不包含分区、树形结构或 SEO 属性。若需要分区、树或 SEO,应改用 bitrix-iblocks;若表结构由代码拥有,则应使用自有 tablet(bitrix-orm)。
主要能力
该技能覆盖以下主题,并对应到具体规则文档:
- 创建、重命名、删除块,UF 字段,存储布局,重新编译,迁移:rules/manage-blocks.md
- 记录 CRUD,多值与文件值,错误处理,幂等导入:rules/records.md
- hlblock 关联,_REF/_SINGLE,iblock 目录属性:rules/relations-directory.md
- ORM 事件(双重分发),权限 hl_element_*:rules/events-rights.md
- highloadblock.list / highloadblock.view 组件:rules/components.md
- 批处理、索引、缓存、SQL 跟踪、诊断:rules/performance.md
使用方式与不变量
- 首先调用 Loader::includeModule('highloadblock')。
- 通过稳定的 NAME 查找块;数字 ID 在不同环境中可能不同。
- 每请求调用一次 HighloadBlockTable::compileEntity($idOrNameOrRow),然后使用 $entity->getDataClass()。对于未知块,该方法会抛出 SystemException。
- 只能通过数据类(add/update/delete)写入,绝不要对 HL 表或其多值表执行原始 SQL。
- add()/update() 会静默丢弃未知键:应使用 $dataClass::getEntity()->hasField() 检查字段代码。
- 数据类调用从不检查权限;需自行检查 hl_element_*。
- 在 UF、NAME 或 TABLE_NAME 变更后,需在新请求中继续。
适用场景
适用于需要在 Bitrix 中管理高负载块结构、记录、关联、事件、权限与性能的场景。基线要求 main 23.0+,已验证 highloadblock 25.100.0、main 26.800.0。
限制
该技能不适用于需要分区、树形结构或 SEO 的场景(应使用 bitrix-iblocks),也不适用于表结构由代码拥有的场景(应使用 bitrix-orm)。其他具体限制暂未提供。