Перейти к основному содержимому

Интеграция Битрикс24 и МойСклад: двусторонняя синхронизация сделок, клиентов и товаров

Модуль связывает CRM Битрикс24 и складской учёт МойСклад в один рабочий контур. Менеджер ведёт сделку в привычной CRM — в МойСкладе сам появляется заказ покупателя или заказ поставщику: с клиентом, составом товаров, ценами, скидками и ставками НДС. Кладовщик или бухгалтер меняет документ в учёте — изменение возвращается в карточку сделки.

Никаких файлов обмена, кнопок «выгрузить» и переписывания строк руками: обмен запускают события CRM и уведомления МойСклад.

🔗 Карточка модуля в Маркетплейс 1С-Битрикс: marketplace.1c-bitrix.ru/solutions/despi.moyskladcrm

Технический идентификатор модуля — despi.moyskladcrm. Модуль предназначен для коробочной версии Битрикс24 с модулем CRM.

Задача

Компания ведёт продажи в Битрикс24, а деньги, остатки и документы — в МойСкладе. Между двумя системами всегда оказывается человек: менеджер закрыл сделку, кто-то завёл по ней заказ в учёте, кладовщик отгрузил, бухгалтер свёл суммы. На каждом переносе теряется время и появляются расхождения — заказ с другим составом, клиент-дубль, не та ставка НДС.

Ручной перенос ломается ровно там, где это заметнее всего:

  • Данные расходятся. В сделке одна сумма, в заказе другая, и найти, где именно разошлось, можно только глазами.
  • Клиентская база дублируется. Один и тот же контрагент заводится в учёте заново, потому что никто не проверил, есть ли он там.
  • Никто не видит картины. Заказ «не уехал» — и это выясняется через неделю, когда клиент звонит и спрашивает про отгрузку.

Что делает модуль

Модуль берёт на себя перенос данных между системами и делает его двусторонним и разбираемым на части: каждый контур, каждое направление и каждое поле включаются отдельно. Интеграцию не обязательно вводить целиком — можно начать с выгрузки сделок, потом добавить состав заказа, клиентскую базу, справочники и приём изменений обратно.

Что синхронизируется

  • Сделки и заказы покупателя МойСклад — в обе стороны.
  • Сделки и заказы поставщику МойСклад — отдельный контур со своими настройками.
  • Контакты и компании Битрикс24 и контрагенты МойСклад — включая юрлиц, ИП и физлиц.
  • Реквизиты клиента: ИНН, КПП, ОГРН, юридическое название, адреса, телефон, почта, сайт.
  • Состав заказа: товарные строки сделки и позиции документа — товар, количество, цена, скидка, ставка НДС.
  • Номенклатура: товары, услуги, комплекты и модификации (торговые предложения) с картинками и характеристиками.
  • Стадии сделки и статусы документа, статусы контрагента.
  • Ответственный менеджер и валюта документа.
  • Теги (группы) контрагента и произвольные пользовательские поля обеих систем.
  • Справочники: сотрудники, валюты, единицы измерения, ставки НДС.

Как это выглядит в работе

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

В обратную сторону так же: МойСклад присылает уведомление об изменении документа или контрагента, модуль кладёт его в очередь и обновляет карточку в Битрикс24. Опроса API по расписанию нет — значит, нет ни задержки в полчаса, ни лишней нагрузки на лимиты учётной системы.

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

Кому это нужно

  • Оптовой компании, у которой продажи живут в CRM, а отгрузки и остатки — в МойСкладе.
  • Интернет-магазину на коробочном Битрикс24, где заказы превращаются в сделки, а учёт ведётся отдельно.
  • Компании с закупками: отдельный контур заказов поставщику ведёт снабжение в той же CRM.
  • Интегратору, которого попросили «связать Битрикс24 и МойСклад» и который не хочет писать и поддерживать эту интеграцию сам.

Возможности

Настройка без программиста

Всё настраивается в интерфейсе модуля, списками и таблицами соответствий, а не правкой кода:

  • Сопоставление полей. Любое поле сделки, контакта или компании связывается с любым полем документа или контрагента МойСклад — стандартным, пользовательским или дополнительным (атрибутом). У каждой пары своё направление: в МойСклад, в Битрикс24 или в обе стороны.
  • Значения по умолчанию. Организация, склад, канал продаж — то, что постоянно и не хранится в CRM, задаётся правилом, а не отдельным полем в Битрикс24.
  • Поля поиска связанной записи. Связь ведётся по тому полю, которое уже сложилось в ваших данных: внешнему коду, ИНН, номеру договора.
  • Фильтры обмена. Условия на поля решают, какие сделки уезжают в учёт и какие документы принимаются обратно.
  • Справочники соответствий. Сотрудники, валюты, единицы измерения и ставки НДС сопоставляются явной таблицей — видно, что с чем связано и почему значение не перенеслось.
  • Создание полей CRM. Служебные поля, которые нужны интеграции (признак типа документа, тип контрагента, статус, теги), модуль заводит сам из своих настроек — ходить в конструктор полей Битрикс24 не нужно.
  • Помощник настройки каталога. Инфоблоки, разделы, группы товаров МойСклад и поля связи выбираются из подставленных списков, а не вводятся идентификаторами.

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

