Миграция сайта с Drupal на 1С-Битрикс

Наша компания занимается разработкой, поддержкой и обслуживанием решений на Битрикс и Битрикс24 любой сложности. От простых одностраничных сайтов до сложных интернет магазинов, CRM систем с интеграцией 1С и телефонии. Опыт разработчиков подтвержден сертификатами от вендора.
Предлагаемые услуги
Показано 1 из 1 услугВсе 1626 услуг
Миграция сайта с Drupal на 1С-Битрикс
Средняя
~1-2 недели
Часто задаваемые вопросы
Наши компетенции:
Этапы разработки
Последние работы
  • image_website-b2b-advance_0.png
    Разработка сайта компании B2B ADVANCE
    1167
  • image_bitrix-bitrix-24-1c_fixper_448_0.png
    Разработка веб-сайта для компании ФИКСПЕР
    811
  • 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
    563
  • image_bitrix-bitrix-24-1c_mirsanbel_458_0.webp
    Разработка на базе 1С Предприятие для компании МИРСАНБЕЛ
    743
  • image_crm_dolbimby_434_0.webp
    Разработка сайта на CRM Битрикс24 для компании DOLBIMBY
    655
  • image_crm_technotorgcomplex_453_0.webp
    Разработка на базе Битрикс24 для компании ТЕХНОТОРГКОМПЛЕКС
    976

Миграция сайта с Drupal на 1С-Битрикс

Drupal — мощная CMS с развитой архитектурой entity/field. Её часто выбирают под сложные порталы, государственные сайты, мультиязычные платформы. Переход на Битрикс обычно продиктован корпоративными требованиями: интеграция с 1С, единая экосистема с Битрикс24, или необходимость иметь сертифицированную в России CMS. Миграция с Drupal технически сложнее, чем с большинства других CMS, из-за гибкой, но нестандартной модели хранения данных.

Модель данных Drupal

В Drupal 7 контент хранится через систему Field API. Каждое поле узла (node) хранится в отдельной таблице с именем вида field_data_{field_name} и field_revision_{field_name}. Основные таблицы:

  • node — базовая запись: nid, type, title, uid, status, created, changed.
  • node_revision — история ревизий.
  • field_data_body — тело материала: body_value, body_summary, body_format.
  • field_data_{custom_field} — произвольные поля, одна таблица на каждое.
  • taxonomy_term_data, taxonomy_vocabulary — таксономия (категории, теги).
  • file_managed — медиафайлы.
  • users, users_roles, role — пользователи.

В Drupal 8/9 архитектура схожая, но хранение через Doctrine DBAL и конфиги в YAML. Таблицы: node__body, node__field_{name} (одна таблица на поле, все ревизии в node_revision__*).

Проектирование структуры в Битрикс

Каждый тип контента (content type) Drupal становится инфоблоком в Битрикс. Таксономия — разделы инфоблока или свойства типа «Список». Поля node маппируем на свойства инфоблока.

Перед написанием скрипта составляем таблицу маппинга:

Drupal Тип Битрикс Тип свойства
field_data_body.body_value text_long DETAIL_TEXT
field_data_image.field_image_fid image PREVIEW_PICTURE
field_data_field_tags term_reference PROPERTY_TAGS Список
field_data_field_price decimal PROPERTY_PRICE Число

Скрипт миграции

Drupal 7: скрипт читает данные через PDO из MySQL-базы Drupal. Для каждого node:

SELECT n.nid, n.title, n.created, b.body_value, b.body_summary
FROM node n
LEFT JOIN field_data_body b ON b.entity_id = n.nid AND b.bundle = 'article'
WHERE n.type = 'article' AND n.status = 1

Затем для каждого поля — отдельный JOIN или подзапрос. Результат — массив данных для CIBlockElement::Add().

Медиафайлы. В Drupal файлы регистрируются в file_managed с полем uri формата public://photos/image.jpg. Физически файл лежит в sites/default/files/photos/image.jpg. Копируем файлы, регистрируем через CFile::SaveFile(), привязываем к элементу.

Таксономия. Термины таксономии (taxonomy_term_data) переносим как разделы инфоблока или как значения свойств типа «Список». Если в Drupal у одного материала несколько терминов из одного словаря — создаём свойство «Множественное» в Битрикс.

Мультиязычность

Drupal имеет встроенную мультиязычность через модули i18n (Drupal 7) или встроенный Content Translation (Drupal 8+). Переводы хранятся в field_data_* с разными language-значениями. Битрикс поддерживает мультиязычность через инфоблоки с LANGUAGE_ID или через разные сайты в одной установке. Если сайт мультиязычный — этот этап требует отдельного проектирования.

Views и блоки

Drupal Views — динамические списки материалов с фильтрацией и сортировкой. В Битрикс их аналог — компонент bitrix:news.list с параметрами фильтрации. Прямого переноса Views не существует: каждый View анализируется вручную и реализуется как компонент или кастомный код.

Блоки Drupal (region/block) — в Битрикс это области ($APPLICATION->ShowPanel()) и компоненты в шаблоне. Структура страниц переносится при разработке дизайна, не при миграции данных.

Модули Drupal без аналогов

Webform → формы через bitrix:form. Commerce (Drupal Commerce) → модуль catalog + sale. Rules → бизнес-процессы Битрикс или обработчики событий. Feeds (импорт) → агент или cron-задача Битрикс.

Сроки

Этап Типовые сроки
Аудит типов контента и полей 1–2 дня
Проектирование инфоблоков и маппинг полей 1–2 дня
Разработка скрипта миграции 3–6 дней
Перенос медиафайлов 1–2 дня
Мультиязычность (при наличии) 2–3 дня
SEO-редиректы 1 день
Тестирование и правки 1–2 дня
Итого 10–18 рабочих дней

Drupal — одна из самых сложных для миграции CMS именно из-за нестандартной структуры хранения и обилия возможных модулей. Реальный срок всегда уточняется после аудита исходной базы данных.