Міграція контенту між сайтами 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 тижнів |
Перед початком робіт обов'язковий повний бекап обох сайтів. При перенесенні між різними версіями Бітрікс додатково перевіряється сумісність структури таблиць.