Надёжность: очередь, проверки и разбор ошибок

Интеграция с внешним сервисом ломается предсказуемо: сервис недоступен, API ограничил частоту запросов, поле заполнено не так. Модуль рассчитан именно на это.

  • Очередь обмена. Задачи копятся в отдельной линии на каждый профиль и обрабатываются пакетами. Повторные правки одной сделки склеиваются в одну задачу: десять изменений подряд не превращаются в десять обращений к МойСкладу. Сбой не теряется — задача повторяется.
  • Проверка готовности настроек. Перед каждым обменом модуль смотрит, достаточно ли настроек, чтобы запись нашлась и связалась. Недонастроенный контур обмен не запускает — вместо того чтобы плодить дубли. Состояние по обоим видам документов, трём типам контрагента и четырём справочникам видно на дашборде.
  • Защита от дублей. Перед созданием записи модуль ищет её пару на другой стороне и обновляет найденную. Если поиск не выполнился из-за сбоя, обмен прерывается и повторяется позже: создавать запись вслепую после ошибки нельзя, это гарантированный дубль.
  • Защита от зацикливания. Записи, которые модуль делает сам, не запускают встречный обмен: ни события CRM, ни уведомления МойСклад на них не срабатывают.
  • Страница очереди. Видно каждую задачу: направление, документ, состояние, число попыток, полный текст ошибки. Задачу можно выполнить принудительно или удалить, не дожидаясь расписания. Рядом — карточка агента: активен ли, когда следующий запуск, кнопки установить и прогнать проход вручную.

Товары и каталог

Товарная часть — самое трудоёмкое место любой интеграции, и здесь она разобрана подробно.

Товар ищется по выбранному вами полю связи: внешнему коду (XML_ID) или конкретному свойству инфоблока, а на стороне МойСклад — по внешнему коду или внутреннему идентификатору. Если XML_ID уже занят выгрузкой из 1С или интернет-магазина, связь настраивается на своё свойство, не ломая существующие интеграции. После создания товара код связи дозаписывается обратно, чтобы следующий обмен нашёл товар, а не создал второй.

Если товара во второй системе ещё нет, модуль создаёт его сам: переносит название, описание, единицу измерения, картинки и характеристики. Связанные сущности разворачиваются каскадом — у модификации сначала создаётся родительский товар, у комплекта сначала компоненты.

Благодаря этому обмен заказами можно запустить, не выгружая заранее весь каталог: номенклатура наполняется по мере появления реальных заказов и остаётся связанной с обеих сторон.

Разделы документации

РазделО чём
Установка и порядок настройкиУстановка модуля, подключение к МойСклад, пять шагов настройки и проверка живого обмена.
Документы: сделки и заказыЗаказ покупателя и заказ поставщику: тип документа, поиск связанной записи, поля, статусы, фильтры, справочники.
Контрагенты и реквизитыКонтакты и компании Битрикс24 ↔ контрагенты МойСклад: юрлицо, ИП, физлицо, реквизиты, адреса, группы и статусы.
Товары и состав заказаКорзина сделки и позиции документа, поиск и создание номенклатуры, модификации, характеристики, цены и НДС.
Сопоставление полейКак значения едут между системами: пары полей, направление, совместимость типов, пустые значения.
Очередь обменаТриггеры, путь задачи, состояния, повторы и лимиты, разбор типовых проблем.
Вебхуки и событияУведомления МойСклад и события CRM — два источника обмена и их настройка.
ДиагностикаДашборд, журнал действий, логи, таблицы модуля — где смотреть, что произошло.
Требования и ограниченияРедакции Битрикс24, тариф МойСклад, доступ к API — и честный список того, чего модуль не делает.
Вопросы и ответыДубли, скорость обмена, недоступность МойСклад, ИП и физлица, остатки и цены, удаление записей.

Инструкции, общие для всех модулей Despi: настройка агентов на cron (без неё очередь обмена не работает) и установка модуля.

Что важно понимать с самого начала

  • Обмен идёт в фоне, а не в момент сохранения. Сохранение сделки создаёт задачу, и модуль тут же запускает её фоновым прогоном — обычно заказ появляется за считаные секунды, а работа менеджера не тормозится. Гарантия при массовых изменениях — до минуты.
  • Недонастроенная сущность пропускается молча. Если настроек не хватает, модуль не ругается: задача завершится успешно, а в МойСкладе ничего не появится. Причина пишется в журнал действий, а не в ошибки очереди.
  • Контрагентов придётся настроить в любом случае. У заказа не может не быть клиента, поэтому внутри сделки контрагент обменивается всегда — даже если отдельный обмен контактами и компаниями выключен.
  • Удаления не переносятся. Удалённая сделка не удаляет заказ в МойСкладе, удалённый контакт не удаляет контрагента, и наоборот. Это сделано намеренно: обмен не должен уносить данные.
  • Конфликты правок не разрешаются. Если одно и то же поле поменяли с обеих сторон, победит та сторона, чей обмен выполнился последним.
  • Права в учётной системе определяются токеном. Модуль работает в МойСкладе от имени той учётной записи, под которой выпущен токен доступа.