Why 1C Data Exchange Breaks: Duplicates, Lost Orders and Inventory Discrepancies

Contents
“Data exchange with 1C is broken again” is one of the most common phrases in companies where a website, portal, or CRM is connected to an accounting system. Usually, the problem is not with 1C or the website. The integration was built as a direct connection without safeguards against failures.
This article is for anyone who wants to understand what happens under the hood or is choosing a service provider.
Reason 1. Repeated requests and duplicates
The portal sends an order to 1C. No response arrives because of a timeout. The portal assumes the order did not get through and sends it again. Now 1C has two identical orders.
Solution: idempotency. Each operation has a unique key, and 1C or the integration layer checks whether it has already been completed.
Reason 2. No queue
If 1C is unavailable because of an update, restart, or resource-intensive report, direct data exchange simply fails. The order is either lost or gets stuck with an error that no one sees.
Solution: a message queue. Data is first saved in reliable storage, then delivered when the recipient is ready.
Reason 3. No retries
A temporary error is treated as a permanent failure. A minute later, 1C is available again, but the order is already marked as failed.
Solution: retries with increasing delays and a separate list of messages that could not be delivered after several attempts.
Reason 4. Event order
The “shipped” status arrives before “packed.” Or a price change arrives after an order that should already have used the new price.
Solution: versions and timestamps for each object, plus rules for handling outdated events.
Reason 5. The format has changed
A field is added, the configuration is updated, or a reference list is changed in 1C. Data exchange starts failing on every message.
Solution: format versioning and data exchange tests after every configuration update.
Reason 6. No reconciliation
Even a good integration sometimes makes mistakes. Without regular reconciliation, discrepancies accumulate for months.
Solution: daily automated reconciliation of the counts and amounts of orders, payments, and inventory balances, with a report on discrepancies.
Reason 7. No log
When a client complains about a lost order, no one can reconstruct what happened.
Solution: a log where each operation has an end-to-end ID, time, status, and error message.
Reason 8. Three systems without rules
The portal, 1C, and Bitrix24 exchange data pairwise, and each considers itself the primary system. A deal is closed in the CRM, but the order is canceled in 1C. A business partner is updated in one system but not in another.
Solution: a unified data map and an integration layer through which all data exchange passes.
What a business gains from reliable data exchange
- orders are not lost or duplicated;
- a failure in one system does not stop sales;
- errors are visible immediately, not a week later;
- support spends minutes, not hours, investigating incidents;
- updating 1C is no longer stressful.
Frequently asked questions
Can an existing integration be fixed?
Often, yes. Start with an audit: where data is lost, whether there is a log, and how errors are handled. Sometimes replacing the weak link costs less than fixing everything.
Does the integration need a separate server?
Yes, for a significant volume of data. An integration layer reduces the load on 1C and gives you control over data exchange.
Is it expensive?
It costs more than a direct connection upfront, but less than regularly losing orders and having employees investigate problems manually.


