About bitrix-highloadblock
A development reference skill for Bitrix Highload blocks, covering flat ORM tables, UF_* fields, and record operations. It is for developers maintaining Bitrix data models, with guidance on relations, rights, events, migrations, and performance diagnostics.
Key features
- 01Manage Highload blocks and UF fields
- 02Use data classes for record CRUD
- 03Handle relations and directory properties
- 04Document ORM events and rights checks
- 05Guide batching and performance diagnostics
- 06Cover migrations and schema change rules
Use cases
- 01Create or modify Highload block fields
- 02Import or update Highload block records
- 03Troubleshoot relations, rights, or events
- 04Diagnose batching and cache performance
Install
Copy the command and run it in a terminal.
$
npx skills add https:/ / github.com/ bxmaximum/ bitrix-framework-skills --skill bitrix-highloadblockAfter installing, type/bitrix-highloadblockin Claude Code to confirm it loaded.
Bundled files
References and scripts installed along with SKILL.md.
rules/components.mdevents-rights.mdmanage-blocks.mdperformance.mdrecords.mdrelations-directory.mdDetails
From the project READMEHighload blocks
Baseline: main 23.0+ · Verified: highloadblock 25.100.0, main 26.800.0
Flat ORM tables whose columns are user fields (UF_*): no sections, tree or SEO. Need those → bitrix-iblocks; schema owned by code → own tablet (bitrix-orm).
| Task | Read |
|---|---|
| Create/rename/delete blocks, UF fields, storage layout, recompile, migrations | rules/manage-blocks.md |
| Record CRUD, multiple/file values, errors, idempotent import | rules/records.md |
hlblock links, _REF/_SINGLE, iblock directory property | rules/relations-directory.md |
ORM events (double dispatch), rights hl_element_* | rules/events-rights.md |
highloadblock.list / highloadblock.view | rules/components.md |
| Batching, indexes, cache, SQL tracking, diagnostics | rules/performance.md |
Invariants
Loader::includeModule('highloadblock')first. Find blocks by stableNAME; numericIDs differ per environment.HighloadBlockTable::compileEntity($idOrNameOrRow)once per request, then$entity->getDataClass(). It throwsSystemExceptionfor an unknown block.- Write only via the data class (
add/update/delete), never raw SQL on the HL table or its multiple-value tables. add()/update()silently drop unknown keys: check codes with$dataClass::getEntity()->hasField().- Data-class calls never check rights; check
hl_element_*yourself. - After UF,
NAMEorTABLE_NAMEchanges, continue in a new request.
Comments
Markdown supported