Как синхронизировать задачи между двумя порталами Bitrix24
Обновлено 17 августа 2026
Практический разбор: какие есть способы связать задачи двух порталов, что придётся написать самому, если делать «руками», и на какие грабли наступают все — от лимита REST до конфликтов одновременных правок.
1. Зачем это вообще нужно
Типичная ситуация: интегратор ведёт проекты клиентов в своём Bitrix24, а каждый клиент живёт в собственном портале. Одна и та же задача существует в двух экземплярах: исполнитель отчитывается у себя, менеджер клиента смотрит статус у себя. Без синхронизации кто-то вручную копирует описания, переносит статусы и пересылает файлы — и рано или поздно копии расходятся: у клиента задача «в работе», у интегратора давно закрыта.
Решение — автоматический обмен: правка на любом из порталов доезжает до второго. Дальше три способа это получить, по возрастанию готовности.
2. Вариант «руками»: вебхуки + REST
У Bitrix24 есть REST API и исходящие вебхуки, поэтому первое желание — написать скрипт: ловим событие OnTaskUpdate, читаем задачу, пишем её во второй портал. Прототип на пару порталов собирается за день. Проблемы начинаются на второй неделе эксплуатации:
- Лимит REST. Облачный Bitrix24 разрешает порядка 2 запросов в секунду на портал. Синхронизация задач — это не один запрос: чтение задачи, чтение чек-листов, чтение вложений, запись, догрузка файлов. Несколько активных проектов легко упираются в потолок, и портал начинает отвечать ошибкой лимита — причём страдает не только ваш скрипт, а все интеграции портала сразу.
- События теряются и не повторяются. Событие Bitrix24 — это один HTTP-запрос без повторной доставки: ваш сервер был недоступен две секунды — изменение потеряно навсегда. В payload события нет значений полей, только ID объекта, поэтому событие в принципе нельзя использовать как источник истины — только как сигнал «сходи и перечитай».
- Конфликты одновременных правок. Пока ваш скрипт переносит правку слева направо, кто-то правит задачу справа. Без сериализации и контроля версий вы получите «эхо»: старое значение перезапишет новое, поле начнёт прыгать туда-обратно.
- Файлы и чек-листы. Вложения задач в Bitrix24 — отдельная подсистема (Диск) со своими идентификаторами; наивная пересылка ссылок не работает, файл нужно скачать и загрузить заново. Чек-листы вообще не порождают событий задачи — их можно отследить только регулярным сравнением.
- Статусы меняются особыми методами. Обновить статус задачи обычным
tasks.task.updateнельзя — для переходов есть отдельные методы (complete,renew,start…), и выбор метода зависит от текущего статуса цели.
Итог: «руками» оправдано, когда нужен односторонний перенос пары полей по одному проекту и есть кому поддерживать скрипт. Полноценный двусторонний обмен руками — это месяцы работы и постоянная эксплуатация.
3. Вариант «готовое решение»: что оно обязано уметь
Если берёте приложение из Маркетплейса, проверяйте по чек-листу — это ровно те места, где ломаются самодельные интеграции:
- обмен в обе стороны, а не экспорт в одну;
- перенос вложений и чек-листов, а не только полей задачи;
- защита от эха и конфликтов при одновременных правках;
- жизнь внутри лимита REST: контроль расхода квоты, а не «пока не забанят»;
- поведение при потере события: есть ли страховочный опрос;
- поддержка коробочного Bitrix24, если один из порталов self-hosted.
4. Как это устроено в BIC
BIC — сервис двусторонней синхронизации порталов Bitrix24 для интеграторов. Ключевые решения как раз закрывают список выше:
- Маппинг проектов. Синхронизируются только проекты, которые интегратор явно связал; сопоставление полей и стадий задаётся в маппинге — у каждого портала своя структура.
- Обе стороны, включая чаты задач. Задачи с полями, стадиями, вложениями и чек-листами плюс комментарии в связанных задачах — с защитой от петли.
- События + страховочный опрос. События Bitrix24 дают скорость (изменение доезжает за секунды), регулярный опрос гарантирует, что потерянное событие не превратится в потерянные данные.
- Контроль лимитов. Расход REST-квоты каждого портала считается и показывается в кабинете, темп опроса настраивается по каждому порталу отдельно.
- Коробка. Для коробочного Bitrix24 есть модуль Local App — запросы выполняются внутри процесса портала, минуя ограничение облачного REST.
5. Что проверить перед запуском любой синхронизации
- Какие проекты связываем. Синхронизировать «весь портал» не нужно почти никогда — определите список проектов и владельца этого списка.
- Кто ответственный на каждой стороне. На целевом портале задачи должны на кого-то назначаться — решите правило сопоставления людей заранее.
- Что с лимитами. Прикиньте объём: число задач, частота правок, размер вложений. Для облака бюджет — примерно 2 запроса в секунду на портал, и его делят все интеграции.
- Что считается источником истины при расхождении копий — и как решение обрабатывает одновременные правки.
- Как останавливать. Пауза и отключение должны быть штатными операциями, а не «выключим сервер».
6. Частые ошибки
- Доверять событиям как транспорту данных. Событие — сигнал, не данные: не пришло — никто не повторит.
- Игнорировать чек-листы и файлы при оценке объёма работы — обычно это половина всей сложности.
- Синхронизировать всё подряд. Чем шире охват, тем быстрее упрётесь в лимит REST и тем больше мусора поедет между порталами.
- Не планировать конфликтные правки. «Одновременно никто не правит» — правят, начиная с первой же недели.
- Забыть про коробку. Приёмы, работающие в облаке, на коробочном портале ведут себя иначе — от установки приложения до доставки событий.
Смотрите также: Интеграция двух Bitrix24 между собой: способы и ограничения, возможности BIC и сравнение с альтернативами.
Не нашли ответа — напишите в поддержку: info@bic-24.ru.