Payments are experiencing issues due to temporary restrictions in Russia. If your payment does not go through, please submit a support request.Our support team is available 24/7 — we are always here to help with hosting and server issues.We are now accepting requests for dedicated server rental and colocation services in our data center.Reminder: we recommend enabling backups for additional data protection.A new VPS/VDS lineup with NVMe storage and improved performance is now available.Maintenance work on some servers has been completed. All services are operating normally.
Article5 min readViews2

Why 1C Exchange Creates Product Duplicates: How to Find and Fix the Cause

I analyze the causes of duplicates after a website 1C exchange and the safe diagnostic procedure: external identifiers, offers, repeated packages, and restoring links.

Two identical boxes as a metaphor for product duplicates after 1C exchange
In this article

After another exchange, a second product with a similar name appears in the catalog. Sometimes only one size is duplicated, sometimes an entire group. Deleting the extra card seems like a quick fix, but it returns with the next export.

The cause is almost never in the name, but in the object links. Integration must recognize an existing product by a permanent identifier. If this key changes, gets lost, or is matched at the wrong level, the system treats the record as new.

First, stop the proliferation of duplicates

Before diagnosing, pause the automatic exchange or switch it to a test circuit. Do not mass-delete products or run a full export to "fix" it: this can increase the number of copies and complicate restoring links.

Create a backup of the database and files, record the time of the last successful exchange, and save the logs. Select several "original–duplicate" pairs from different sections. For each pair, record the site internal ID, external identifier, SKU, entity type, creation date, and 1C identifiers.

This small set is usually sufficient to see the overall picture.

Reason 1: The external identifier has changed

The SKU and name are visible to the user, but integration often links objects by GUID or another external code. If an item in 1C was recreated, moved between databases, catalogs were merged, or export rules changed, it may receive a new identifier.

The website retains the old card, while the new key creates another one. Compare the external codes of the original and duplicate with the identifier of the same item in 1C. If they differ, you must restore the correspondence using the approved table, not by matching names.

Reason 2: Products and offers were swapped

In 1C-Bitrix: Site Management, a product with colors and sizes is often represented as a catalog element with associated trade offers. In 1C, a similar structure is built from items and characteristics.

If the export configuration previously exported characteristics as offers but now creates separate products after configuration changes, the catalog will visually duplicate. The reverse can also occur: an item identifier is recorded instead of a characteristic identifier, causing different variants to compete for the same link.

Check the parent product key and the key for each offer separately. Do not merge them just because the SKU or part of the name matches.

Reason 3: The website and 1C share ownership of the same field

Manually creating a product on the website is not always compatible with subsequent automatic export. A manager might have added a card without an external identifier, while 1C later created its own version. The same issue occurs after importing a catalog from a table if the import does not preserve the accounting system keys.

You must define a single source for the catalog structure or describe a procedure for linking manual cards. Automatic matching by name is risky: identical models can come from different suppliers, and even a minor text change can break the link.

Reason 4: Full and incremental exports use different rules

Standard exchange may transmit only changes, while a manual full export might use a different set of fields or a different schema version. After updating the module, 1C configuration, or modifying the data path handler, discrepancies can arise.

Compare the package that caused the duplicate with the previous successful one: export type, format version, identifiers, group structure, and offer structure. It is crucial to identify the exact moment the duplicate appeared, rather than analyzing the last run, which might have only updated an already existing copy.

Reason 5: Repeating a package is not safe

A network failure can occur after a product is recorded but before receipt is confirmed. 1C resends the packet, and the site handler creates the object again. A correct import must be idempotent: repeating an operation leads to the same state, not a new entity.

Check whether the packet identifier is stored, if it can be retried after a timeout, and if an existing object is searched for before creation. Pay special attention to custom handlers, queues, and intermediate services.

How to fix duplicates without losing data

First, eliminate the cause of new copies being created. Then compile a merge table: which card remains, which external identifier is locked, and where offers, images, stock levels, reviews, and SEO fields are moved.

The card to keep is chosen not just by date. An older page may have a search address, view history, and reviews, while a newer one may have the correct link to 1C. Sometimes it is safer to move the external identifier to the old card; other times, keep the new one and set up a redirect from the old address. The decision depends on the data and catalog architecture.

Orders cannot be remapped blindly. Old order lines must preserve product history, price, and tax. Before a mass operation, verify a database copy and several orders from different periods.

After merging, first perform a small export of a single test product, then repeat the same package, and only then execute the full exchange. Compare the number of items and offers before and after each step.

How to prevent recurrence

A stable process includes several rules:

  • External identifiers must not be changed without a migration plan;

  • Manual imports must preserve or correctly map keys;

  • Products and commercial offers are verified as separate entities;

  • Repeating a package does not create new records;

  • The log shows created and updated objects separately;

  • After updating modules, perform a test exchange on a copy;

  • A sudden increase in the number of products or offers triggers a notification.

The main criterion for a successful fix is the absence of disappearing visible copies. You must prove that the same object maintains its link during changes, full exchanges, and re-uploads. Only then can the catalog be considered restored.

Discussion0

Share your experience and ask questions. Comments without links appear after editorial review.

No comments yet. Start the discussion.