Миграция с On-Premise Битрикс24 в облако
Обратная ситуация: компания устала от администрирования собственного сервера, либо сокращает IT-инфраструктуру, либо хочет использовать облачные функции, которых нет в коробке. Переход из коробки в облако имеет принципиальное ограничение: Битрикс24 не предоставляет официального инструмента импорта из On-Premise. Данные нужно мигрировать через API в обратном направлении.
Что можно перенести, а что — нет
Не всё, что есть в коробке, доступно в облаке. Ключевые различия, которые нужно проверить до принятия решения о переходе:
| Возможность | On-Premise | Облако |
|---|---|---|
| Прямой доступ к БД | Да | Нет |
| Кастомные PHP-модули | Да | Нет (только REST-приложения) |
| Неограниченное число пользователей | Да (ограничено лицензией) | По тарифу |
| WebRTC-телефония без SIP | Нет | Да |
| Мобильное приложение | Ограниченно | Полноценное |
| Кастомные бизнес-процессы с PHP | Да | Нет |
Если в коробке есть кастомные PHP-модули или компоненты — в облаке их нужно переписать как REST-приложения. Это серьёзная работа, которая может перевесить стоимость самой миграции.
Стратегия переноса данных CRM
Данные выгружаются из коробки через REST API (он работает одинаково в обеих версиях) и загружаются в облако через тот же REST API. Последовательность:
- Создать OAuth-приложение в облачном портале для аутентификации запросов
-
Перенести пользователей — пригласить вручную через интерфейс или использовать
user.add(только в On-Premise; в облаке добавление пользователей через API ограничено) -
Пересоздать справочники: статусы сделок (
crm.status.add), воронки (crm.dealcategory.add), пользовательские поля (crm.userfield.add) - Перенести CRM-данные: компании → контакты → лиды → сделки с сохранением маппинга ID
-
Перенести файлы с Диска через
disk.folder.uploadfile
Скрипт миграции работает с двумя API-клиентами одновременно: один подключён к коробке (источник), другой — к облаку (приёмник).
Особенность: лимиты облачного API
Облачный Битрикс24 жёстче ограничивает API, чем коробочная версия. На тарифе «Команда» — 2 запроса в секунду, на «Компания» — до 200 запросов в секунду при использовании enterprise-функций. При переносе больших объёмов данных нужно реализовать rate limiting в скрипте:
class RateLimiter
{
private float $lastRequest = 0;
private float $minInterval; // секунды между запросами
public function wait(): void
{
$elapsed = microtime(true) - $this->lastRequest;
if ($elapsed < $this->minInterval) {
usleep((int)(($this->minInterval - $elapsed) * 1_000_000));
}
$this->lastRequest = microtime(true);
}
}
Кастомные поля и типы данных
Пользовательские поля в Битрикс24 имеют типы: string, integer, double, date, datetime, boolean, enumeration, file, url, employee, crm. В облаке доступны те же типы, но тип file в облаке ведёт себя иначе: файлы должны сначала быть загружены через disk.folder.uploadfile, а потом привязаны к записи CRM.
Тип employee (привязка к пользователю Битрикс24) требует предварительного маппинга: ID пользователей в коробке и облаке не совпадают.
Бизнес-процессы и автоматизация
Шаблоны бизнес-процессов из коробки (bizproc.workflow.template.list) можно выгрузить в XML и попытаться импортировать в облако. На практике это работает только для простых процессов без кастомных PHP-действий. Сложные BP потребуют переработки с использованием облачных инструментов: роботов и триггеров CRM.
Период параллельной работы
Рекомендую 2–4 недели работы в двух системах одновременно. В это время новые данные вносятся в облако, а старая коробка остаётся в режиме read-only для сверки. По истечении периода — деактивация коробки и освобождение сервера.
Типичные сроки
| Объём данных | Сложность кастомизаций | Срок |
|---|---|---|
| до 30 000 записей CRM, стандартная конфигурация | Низкая | 2–3 недели |
| 30 000–150 000 записей, несколько кастомных полей | Средняя | 1–2 месяца |
| 150 000+ записей, кастомные модули, сложные BP | Высокая | 2–4 месяца |
Финальное решение о переходе стоит принимать после детального сравнения функциональности: иногда выясняется, что для конкретного бизнеса коробка предпочтительнее, и переход не оправдан.







