Обсудить задачу

Производство и продажа натурального камня, федеральная сеть

Миграция справочников 1С → Битрикс24 без дублей

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

1С OData · REST API Битрикс24 · PHP · MySQL

Что мешало

  • Наследство старого типового обмена: 20 174 мусорные компании и 72 контакта
  • Дубли по названию: записи сопоставлялись текстом, а не идентификатором
  • Выборка из 1С тянула все поля подряд и падала на объёме
  • В Битрикс24 версии 25.x привычный класс работы с реквизитами больше не существует

Что сделали

  • Спроектировали перенос: партнёры 1С → компании, контрагенты → реквизиты CRM, контактные лица → контакты, со всеми связями
  • Ключ сопоставления — GUID из 1С, состояние записи — хэш всего набора полей: повторный запуск обновляет только реально изменившееся
  • Подтянули филиал, сегмент и ответственного менеджера через таблицы соответствия GUID → значение
  • Сопоставили менеджеров 1С с пользователями портала по служебному полю
  • Перешли на актуальный класс работы с реквизитами вместо исчезнувшего
  • Ускорили выборку из 1С: запрашиваем только нужные поля, пагинация с возобновлением после сбоя
  • Сделали вкладку «Реквизиты» на карточке компании — через эпилог компонента и внедрение скрипта, после того как штатный механизм оказался неприменим

Что стало

639 компаний перенесено
9 202 контакта
15 024 реквизита
0 ошибок при переносе

Дополнительно вычищено 20 174 мусорные компании и 72 контакта. Дубли по названию сведены к четырём парам. Выборка из 1С стала быстрее в 8–9 раз. Миграцию можно запускать повторно — она не создаёт дублей.

Чему это научило

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

Что спрашивают про эту задачу

Подойдёт ли это для нашей базы
Да, если в 1С есть GUID или их можно восстановить. Сопоставление по названию не годится в принципе: любая опечатка или переименование контрагента порождает дубль, а названия меняются регулярно. Если идентификаторов нет, стратегию сопоставления проектируем отдельно — до миграции, а не во время неё.
Сколько стоит и сколько занимает перенос
Зависит от объёма и чистоты данных. Оценку даём после пробной выгрузки небольшой части записей: по ней видно, сколько дублей и пустых полей придётся разбирать. В этом проекте попутно вычищено 20 174 мусорные компании — такая уборка обычно занимает больше времени, чем сам перенос.
Можно ли переносить частями
Да, и так безопаснее. Миграция идёт страницами с контрольными точками: перенесли партию, проверили, продолжили. Повторный запуск ничего не удвоит — ключ записи это идентификатор из 1С, а признак изменения — хэш полей.

Похожая задача

Если узнали свою ситуацию — расскажите, что происходит у вас. Вернёмся с оценкой в часах и планом работ.

Обсудить задачу Услуга: Битрикс24