Миграция из облака в коробку Битрикс24 при наличии подключенной 1С: уникальный опыт

Битрикс24 — программное обеспечение для бизнеса, обладающее широкими возможностям, которые можно дополнить, подключив внешние сервисы. Платформа предлагает огромное количество готовых интеграций, а также позволяет выполнять любые другие самостоятельно или применяя размещенные в Битрикс24.Маркет решения сторонних разработчиков.

Переезд из облака в коробку — непростая задача, принимая во внимание, что штатных инструментов для этого не существует. В Битрикс24 отказались от этой услуги в 2023 году именно по причине сложности: активное наращивание функционала с учетом адаптации под облако или коробку развело разработки в разные стороны, совместимость редакций стала низкой. Наличие множества интеграций еще сильнее затруднило задачу.

Несмотря на невозможность официального переноса портала из облака в коробку, потребность в этом осталась высокой. Чтобы ее закрыть, мы разработали собственный сервис, обеспечивающий практически полноценную миграцию с сохранением не только внутренних данных и бизнес-процессов, но и сложных интеграций. Ниже — о том, как происходит переключение синхронизации с «1С» с облачной версии на коробочную Битрикс24.

Техническая часть

У нас имеется два портала: первый — это облачное решение, а второй представляет собой его клон-копию, размещенный на сервере, с «как бы» теми же данными. Особенность миграции заключается в том, что она выполняется через REST API. Это означает, что данные заново записываются на стороне коробочного решения и получают новые идентификаторы (ID).

Здесь возникает первая сложность: вся связь между «1С» и Битрикс24 основана на ID объектов Битрикс24, которые хранятся в специальном регистре «1С». Теоретически можно использовать модуль синхронизации для повторного сопоставления данных, однако этот подход не гарантирует абсолютной точности, так как сопоставление будет происходить по косвенным признакам, и полный контроль над результатами невозможен.

Казалось бы, есть простое решение: взять старые ID из исходного портала, создать таблицу соответствия со старыми и новыми ID, а затем загрузить их в «1С». Однако всё не так просто: любая ошибка в этом процессе может привести к серьёзным последствиям, затрагивающим целостность данных как в «1С», так и в Битрикс24.

Когда задача кажется сложной, но ее необходимо решить, в первую очередь следует сформировать пошаговый план действий:

  1. Составляем перечень сущностей, для которых потребуется заменить ID Битрикс24 в регистре сопоставления.

  2. Создаем карту связей, учитывая сложные сценарии взаимодействия данных, например, такие как «Дела», где каждое дело имеет собственный ID, а также ID родительского объекта.

  3. Определяем список сущностей, требующих дополнительной проверки и актуализации: пользовательские поля, валюты и другие элементы, влияющие на корректность данных.

  4. Разрабатываем структуру JSON-файла, который будет использоваться для хранения соответствий ID между облачным и коробочным порталами.

  5. Анализируем влияние на настройки обмена данными, так как после миграции возможны сбои, например, может быть нарушена связь с каталогами товаров и предложений.

  6. Для каждого этапа продумываем систему тестирования, — A/B-тесты, — проверок и логирования критических ситуаций и ошибок.

  7. Оцениваем риски и моделируем экстремальные случаи, чтобы минимизировать вероятность сбоев.

  8. Принимаем решение сначала реализовать полный цикл разработки и отладки в тестовом контуре, а затем воспроизвести процесс в рабочей среде.

Таким образом мы обеспечим максимально безопасное выполнение задачи.

Блок медиа

Визуальные материалы, дополняющие текст.

unnamed (7).png

Рис 1. Масштаб работы: обзор сущностей, у которых нужно заменить ID облачного портала на ID коробочного

unnamed (8).png

Рис 2. Часть интерфейса обработки смены ID

unnamed (4).png

Рис 3. Пример структуры JSON

unnamed (5).png

Рис 4. Пример лога контроля целостности

unnamed (6).png

Разработка

После составления плана настало время его осуществления. Чтобы не растягивать и не перегружать текст, опишем процедуру максимально сжато, представив порядок действий в виде подробного многоуровневого списка. 

