B2B Personal Account Development on 1C-Bitrix
We specialize in building B2B cabinets on 1C-Bitrix. Our experience spans dozens of projects with non-standard role logic, approvals, and integrations. Picture this: a corporate client logs into the cabinet but cannot find an order within two minutes, download an invoice, or check their credit limit. Instead, they call the manager. Such calls are a failure metric. We eliminate the root cause: we design the cabinet so that business processes run without employee distraction. We cut those calls by 50% — direct savings of your managers' time.
In 12–20 weeks, we deliver a turnkey cabinet where each employee sees only their tasks, orders are created from the legal entity, and documents from 1C are pulled automatically. Get your project assessed free — contact us.
How Role Management Works
The central entity is Company, linked to Bitrix users via a Highload-block b2b_company_users. Fields: UF_COMPANY_ID, UF_USER_ID, UF_ROLE, UF_ACTIVE, UF_CREATED_AT.
Roles are defined as constants in a module:
- ROLE_OWNER — full rights, manages employees and company details
- ROLE_BUYER — creates and views company orders
- ROLE_ACCOUNTANT — documents and finances only, no order creation
- ROLE_VIEWER — view history only
Inviting an employee: the owner enters an email → a token is generated → an email is sent via CEvent::Send with template B2B_COMPANY_INVITE → the link creates (or links) a Bitrix user → a record is added to b2b_company_users.
What is Needed Beyond Standard Orders
List of company orders, not user orders — CSaleOrder::GetList with filter by UF_COMPANY_ID (custom order field). Filter by status, date, manager. Search by order number and SKU via CSaleBasket::GetList with a subsequent JOIN.
Approval statuses: we add custom ones (APPROVAL_PENDING, APPROVED, REJECTED) to b_sale_status. Transitions are handled in OnSaleStatusOrderChange handlers with notifications via CEvent::Send. Order comments — via Highload-block order_comments with fields UF_ORDER_ID, UF_USER_ID, UF_TEXT, UF_CREATED_AT, UF_IS_INTERNAL (for internal notes).
Why 1C Integration is Critical
Documents from 1C are a key value. The scheme:
- In 1C, set up an HTTP service or regular XML export via CommerceML.
- A Bitrix agent (CAgent::AddAgent) polls the service every 2–4 hours.
- Results are stored in the Highload-block b2b_documents: UF_COMPANY_ID, UF_DOC_TYPE (invoice, waybill, reconciliation), UF_NUMBER, UF_DATE, UF_AMOUNT, UF_FILE_ID (or UF_EXTERNAL_URL).
- In the cabinet — a list with filters, PDF download.
If 1C provides PDFs directly — we cache them in /upload/b2b/docs/{company_id}/ named by document number. If only metadata — on click we make a request to 1C and stream the file via PHP without saving to disk (saves space).
Financial Summary
The "Finance" block on the dashboard: current credit limit and used amount (progress bar), overdue debt with date, monthly order total. Source — Highload-block b2b_credit_status, synced from 1C. If data is older than 6 hours — a warning "Data is being updated". If overdue exceeds a threshold — a banner in the header and the "Create order" button is blocked.
Notifications
Two channels:
- Email: mail events (CEventType, CEvent) B2B_ORDER_CREATED, B2B_ORDER_STATUS_CHANGED, B2B_ORDER_APPROVED, B2B_DOCUMENT_READY. Templates are editable in the control panel.
- Internal: unread counter in the cabinet via Highload-block b2b_notifications (UF_USER_ID, UF_TYPE, UF_TEXT, UF_LINK, UF_IS_READ, UF_CREATED_AT). AJAX every 30 seconds or WebSocket (pull module).
Comparison: Custom vs Standard Cabinet
| Criteria | Standard | Custom |
|---|---|---|
| Order search | Up to 5 seconds | Up to 1 second (3x faster) |
| Role management | Not present | 4 roles with flexible permissions |
| Documents from 1C | Not supported | Automatic pull |
| Approval | No | Custom statuses and notifications |
A custom cabinet cuts order creation time threefold — that's dozens of hours saved per month for your clients.
What is Included in the Work
- Audit of current business processes and requirements.
- Architecture design for roles and entities (Company, Highload-blocks).
- Development of components for order and document management.
- Integration with 1C via CommerceML or REST.
- Setup of notifications (email + internal).
- Testing on real scenarios.
- Handover of documentation and administrator training.
We are certified 1C-Bitrix partners, guaranteeing deadlines and full transparency. Contact us for a project assessment — we will prepare a custom proposal.
Timelines
| Block | Duration |
|---|---|
| Role and company architecture | 2–3 weeks |
| Company order management | 2–3 weeks |
| Documents and 1C integration | 2–4 weeks |
| Financial block | 1–2 weeks |
| Order approval | 2–3 weeks |
| Notifications | 1–2 weeks |
| Testing | 2–3 weeks |
Total: 12–20 weeks. Less if a ready-made framework is used. More if non-standard approval logic or complex 1C exchange is needed.







