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 readViews5

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 order: external identifiers, product variants, repeated packages, and restoring links.

Comments 0

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, is lost, or is matched at the wrong level, the system treats the record as new.

First, stop the duplication of duplicates

Before diagnostics, pause automatic exchange or switch it to a test circuit. Do not mass-delete products or run a full export to fix the issue: it may increase the number of copies and complicate link restoration.

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, dictionaries were merged, or export rules changed, it may receive a new identifier.

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

Reason 2: The item and product variant were swapped

In 1C-Bitrix: Site Management, a product with colors and sizes is often represented by a catalog element and linked product variants. In 1C, a similar structure is built from nomenclature and characteristics.

If the export configuration previously exported characteristics as variants but, after configuration changes, began creating separate items, the catalog will visually duplicate. The opposite case is also possible: the nomenclature identifier is recorded instead of the characteristic identifier, so different variants compete for the same link.

Check the parent item key and the key of each variant separately. They must not be merged simply 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 dangerous: identical models can come from different suppliers, and a minor text change can break the link.

Reason 4: Full and incremental exports use different rules

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

Compare the package that caused the duplicate with the previous successful one: export type, format version, identifiers, group structure, and product variants. 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: Re-running a package is not safe

A network failure can occur after a product is written but before acceptance is confirmed. 1C repeats the package, and the site handler creates the object again. Proper import must be idempotent: repeating an operation leads to the same state, not a new entity.

Check whether the package 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 product variants, images, stock levels, reviews, and SEO fields are moved.

The card to keep is chosen not only by date. An older page may have a search ranking, 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, it is better to 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 re-linked 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 control product, then repeat the same package, and only then proceed with the full exchange. Compare the number of elements and product variants 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 product variants are checked as separate entities;

  • Repeating a package must not create new records;

  • the journal displays created and updated objects separately;

  • after module updates, a control exchange is performed on a copy;

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

The disappearance of visible duplicates is not enough to consider the issue resolved. You must prove that the same object maintains its link during updates, full exchanges, and re-imports. Only then can the catalog be considered restored.

Discussion 0

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

No comments yet. Start the discussion.