Setting up the exchange of Bitrix24 and 1C product items

Our company is engaged in the development, support and maintenance of Bitrix and Bitrix24 solutions of any complexity. From simple one-page sites to complex online stores, CRM systems with 1C and telephony integration. The experience of developers is confirmed by certificates from the vendor.
Our competencies:
Development stages
Latest works
  • image_website-b2b-advance_0.png
    B2B ADVANCE company website development
    1175
  • image_bitrix-bitrix-24-1c_fixper_448_0.png
    Website development for FIXPER company
    811
  • image_bitrix-bitrix-24-1c_development_of_an_online_appointment_booking_widget_for_a_medical_center_594_0.webp
    Development based on Bitrix, Bitrix24, 1C for the company Development of an Online Appointment Booking Widget for a Medical Center
    564
  • image_bitrix-bitrix-24-1c_mirsanbel_458_0.webp
    Development based on 1C Enterprise for MIRSANBEL
    747
  • image_crm_dolbimby_434_0.webp
    Website development on CRM Bitrix24 for DOLBIMBY
    655
  • image_crm_technotorgcomplex_453_0.webp
    Development based on Bitrix24 for the company TECHNOTORGKOMPLEKS
    976

Configuring Product Line Exchange between Bitrix24 and 1C

When a manager creates a commercial proposal or invoice in Bitrix24, they select products from the CRM catalog. This catalog is a separate entity, not connected to 1C by default. Current prices, stock, new items — all need to be synchronized manually or set up for automatic exchange.

Products catalog in Bitrix24 CRM

The CRM catalog is stored in b_crm_product tables (line items) and b_crm_product_section (sections). This is not the same catalog used in the sale internet store module — it's a separate structure, specific to CRM. Access via REST: crm.product.list, crm.product.get, crm.product.add, crm.product.update.

Each product has fields: NAME, PRICE, CURRENCY_ID, DESCRIPTION, XML_ID. The XML_ID field is key for synchronization: this is how correspondence is established between a CRM item and 1C nomenclature.

Exchange direction

Usually exchange is one-way: 1C → Bitrix24. 1C is the master system for nomenclature and prices, CRM receives updates. Reverse exchange (manager added product to CRM — appears in 1C) is rare and requires additional business logic.

What is transmitted from 1C to Bitrix24:

Data Comment
Product name How it displays in proposal and invoice
Product code / XML_ID Identifier for matching
Price (one or multiple price types) Retail, wholesale, dealer
Unit of measure pc, kg, m, etc.
Section/group Catalog structure
Activity indicator Products removed from sale

Stock balances are typically not transmitted to CRM catalog — they're needed in the internet store catalog, not CRM.

Synchronization mechanism

Option 1: REST API. A script or service on the 1C side (via external exchange component) calls Bitrix24 methods:

  • crm.product.list with XML_ID filter — check if product exists.
  • crm.product.update — update price and existing data.
  • crm.product.add — add new product.

Batch operations are performed via REST API batch requests (up to 50 methods in one request), which speeds up large catalog synchronization.

Option 2: Standard 1C-Bitrix24 module. Uses CommerceML export from 1C. In this case, the internet store catalog is synchronized (if it exists), and CRM catalog can be populated from it via additional script — exchange component creates/updates records in b_crm_product based on data from b_iblock_element.

Price types

If 1C has multiple price types (retail, wholesale), Bitrix24 CRM can also store multiple prices via product properties or price lists. For CRM deals, only base product price is used — the manager changes it manually in the line item. If automatic price types are needed in CRM, additional customization is required.

Exchange frequency

  • Catalog and prices — daily is sufficient for most businesses. If prices change several times a day — every 1-2 hours.
  • Execution — via Bitrix agents (\CAgent::AddAgent) or cron.

Setting up product line exchange takes 4-8 hours with a clean catalog with correct XML_ID in 1C.