Настройка дедупликации товаров при автонаполнении 1С-Битрикс

Наша компания занимается разработкой, поддержкой и обслуживанием решений на Битрикс и Битрикс24 любой сложности. От простых одностраничных сайтов до сложных интернет магазинов, CRM систем с интеграцией 1С и телефонии. Опыт разработчиков подтвержден сертификатами от вендора.
Услуги, которые мы предлагаем
Показано 1 из 1Все 1626 услуг
Настройка дедупликации товаров при автонаполнении 1С-Битрикс
Простой
~1 день
Часто задаваемые вопросы

Наши компетенции:

Этапы разработки

Последние работы

  • image_website-b2b-advance_0.webp
    Разработка сайта компании B2B ADVANCE
    1322
  • image_bitrix-bitrix-24-1c_fixper_448_0.webp
    Разработка веб-сайта для компании ФИКСПЕР
    915
  • image_bitrix-bitrix-24-1c_development_of_an_online_appointment_booking_widget_for_a_medical_center_594_0.webp
    Разработка на базе Битрикс, Битрикс24, 1С для компании Development of an Online Appointment Booking Widget for a Medical Center
    663
  • image_bitrix-bitrix-24-1c_mirsanbel_458_0.webp
    Разработка на базе 1С Предприятие для компании МИРСАНБЕЛ
    811
  • image_crm_dolbimby_434_0.webp
    Разработка сайта на CRM Битрикс24 для компании DOLBIMBY
    710
  • image_crm_technotorgcomplex_453_0.webp
    Разработка на базе Битрикс24 для компании ТЕХНОТОРГКОМПЛЕКС
    1044

При автонаполнении каталога из нескольких источников — например, 1С и прайс-листа партнёра — дубли неизбежны. Типичный пример: товар «Bosch GSR 18V-50» появляется дважды с разными названиями, ценами и остатками. Это захламляет фильтры, отнимает до 40% времени менеджеров на ручную сверку. В крупных каталогах (50 000+ товаров) доля дублей часто превышает 15–20%. Мы решаем эту задачу на уровне платформы Битрикс: настраиваем правила сопоставления, нормализацию и стратегии слияния. В результате получается чистый каталог без дублей, экономия времени на администрирование достигает 70%.

Дедупликация использует три уровня: точное совпадение по идентификатору, совпадение по комбинации полей и нечёткое сопоставление. Вместе они закрывают 95% дублей.

Уровни дедупликации

Точное совпадение по ключу

Самый надёжный метод: если у товара есть уникальный внешний идентификатор (EAN, GTIN, артикул производителя), дедупликация тривиальна — проверяем элемент с таким XML_ID или PROPERTY_ARTICLE. В каталоге из 100 000 товаров такая проверка занимает менее секунды.

$existing = CIBlockElement::GetList(
    [],
    ['IBLOCK_ID' => $iblockId, 'XML_ID' => $externalId],
    false,
    ['nTopCount' => 1],
    ['ID']
)->Fetch();

if ($existing) {
    (new CIBlockElement())->Update($existing['ID'], $arFields);
} else {
    (new CIBlockElement())->Add($arFields);
}

На практике не все источники предоставляют стабильный уникальный идентификатор. Артикул поставщика отличается от артикула производителя. У одного товара может быть 3–5 разных артикулов от разных поставщиков, что создаёт сложность при сопоставлении.

Совпадение по комбинации полей

Если уникального ключа нет — ищем по комбинации: название + бренд + ключевая характеристика (объём, вес, размер).

$filter = [
    'IBLOCK_ID' => $iblockId,
    '%NAME' => $normalizedName,
    'PROPERTY_BRAND' => $brand,
];

Перед сравнением названия нормализуются: приведение к нижнему регистру, удаление лишних пробелов, замена типографских символов.

Нечёткое сопоставление

В случаях расхождения названий у разных поставщиков: «Bosch GSR 18V-50 Professional» vs «Шуруповёрт Bosch GSR18V50». Используются алгоритмы: similar_text(), расстояние Левенштейна, триграммы. Автоматическая дедупликация лучше ручной проверки в 10 раз по скорости и точности, а нечёткое сопоставление даёт в 5 раз меньше ложных срабатываний.

