Дубли товаров при выгрузке из 1С появляются, когда сайт перестаёт узнавать уже выгруженную позицию и создаёт её заново. Чаще всего причина в уникальном идентификаторе: номенклатуру пересоздали, базу перенесли, товар когда-то завели на сайте руками. Убрать задвоение несложно технически, сложнее сделать это так, чтобы не потерять страницы товаров, которые уже собирают трафик из поиска. Разбираем пять причин и порядок исправления.
Как сайт узнаёт товар из 1С
При обмене сайт не сравнивает товары по названию или артикулу. У каждой позиции номенклатуры в 1С есть уникальный идентификатор — длинная строка вида GUID. Его выгружают на сайт и сохраняют в карточке как внешний код. На следующем обмене сайт ищет товар по этому коду: нашёл — обновляет цену и остаток, не нашёл — создаёт новую карточку.
Отсюда главный вывод: любое действие, после которого у товара в 1С меняется идентификатор или на сайте теряется внешний код, рождает дубль. Название, артикул и фото могут совпадать полностью — для обмена это всё равно другой товар.
Так устроен и штатный обмен 1С-Битрикс, и большинство интеграций через API. Мы, настраивая обмен сайта с 1С, всегда начинаем с проверки: у всех ли карточек есть внешний код, совпадает ли он с позицией в 1С и нет ли на сайте товаров, которые обмен не узнаёт. Уже на этом шаге видно, сколько дублей есть и откуда они взялись.
Ошибка 1: номенклатуру пересоздали в 1С
Самый частый сценарий. Товар в 1С заведён криво — не та группа, не та единица измерения, — и кто-то вместо исправления помечает старую позицию на удаление и заводит новую. Для 1С это новый объект с новым идентификатором. Сайт получает его как новый товар, а старая карточка остаётся с нулевым остатком или продолжает висеть «в наличии», если остаток не обнулили.
Решение — правило для тех, кто работает с номенклатурой: исправлять существующую позицию, а не создавать новую. Если пересоздание неизбежно, например при переходе на характеристики, это нужно делать вместе с интегратором и планом сопоставления.
Ошибка 2: перенос базы, новая конфигурация или загрузка из файла
Переход с одной конфигурации 1С на другую, перенос номенклатуры между базами, загрузка справочника из Excel — всё это может создать позиции с новыми идентификаторами. Особенно опасна загрузка «с нуля», когда старую базу не переносят, а заводят товары заново. После первого обмена каталог на сайте удваивается целиком.
Если вы планируете переход на новую 1С, скажите об этом интегратору до переноса. Есть два пути: сохранить идентификаторы при переносе или заранее подготовить таблицу соответствия старых и новых кодов и прогнать её на сайте до первого обмена.
Запустить полный обмен сразу после перехода на новую базу, «чтобы проверить». Через час на сайте двойной каталог, половина карточек без фото и описаний, а поиск начинает индексировать новые адреса. Проверять нужно на тестовой копии сайта.
Ошибка 3: товары заводили на сайте вручную
Магазин запускали без обмена: контент-менеджер вручную создал карточки, написал описания, загрузил фото. Через год подключили 1С — и обмен создал вторую копию каждого товара, потому что у ручных карточек нет внешнего кода. Описания, фото и отзывы остались на старых карточках, цены и остатки пришли на новые.
Правильный порядок здесь — сначала сопоставить. Выгружаем из 1С список номенклатуры с идентификаторами, сопоставляем его с товарами сайта по артикулу или коду, проставляем внешние коды существующим карточкам и только потом включаем обмен. Тогда обмен обновит готовые карточки, а не создаст новые.
Ошибка 4: варианты товара заведены отдельными позициями
Это не технический дубль, но покупатель видит то же самое: десять карточек «Футболка базовая» с разными размерами в названии. Причина — в 1С каждый размер заведён отдельной номенклатурой, а не характеристикой. Обмен честно выгружает десять товаров.
Лечится переводом вариантов в характеристики в 1С, после чего на сайте получается одна карточка с выбором размера. Это изменение затрагивает идентификаторы, поэтому его делают по плану: какая карточка становится основной, куда ведут адреса остальных.
Ошибка 5: настройки обмена и повторные выгрузки
Иногда дубли создаёт сам обмен. Например, у обмена несколько профилей, и два из них выгружают один и тот же раздел в разные инфоблоки. Или кто-то вручную удалил товары на сайте, а потом запустил полную выгрузку, и часть позиций вернулась с новыми адресами. Отдельная история — заказы: если обмен не защищён от повторной отправки, при сбое связи в 1С появляются два одинаковых документа.
В наших интеграциях операции идемпотентные: повторная отправка того же заказа не создаёт второй документ. Для товаров защита та же — сопоставление строго по внешнему коду, без «создать, если не уверен».
Как убрать дубли и сохранить SEO-страницы
Удалить лишние карточки — пять минут. Но если у дубля и оригинала разные адреса, а в поиске стоит именно «старая» карточка, удаление обернётся потерей трафика. Поэтому порядок такой.
- ИнвентаризацияВыгрузить список товаров сайта с внешними кодами, артикулами и адресами и найти группы с одинаковым артикулом или названием.
- Выбор основной карточкиОсновной оставляем ту, что связана с актуальной позицией 1С. Если в поиске другая — переносим на основную описание, фото и отзывы.
- Сохранение адресаЕсли можно, основной карточке присваиваем адрес, который уже в поиске. Если нет — со старого адреса ставим постоянный 301-редирект.
- Деактивация дублейЛишние карточки сначала деактивируем, а не удаляем: так проще откатиться, если ошиблись в сопоставлении.
- Проверка обменаЗапускаем обмен на тестовом контуре и убеждаемся, что дубли не возвращаются.
| Ситуация | Что делаем с дублем | Риск для SEO |
|---|---|---|
| Дубль новый, в поиске нет | Деактивируем, потом удаляем | Низкий |
| В поиске старая карточка, обмен пишет в новую | Переносим внешний код на старую, новую удаляем | Низкий, адрес сохраняется |
| Варианты сводим в одну карточку | 301-редирект со всех вариантов на основную | Средний, нужен контроль позиций |
| Задвоился весь каталог после переноса базы | Таблица соответствия кодов, массовое сопоставление | Высокий, если чистить вручную и вслепую |
При чистке крупного каталога стоит подключить того, кто отвечает за продвижение. Дубли сами по себе мешают ранжированию: два адреса с одинаковым контентом конкурируют друг с другом. Аудит дублей входит в SEO-продвижение интернет-магазина, и чистку лучше синхронизировать с ним, чтобы редиректы и шаблоны мета-тегов не разошлись.
Найдём причину дублей, сопоставим каталог с 1С и почистим его без потери страниц в поиске. Дедупликация и маппинг входят в проект обмена.
Настроить обмен с 1СКак не допустить дублей снова
Чистка без изменения правил даёт эффект на месяц. Вот что стоит закрепить в регламенте.
- Номенклатуру исправляют, а не пересоздают
- Перенос базы или смена конфигурации согласуется с интегратором заранее
- Новые товары заводятся только в 1С, если они участвуют в обмене
- Товары, которых нет в 1С, помечены на сайте как «только сайт»
- Варианты одного товара ведутся характеристиками
- У каждой позиции уникальный артикул
- Полный обмен после крупных изменений сначала идёт на тестовую копию
- Настроен мониторинг обмена с алертами о массовом создании товаров
- Удаление товаров на сайте делается деактивацией, а не удалением
Что делать дальше
Если дублей немного, начните с инвентаризации: выгрузите товары сайта с внешними кодами и найдите пары. Часто достаточно перенести внешний код на «правильную» карточку и деактивировать лишнюю. Если задвоился весь каталог или вы не понимаете, откуда берутся новые дубли, нужен аудит обмена: смотрим профили выгрузки, логи и историю изменений в 1С.
Для сайтов на Битриксе разовую чистку и правку обмена удобно оформить как задачу в рамках доработки сайта на 1С-Битрикс: оценка за один рабочий день, работа на тестовой копии. Если проблема системная и обмен давно живёт своей жизнью, разумнее пересобрать его заново — с аудитом, дедупликацией и мониторингом в рамках интеграции интернет-магазина с 1С. Чем отличается стандартный обмен от своего, мы разбирали в статье о CommerceML и собственной интеграции.
Почему товары задваиваются при обмене 1С с Битриксом?
Сайт сопоставляет товары по внешнему коду из 1С. Если код поменялся или его нет у карточки, обмен создаёт новый товар, даже при совпадающем названии.
Что такое уникальный идентификатор товара в 1С?
Внутренний код объекта номенклатуры, который не меняется при правке названия или артикула. По нему сайт понимает, какую карточку обновлять.
Можно ли просто удалить дубли?
Можно, если они не в поиске. Если у дубля есть позиции, сначала переносим контент на основную карточку и ставим 301-редирект со старого адреса.
Нужна ли чистка номенклатуры в самой 1С?
Если дубли есть внутри 1С, да, иначе они вернутся на сайт. Саму 1С мы не переделываем, но покажем, какие позиции объединить.
Сколько стоит устранение дублей?
Разовая доработка на Битриксе — от 80 000 ₸, точную оценку даём за день. Новый обмен с дедупликацией — от 350 000 ₸.