Из-за временных ограничений на территории РФ наблюдаются проблемы с оплатой. Если платёж не проходит, оставьте запрос в службу поддержки.Служба поддержки работает 24/7 — мы всегда на связи по вопросам хостинга и серверов.Открыт прием заявок на аренду выделенных серверов и размещение оборудования в дата-центре.Напоминаем: рекомендуем включить резервное копирование для дополнительной защиты данных.Доступна новая линейка VPS/VDS с NVMe-дисками и увеличенной производительностью.Технические работы на части серверов завершены. Все сервисы работают в штатном режиме.
Статья5 мин чтенияПросмотры4

Почему обмен с 1С создаёт дубли товаров: как найти и устранить причину

Разбираю причины дублей после обмена сайта с 1С и безопасный порядок диагностики: внешние идентификаторы, предложения, повторные пакеты и восстановление связей.

Комментарии 0

Две одинаковые коробки как образ дублей товаров после обмена с 1С
В этой статье

После очередного обмена в каталоге появляется второй товар с похожим названием. Иногда дублируется только один размер, иногда — целая группа. Удалить лишнюю карточку кажется быстрым решением, но при следующей выгрузке она возвращается.

Причина почти всегда находится не в названии, а в связи объектов. Интеграция должна узнавать уже существующий товар по постоянному идентификатору. Если этот ключ изменился, потерялся или сопоставляется не на том уровне, система считает запись новой.

Сначала остановите размножение дублей

Перед диагностикой приостановите автоматический обмен или переключите его на тестовый контур. Не удаляйте массово товары и не запускайте полную выгрузку «для исправления»: она может увеличить количество копий и усложнить восстановление связей.

Сделайте резервную копию базы данных и файлов, зафиксируйте время последнего успешного обмена и сохраните журналы. Выберите несколько пар «оригинал — дубль» из разных разделов. Для каждой пары запишите внутренний ID сайта, внешний идентификатор, артикул, тип сущности, дату создания и идентификаторы в 1С.

Этого небольшого набора обычно достаточно, чтобы увидеть общий рисунок.

Причина 1. Изменился внешний идентификатор

Артикул и название видны пользователю, но интеграция часто связывает объект по GUID или другому внешнему коду. Если в 1С товар пересоздали, перенесли между базами, объединили справочники или изменили правила выгрузки, он может получить новый идентификатор.

На сайте остаётся старая карточка, а новый ключ создаёт ещё одну. Сравните внешние коды оригинала и дубля с идентификатором одной и той же номенклатуры в 1С. Если они различаются, нужно восстановить соответствие по утверждённой таблице, а не выбирать карточку по совпадению названия.

Причина 2. Товар и предложение перепутаны местами

В «1С-Битрикс: Управление сайтом» товар с цветами и размерами часто представлен элементом каталога и связанными торговыми предложениями. В 1С аналогичная структура строится из номенклатуры и характеристик.

Если конфигурация выгружала характеристики как предложения, а после настройки начала создавать отдельные товары, каталог визуально дублируется. Возможен и обратный случай: идентификатор номенклатуры записывается вместо идентификатора характеристики, поэтому разные варианты спорят за одну связь.

Проверьте отдельно ключ родительского товара и ключ каждого предложения. Их нельзя объединять только потому, что совпадает артикул или часть названия.

Причина 3. У сайта и 1С два владельца одного поля

Ручное создание товара на сайте не всегда совместимо с последующей автоматической выгрузкой. Менеджер мог добавить карточку без внешнего идентификатора, а 1С позже создала собственную версию. То же происходит после импорта каталога из таблицы, если импорт не сохраняет ключи учётной системы.

Нужно определить единственный источник для структуры каталога или описать процедуру связывания ручных карточек. Автоматическое сопоставление по названию опасно: одинаковые модели бывают у разных поставщиков, а небольшое изменение текста разрывает связь.

Причина 4. Полная и инкрементальная выгрузки используют разные правила

Обычный обмен может передавать только изменения, а ручная полная выгрузка — другой набор полей или другую версию схемы. После обновления модуля, конфигурации 1С или доработки обработчика пути данных иногда расходятся.

Сравните пакет, после которого появился дубль, с предыдущим успешным: тип выгрузки, версию формата, идентификаторы, структуру групп и предложений. Важно установить точный момент появления, а не анализировать последний запуск, который мог только обновить уже созданную копию.

Причина 5. Повтор пакета не является безопасным

Сетевой сбой может произойти после записи товара, но до подтверждения приёма. 1С повторяет пакет, а обработчик на сайте создаёт объект ещё раз. Правильный импорт должен быть идемпотентным: повтор одной операции приводит к тому же состоянию, а не к новой сущности.

Проверьте, хранится ли идентификатор пакета, можно ли повторить его после тайм-аута и выполняется ли поиск существующего объекта до создания. Особое внимание нужно кастомным обработчикам, очередям и промежуточным сервисам.

Как исправлять дубли без потери данных

Сначала устраните причину создания новых копий. Затем составьте таблицу объединения: какая карточка остаётся, какой внешний идентификатор закрепляется, куда переносятся предложения, изображения, остатки, отзывы и SEO-поля.

Карточку для сохранения выбирают не только по дате. У старой страницы могут быть поисковый адрес, история просмотров и отзывы, а у новой — правильная связь с 1С. Иногда безопаснее перенести внешний идентификатор на старую карточку, иногда — оставить новую и настроить перенаправление со старого адреса. Решение зависит от данных и архитектуры каталога.

Заказы нельзя перепривязывать вслепую. Строки старых заказов должны сохранять историю товара, цены и налога. Перед массовой операцией проверьте копию базы и несколько заказов разных периодов.

После объединения выполните сначала малую выгрузку одного контрольного товара, затем повтор того же пакета и только потом полный обмен. Количество элементов и предложений сравнивают до и после каждого шага.

Как предотвратить повторение

Устойчивый процесс включает несколько правил:

  • внешние идентификаторы нельзя менять без плана миграции;

  • ручные импорты обязаны сохранять или корректно сопоставлять ключи;

  • товар и торговое предложение проверяются как разные сущности;

  • повтор пакета не создаёт новые записи;

  • журнал показывает созданные и обновлённые объекты отдельно;

  • после обновления модулей выполняется контрольный обмен на копии;

  • резкий рост количества товаров или предложений вызывает уведомление.

Одного исчезновения видимых копий недостаточно, чтобы считать проблему исправленной. Нужно доказать, что один и тот же объект сохраняет связь при изменении, полном обмене и повторной загрузке. Только после этого каталог можно считать восстановленным.

Обсуждение 0

Делись опытом и задавай вопросы. Комментарии без ссылок появляются после проверки редактором.

Пока никто не написал. Начни обсуждение.