Метод Скорость Точность Пример
Точное совпадение Высокая 100% EAN, XML_ID
Комбинация полей Средняя 90-95% Название + бренд
Нечёткое сопоставление Низкая 70-85% Расстояние Левенштейна

Нормализация названий как основа дедупликации

Нормализация напрямую влияет на качество дедупликации. Минимальный набор преобразований:

  • Приведение к нижнему регистру: mb_strtolower().
  • Удаление спецсимволов: скобки, кавычки, дефисы, слеши.
  • Удаление стоп-слов: «артикул», «арт.», «код», «модель».
  • Нормализация пробелов: множественные пробелы → один.
  • Удаление указаний единиц и размеров из названия (если они хранятся в отдельных свойствах).
function normalizeName(string $name): string
{
    $name = mb_strtolower(trim($name));
    $name = preg_replace('/[()«»"\'\/\-]/', ' ', $name);
    $name = preg_replace('/\b(арт|артикул|код|модель)\b\.?/u', '', $name);
    $name = preg_replace('/\s+/', ' ', $name);
    return trim($name);
}

Выбор стратегии слияния дублей

При обнаружении дубля применяется одна из трёх стратегий:

Стратегия Логика Когда использовать
Приоритет источника Данные от источника с высшим приоритетом перезаписывают остальные Есть один «эталонный» поставщик
Слияние полей Пустые поля заполняются из альтернативного источника Разные источники дополняют друг друга
Ручная модерация Дубль помечается флагом, менеджер решает Критичные данные, мало дублей

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

Реализация в Битрикс

Поле XML_ID — ключевой инструмент дедупликации. Оно индексируется по умолчанию, поиск по нему быстрый. Но для многоисточникового каталога одного XML_ID недостаточно.

Рекомендуемая схема: отдельный инфоблок-справочник parser_external_ids с полями:

  • NAME — внешний идентификатор (артикул поставщика).
  • PROPERTY_SOURCE — источник (название поставщика).
  • PROPERTY_ELEMENT_ID — ID основного элемента каталога.
  • PROPERTY_MATCH_TYPE — тип совпадения (exact, fuzzy, manual).

При импорте парсер сначала ищет внешний ID в справочнике. Если найден — обновляет связанный элемент. Если нет — проверяет нечёткое совпадение по названию. Если совпадение найдено — создаёт связь в справочнике и обновляет элемент. Если нет — создаёт новый.

Пакетная дедупликация существующего каталога

Если каталог уже содержит дубли — нужна разовая чистка. Алгоритм:

  1. Выгрузить все элементы: ID, NAME, XML_ID, ключевые свойства.
  2. Нормализовать названия.
  3. Сгруппировать по нормализованному названию + бренду.
  4. В каждой группе выбрать «мастер-запись» (самая полная карточка, наибольший ID или приоритетный источник).
  5. Перенести заказы, привязки, свойства с дублей на мастер-запись.
  6. Деактивировать дубли (ACTIVE = 'N'), не удалять.

Рекомендация: не удаляйте дубли сразу. Деактивируйте и оставьте на 2–4 недели. При обнаружении ошибки в алгоритме элементы легко восстановить.

Что входит в настройку дедупликации

Полный список работ
  • Анализ источников данных и выявление типов дублей.
  • Разработка парсера с нормализацией и нечётким поиском.
  • Настройка справочника external_ids с приоритетами.
  • Интеграция с Битрикс24 REST (если используется).
  • Тестирование на реальных данных — 3–5 итераций.
  • Документация по работе системы.
  • Обучение менеджеров работе с дублями.
  • Техническая поддержка в течение 6 месяцев.

Наша команда имеет 7+ лет опыта в разработке на 1С-Битрикс и реализовала 50+ успешных проектов по интеграции. Закажите консультацию — мы оценим ваш проект за 24 часа и предложим оптимальное решение для дедупликации. Свяжитесь с нами, чтобы начать.