Миграция сайта с UMI.CMS на 1С-Битрикс
UMI.CMS — отечественная система управления контентом с XML/XSL шаблонизатором. В своё время была конкурентом Битрикс в корпоративном сегменте. Сейчас UMI.CMS активно теряет поддержку: разработка замедлилась, экосистема разработчиков сократилась. Переход на Битрикс для действующих сайтов — вопрос времени и бюджета.
Архитектура UMI.CMS
UMI.CMS строится на концепции объектов и типов данных. Всё хранится в нескольких ключевых таблицах:
-
cms3_objects— все объекты системы:id,type_id,owner_id,name,is_active,is_deleted,dom_id,created,updated. -
cms3_object_content— значения полей объектов:obj_id,field_id,lang_id,int_val,float_val,varchar_val,text_val,rel_val. -
cms3_types— типы объектов (аналог типов контента):id,module_id,title. -
cms3_fields— определения полей:id,type_id,name,title,field_type,guide_id,in_list. -
cms3_object_relations— связи между объектами (иерархия). -
cms3_domain_groups— иерархия страниц сайта. -
cms3_pages— страницы сайта с привязкой к объектам.
Для каталога/магазина дополнительно: cms3_emarket_orders, cms3_emarket_baskets, cms3_emarket_basket_items.
Структура страниц
UMI.CMS разделяет понятия «страница» и «объект данных». Страница (cms3_pages) — это URL-адрес в иерархии, она привязана к объекту (cms3_objects) через object_id. Сам объект содержит данные через cms3_object_content.
При миграции в Битрикс:
- Иерархия страниц → разделы инфоблока.
- Объект UMI.CMS с его полями → элемент инфоблока со свойствами.
Типы полей и маппинг
UMI.CMS имеет систему типов полей (cms3_field_types). Основные:
| UMI тип поля | Битрикс свойство |
|---|---|
| string | Строка |
| text, wysiwyg | HTML/текст |
| img_file, image | Файл (изображение) |
| file | Файл |
| date, datetime | Дата/время |
| int, float | Число |
| relation | Привязка к элементу |
| symlink | Привязка к разделу |
| boolean | Список (Да/Нет) |
Читаем cms3_fields где type_id соответствует нужному типу контента, получаем список полей. Для каждого поля создаём свойство инфоблока в Битрикс.
Извлечение значений полей
Значения хранятся в cms3_object_content. Тип значения определяется колонкой: строки — в varchar_val, тексты — в text_val, числа — в int_val или float_val, файлы — в rel_val (ссылка на id файла в cms3_objects_content_files), связи — тоже в rel_val.
SELECT o.id, o.name, f.name as field_name, ft.data_type,
oc.varchar_val, oc.text_val, oc.int_val, oc.rel_val
FROM cms3_objects o
JOIN cms3_object_content oc ON oc.obj_id = o.id
JOIN cms3_fields f ON f.id = oc.field_id
JOIN cms3_field_types ft ON ft.id = f.field_type
WHERE o.type_id = 12 AND o.is_deleted = 0
Результат группируем по obj_id, собираем ассоциативный массив полей.
Иерархия и разделы
Иерархия страниц в UMI.CMS строится через cms3_object_relations (rel_type = 'child') или через parent_id в cms3_pages. Рекурсивно обходим дерево, создаём разделы инфоблока через CIBlockSection::Add(), сохраняем маппинг UMI page_id → Битрикс SECTION_ID.
Мультиязычность
UMI.CMS поддерживает мультиязычность: в cms3_object_content поле lang_id определяет язык значения. Если сайт многоязычный — при чтении фильтруем по нужному lang_id, либо переносим все языки параллельно.
XSL-шаблоны
UMI.CMS использует XSL/XSLT для шаблонизации — уникальная особенность, которая не имеет аналогов в Битрикс. Все XSL-шаблоны при миграции не переносятся: дизайн и вёрстка создаются заново на основе шаблона Битрикс. Это закономерно — обычно переход на Битрикс совмещается с редизайном.
eMarket (интернет-магазин UMI)
Модуль eMarket хранит:
- Товарный каталог в стандартных объектах UMI через
cms3_objectsс типом, соответствующим каталогу. - Заказы в
cms3_emarket_orders,cms3_emarket_basket_items. - Клиентов в стандартных пользователях UMI (
cms3_users).
Схема переноса аналогична другим магазинным платформам: товары → инфоблок каталога, заказы → b_sale_order, пользователи → CUser::Add().
SEO
В UMI.CMS SEO-поля (title, description, keywords) хранятся как обычные поля объектов через cms3_object_content. URL страниц строятся по иерархии + ЧПУ (cms3_pages.url). Собираем маппинг старых URL на новые и прописываем 301-редиректы.
Сроки
| Этап | Типовые сроки |
|---|---|
| Анализ типов контента, полей, иерархии | 1–2 дня |
| Проектирование инфоблоков, маппинг полей | 1 день |
| Разработка скрипта миграции | 3–4 дня |
| Перенос файлов и изображений | 1 день |
| Магазин eMarket (при наличии) | 2–3 дня |
| SEO-редиректы | 1 день |
| Тестирование | 1 день |
| Итого | 10–13 рабочих дней |
UMI.CMS имеет достаточно чистую структуру БД — при понимании модели объектов скрипт миграции пишется относительно предсказуемо.