Реализация:

  1. Тестирование в разработческом контуре — провели все необходимые испытания и тесты, убедились в их качестве, после чего перешли к работе с продуктовым контуром.

  2. Остановка работы пользователей и синхронизации — приостановили работу пользователей и синхронизацию между «1С» и облачным Битрикс24, чтобы избежать изменений данных во время миграции.

  3. Создали резервные копии всех данных — это обязательный шаг для минимизации рисков.

  4. Получение JSON-структуры — из промежуточной базы, которая использовалась для миграции, извлекли JSON-структуру соответствия ID сущностей облачного портала и их аналогов в коробочном.

  5. Замена ID и проверка данных:

    1. заменили старые ID на новые;

    2. выполнили автоматическую проверку данных в «1С» и коробочном портале Битрикс24, чтобы убедиться в отсутствии конфликтов, после подтверждения корректности продолжили процесс;

    3. переименовали портал и обработали предельные ситуации;

    4. восстановили настройки системы.

Теперь нужно удостовериться в корректности результатов путем детального тестирования и анализа.

Приступили к A/B-тестированию:

  • начали с выборочной проверки синхронизации простых сущностей, таких как единицы измерения и значения свойств — убедившись в отсутствии ошибок, перешли к более сложным объектам;

  • проверили объекты со сложными ссылочными структурами — например, контрагентов, которые содержат ссылки на ID свойств, адреса, реквизиты и контакты;

  • особое внимание уделили исправлению ID и связей в «1С:Бэкофис 2.0» как на стороне Битрикс24, так и в «1С».

  • финальное решение о запуске — после проведения более 50 тестов по заранее подготовленным сценариям приняли решение запустить синхронизацию.

Затем началась неделя максимальной концентрации. Мы отдавали себе отчёт в том, насколько нестандартным был реализованный сценарий, и насколько важна наша задача. Поэтому приняли дополнительные меры предосторожности.

Что сделали:

  • перевели режим восстановления базы «1С» в режим полного протоколирования;

  • включили версионирование для всех доступных сущностей «1С», задействованных в синхронизации.

  • реализовали «тревожный» сценарий резервного копирования базы «1С», используя SQL, с периодичностью в 3 часа;

  • назначили дежурного специалиста для контроля логов обмена и визуального мониторинга каждые 60 минут.

Грамотно продуманный план и слаженная работа позволили успешно реализовать уникальный сценарий миграции из облачного Битрикс24 в коробку с полным сохранением синхронизации между системами.

Краткие итоги

Перенос портала из облака в коробку — непростой, многоступенчатый процесс, который зачастую существенно осложняется наличием нестандартных интеграций и подключенной «1С». Тем не менее многие компании идут на такой шаг: коробочная редакция обладает рядом преимуществ, позволяя, например, хранить все данные в контуре компании.

Важно: выполнить безупречную миграцию способна исключительно команда с большим опытом и необходимыми компетенциями.

У вас остались какие-то вопросы?

Задайте их в форме ниже и мы обязательно с вами свяжемся!

Другие материалы по теме:

  • 12.01.2025

    Как поставить статус отпуска в Битрикс24

    Узнайте, какие штатные инструменты Битрикс24 позволяют управлять отпусками и контролировать отсутств...

    Подробнее
  • 06.01.2025

    Отдел контроля качества (ОКК) в продажах: экспертное мнение от Integrator.Digital

    Какие проблемы решает отдел контроля качества (ОКК) в продажах и нужен ли он небольшим компа...

    Подробнее
  • 17.11.2022

    Складской учет: Как навести порядок в продажах / часть 2

    В прошлой публикации мы начали разбирать возможности ведения складского учета, представленные в Битр...

    Подробнее
Оперативно и совершенно бесплатно ответим на Ваши вопросы!

Нажимая кнопку "Заказать", я даю свое согласие на обработку моих персональных данных, в соответствии с Федеральным законом от 27.07.2006 года №152-Ф3 "О персональных данных", на условиях и для целей, определенных в Согласии на обработку персональных данных.