Миграция контента между сайтами 1С-Битрикс
Перемещение контента между сайтами на одной платформе кажется тривиальной задачей — до момента, когда обнаруживается, что разделы, инфоблоки и их типы живут в разных таблицах, а привязки нарушаются при простом копировании записей. На деле это структурная работа с базой данных и файловой системой одновременно.
Что реально переносится и как это устроено
Контент в 1С-Битрикс делится на несколько категорий с принципиально разными механизмами хранения:
Инфоблоки — основная рабочая лошадка. Структура: таблица b_iblock хранит метаданные типа инфоблока, b_iblock_element — элементы, b_iblock_section — разделы, b_iblock_element_property — значения свойств. При переносе между сайтами (разными SITE_ID) нужно учитывать:
- Тип инфоблока может не существовать на целевом сайте — его нужно создавать первым
-
IBLOCK_IDна источнике и приёмнике будут разными; все внутренние ссылки и привязки нужно пересчитывать - Свойства типа «Привязка к элементу» хранят ID элементов, которые после переноса изменятся
Страницы и структура сайта (b_iblock типа 'S' — статические страницы не всегда используются; чаще это файловая структура в папке /bitrix/templates/ и физические файлы .php в корне документа). Контент страниц может быть:
- В файлах
.phpнапрямую — переносится rsync/FTP - В компонентах с подключением инфоблоков — переносится через инфоблок
- В визуальном редакторе страниц (Landing) — отдельная история, таблицы
b_landing_*
Инструменты переноса
Встроенный экспорт/импорт инфоблоков — через административный раздел «Импорт/Экспорт данных» (XML-формат). Ограничения: не переносит файловые свойства корректно при разных путях, не обрабатывает связанные элементы автоматически.
Битрикс Миграции — модуль bitrix.migrate (входит в состав начиная с редакции «Бизнес»). Позволяет создавать снапшоты контента и применять их на другом сайте. Подходит для CMS-контента, но не для высоконагруженных инфоблоков с десятками тысяч элементов.
Прямая работа с базой — наиболее надёжный метод при больших объёмах:
-- Получить все элементы инфоблока с нужным IBLOCK_ID
SELECT ie.*, ies.PROPERTY_1234
FROM b_iblock_element ie
LEFT JOIN b_iblock_element_property iep ON ie.ID = iep.IBLOCK_ELEMENT_ID
WHERE ie.IBLOCK_ID = 42 AND ie.ACTIVE = 'Y';
При прямом переносе через SQL необходим скрипт пересчёта ID: создаёте элементы через API (CIBlockElement::Add()), сохраняете маппинг старый_ID → новый_ID, затем второй проход обновляет все свойства-привязки.
Перенос файлов и изображений
Свойства типа «Файл» хранят ссылку на запись в таблице b_file. Физически файлы лежат в /upload/iblock/. При переносе нужно:
- Скопировать файлы в папку
/upload/целевого сайта - Создать записи в
b_fileна целевом сайте (или использоватьCFile::SaveFile()) - Обновить значения свойств с новыми FILE_ID
Если сайты на одном сервере и используют общую папку /upload/ (что возможно в мультисайтовой конфигурации), этап копирования файлов упрощается, но риск конфликтов имён возрастает.
Сохранение SEO при переезде
При переносе между сайтами адреса страниц могут измениться. Необходимо:
- Сформировать карту редиректов (старый URL → новый URL)
- Настроить редиректы 301 через
.htaccessили модульbitrix:redirect - Перенести мета-теги: они хранятся в
b_iblock_element_propertyдля свойствSEO_TITLE,SEO_DESCRIPTION, либо в компонентеbitrix:seo.tags
Типичные сроки
| Тип контента | Объём | Срок |
|---|---|---|
| Статические страницы + 1–2 инфоблока | до 500 элементов | 1–3 дня |
| Каталог с разделами и свойствами | 500–10 000 элементов | 1–2 недели |
| Мультиязычный сайт с привязками | 10 000+ элементов | 3–6 недель |
Перед стартом работ обязателен полный бэкап обоих сайтов. При переносе между разными версиями Битрикс дополнительно проверяется совместимость структуры таблиц.







