Integration of 1C-Bitrix with 1C:Enterprise

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

1C-Bitrix Integration with 1C:Enterprise

The standard exchange between 1C-Bitrix and 1C:Enterprise operates via the CommerceML 2.08 protocol — XML files that 1C uploads to the website via HTTP. On paper it looks simple: enable the exchange in the "Online Store" module, configure the publication address in 1C — and products synchronise. In practice, the very first real store with 50,000 SKUs and a non-standard product structure exposes every limitation of the standard mechanism.

How the Standard Exchange Works

The exchange process consists of two independent data flows:

Catalogue export (1C → website):

  1. 1C generates XML files import*.xml (catalogue structure, products, properties) and offers*.xml (prices and stock levels)
  2. Uploads the files to the website via HTTP POST to /bitrix/admin/1c_exchange.php
  3. The website parses the files and updates the product info block

Order exchange (website → 1C):

  1. The website generates an XML file with orders for the period
  2. 1C retrieves the orders and creates "Customer Order" documents
  3. 1C returns updated order statuses back to the website

The entry point on the website is the 1c_exchange.php script in the admin section. It processes the commands: checkauth, init, file, import.

Website-Side Configuration

Settings → Product Settings → Online Store → 1C-Bitrix: Trade Management:

  • Catalogue info block: select the info block into which the product catalogue will be imported
  • Price type: which price type from 1C becomes the primary price on the website
  • Upload images: enable only if product images are managed in 1C
  • Use product offers (SKU): for products with variants (colour, size)
  • Allow deletion: a dangerous option — products absent from the export will be deactivated

Critical setting — "Save changes made on the website": when enabled, description and image edits made on the website will not be overwritten at the next exchange. When disabled — every import overwrites content from 1C.

1C-Side Configuration

In the "Trade Management" configuration (UT 10, UT 11) or any configuration with a website exchange subsystem:

Sales → Website Exchange → Sites:

Publication address: https://myshop.ru/bitrix/admin/1c_exchange.php
Login: admin (or a dedicated user)
Password: ***
Exchange type: Data Exchange
Order export period: from the date of last exchange

To test the exchange in 1C: Website Exchange → Run Exchange. Detailed import logs are available in the website logs (/bitrix/modules/iblock/tools/).

Typical First-Run Issues

Timeout with large files. Exporting 50,000 products in a single XML file produces a 200–400 MB file. The server can take up to 30 minutes to parse it — the PHP process dies before that. Solution: in 1C settings, enable "Export files with N products per file" and set the threshold to 1,000–5,000.

Cyrillic characters in filenames. If the export folder path contains Cyrillic characters — files do not arrive. Change the publication path to transliterated Latin characters.

Encoding mismatch. 1C exports UTF-8, but older configurations may export windows-1251. Check the <?xml version="1.0" encoding="UTF-8"?> header in the file.

Product duplication. Each product in 1C has a unique ID identifier in CommerceML. If the 1C database was updated (migration, restructuring) and identifiers changed — all products will be recreated at the next exchange and the old ones deactivated. Result: thousands of duplicates and broken links.

Case Study: Integration for a Construction Materials Store

A building materials store, 80,000 SKUs, UT 11.4. The standard exchange was working, but after each 1C update (~once a month) 3–5% of products received new IDs due to batch re-linking. The website deactivated these products and managers restored them manually.

Solution: a middleware script run before import compares IDs from the new XML against a mapping table {old_id => new_id} generated at each exchange. If the ID changed but the SKU (Артикул) matches — the product is updated rather than recreated. The number of "lost" products dropped to zero. The script was added as a handler for the OnIBlockElementBeforeAdd event.

Access Rights for the Exchange Account

Do not use an administrator account for 1C exchange. Create a dedicated user:

  • Group with write permissions to the catalogue info block
  • Access to the exchange component in the admin section
  • No access to other admin sections

In 1c_exchange.php, rights are verified: the user must belong to a group with iblock_admin permission for the required info block.

Exchange Frequency and Server Load

Mode Server Load Use Case
Full export once per day Peak, 5–30 min Small catalogues (up to 10,000)
Full export + delta update Moderate Large catalogues
Stock and prices only, every hour Low Highly volatile warehouses
REST API + 1C events Minimal Real-time critical data

For large catalogues — separate the full catalogue synchronisation (at night) from price/stock updates (every hour). This significantly reduces server load during business hours.

Integration Timeline

Task Timeline
Standard catalogue + order exchange 1–3 days
+ Non-standard attribute structure 3–5 days
+ Resolving ID issues after database migration +1–2 days
Custom exchange via REST API 1–3 weeks