1C-Bitrix + 1C-EDO Integration: Automate Document Workflow

When placing an order on a 1C-Bitrix website, accountants often have to manually create UPD in 1C and send it via 1C-EDO. This takes hours and risks errors in requisites. We solve this in 2–4 weeks: we configure automatic transfer of orders from Bitrix to 1C, and from there to the counterparty via 1

Our competencies:

Frequently Asked Questions

Latest works

  • image_website-b2b-advance_0.webp
    B2B ADVANCE company website development
    1441
  • image_bitrix-bitrix-24-1c_fixper_448_0.webp
    Website development for FIXPER company
    1013
  • 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
    752
  • image_bitrix-bitrix-24-1c_mirsanbel_458_0.webp
    Development based on 1C Enterprise for MIRSANBEL
    873
  • image_crm_dolbimby_434_0.webp
    Website development on CRM Bitrix24 for DOLBIMBY
    791
  • image_crm_technotorgcomplex_453_0.webp
    Development based on Bitrix24 for the company TECHNOTORGKOMPLEKS
    1154

When placing an order on a 1C-Bitrix website, accountants often have to manually create UPD in 1C and send it via 1C-EDO. This takes hours and risks errors in requisites. We solve this in 2–4 weeks: we configure automatic transfer of orders from Bitrix to 1C, and from there to the counterparty via 1C-EDO. No double data entry.

1C-EDO is a built-in electronic document exchange service in 1C configurations (Accounting, Trade Management, ERP). When a company already uses 1C-EDO for internal workflow, the task of integration with a 1C-Bitrix website is formulated as: orders from Bitrix automatically enter 1C, and UPDs, invoices, and acts are created and sent via 1C-EDO without duplicate data entry.

According to our project data, automation reduced order processing time from 2 days to 35 minutes.

Interaction Scheme

Bitrix (order created/paid) → Standard exchange Bitrix→1C (CommerceML/REST) → 1C: realization/act created → 1C-EDO: document sent to counterparty via operator → 1C: signing status received from operator → 1C→Bitrix: document status updated in order 

Bitrix in this scheme is the order source. 1C is where accounting documents are created. 1C-EDO is the transport.

Configuring Bitrix ↔ 1C Exchange

Standard exchange works via bitrix:catalog and bitrix:sale.export over CommerceML 2.10. In 1C, it's connected via "Exchange with Site" in the configurator.

For automatic order transfer to 1C, we set up an export schedule: every 15–30 minutes or on event via \Bitrix\Main\EventManager. With fast REST API exchange in 1C, near real-time is possible: the OnSaleOrderPaid event in Bitrix triggers a POST request to the 1C REST service.

\Bitrix\Main\EventManager::getInstance()->addEventHandler( 'sale', 'OnSaleOrderPaid', function (\Bitrix\Main\Event $event) { $order = $event->getParameter('ENTITY'); if ($order->isPaid()) { // Send order to 1C immediately (not waiting for cron) \Local\OneCIntegration\OrderSync::pushOrderToOnec($order->getId()); } } ); 

In 1C, the REST service (PublishedHTTPServices) receives the order and creates a realization document. Then 1C-EDO automatically (based on 1C settings) or on button click sends the UPD to the counterparty.

Reverse Flow: Statuses from 1C to Bitrix

When the counterparty signs the document in their EDO system, 1C receives confirmation via the operator. Then 1C can call a Bitrix webhook or pass the status at the next scheduled exchange.

// Endpoint in Bitrix to receive statuses from 1C // /local/ajax/onec_edo_status.php $data = json_decode(file_get_contents('php://input'), true); if ($data['action'] === 'update_edo_status') { $orderId = (int)$data['order_id']; $edoStatus = $data['edo_status']; // 'signed', 'rejected', 'annulled' // Write to order custom field $order = \Bitrix\Sale\Order::load($orderId); if ($order) { $props = $order->getPropertyCollection(); $prop = $props->getItemByOrderPropertyCode('EDO_STATUS'); if ($prop) { $prop->setValue($edoStatus); } $order->save(); // Notify manager if ($edoStatus === 'rejected') { \CEvent::Send('EDO_DOCUMENT_REJECTED', SITE_ID, [ 'ORDER_ID' => $orderId, 'REASON' => $data['reason'], ]); } } } 

How Integration of 1C-Bitrix with 1C-EDO Reduces Document Workflow Time

Automated exchange via 1C-EDO is 80 times faster than manual data entry. Before/after comparison from our practice:

Metric Before After
Time from order to UPD sending 1–2 days (manual) 35 min (automatic)
Requisite errors (1C ↔ Bitrix mismatch) ~12%/month < 1%
Accountant busy with EDO (hours/day) ~2 hours ~15 minutes

Why Standard CommerceML Exchange Needs Refinement

Case: Manufacturing Enterprise Client: industrial equipment manufacturer. 1C UT 11.5 with 1C-EDO. Website on 1C-Bitrix Site Management for B2B dealer orders. Goal: dealer places order on site, UPD automatically created and sent via EDO; no manual document creation by accountant or manager.

Issues:

  1. Standard CommerceML exchange had 30-minute delay and didn't transmit legal entity data (INN, KPP).
  2. 1C-EDO not set to automatic sending—required manual confirmation.
  3. Signing status not displayed in Bitrix.

Solutions:

  1. Extended CommerceML export via OnBeforeSaleOrderExport—added legal entity fields to XML.
  2. Configured automatic EDO rule in 1C: when creating a realization with a specific contract type—automatic sending.
  3. Developed reverse sync script: 1C calls Bitrix webhook every 15 minutes with statuses.

Mapping EDO Statuses to Bitrix Order Statuses

1C-EDO Status Bitrix Order Status Action
Sent EDO_SENT Notify manager
Delivered EDO_DELIVERED
Signed by counterparty EDO_SIGNED Close deal in CRM
Rejected EDO_REJECTED Notify + task for manager
Annulled EDO_ANNULLED Mark order

Considerations for Multiple EDO Operators

1C-EDO supports roaming between operators: a document sent through the operator serving the sender is delivered to the counterparty via their operator. In Bitrix code, this is transparent—routing logic is entirely on the 1C side.

What's Included in the Work

  • Audit of current Bitrix ↔ 1C exchange scheme: CommerceML or REST
  • Extension of export schema for EDO data (INN, KPP, document type)
  • Configuration of auto-sending rules via 1C-EDO in 1C
  • Reverse status synchronization: webhook or polling
  • Display of EDO status in Bitrix order (custom field)
  • Notifications for rejection or annulment
  • Training for the accountant on the mechanism

Timeline: With an existing Bitrix-1C exchange, 2–4 weeks for the EDO part. If exchange needs to be built from scratch, add 2–3 weeks. We'll assess your project in 1 business day. Contact us for an audit of your exchange scheme. Order integration and receive a free consultation.

We have implemented over 50 such integrations in 7 years. Warranty: testing on real orders before launch.