Модуль связывает CRM Битрикс24 и складской учёт МойСклад в один рабочий контур. Менеджер ведёт сделку в привычной CRM — в МойСкладе сам появляется заказ покупателя или заказ поставщику: с клиентом, составом товаров, ценами, скидками и ставками НДС. Кладовщик или бухгалтер меняет документ в учёте — изменение возвращается в карточку сделки. Никаких файлов обмена, кнопок «выгрузить» и переписывания строк руками.
Обмен двусторонний и разбирается на части: каждый контур, каждое направление и каждое поле включаются отдельно. Поэтому интеграцию не обязательно вводить целиком — можно начать с выгрузки сделок, потом добавить состав заказа, клиентскую базу, справочники и приём изменений обратно.
Что синхронизируетсяМенеджер сохраняет сделку. Модуль ловит событие CRM и ставит задачу в очередь — карточка сохраняется мгновенно, без ожидания ответа внешнего сервиса. Дальше очередь сама делает всё остальное: проверяет, проходит ли сделка по фильтру, ищет уже связанный документ, создаёт новый или обновляет существующий, подтягивает клиента и состав товаров, дозаписывает связку.
В обратную сторону работает так же: МойСклад присылает уведомление об изменении документа или контрагента, модуль кладёт его в очередь и обновляет карточку в Битрикс24. Опроса API по расписанию нет — значит, нет ни задержки в полчаса, ни лишней нагрузки на лимиты учётной системы.
При повторном обмене модуль сравнивает собранные данные с текущими и отправляет только изменившиеся поля. Если не изменилось ничего — запроса на запись не будет вовсе. Состав заказа сравнивается построчно: совпавшие позиции не трогаются, обновляются только те, что реально поменялись.
Настройка без программистаВсё настраивается в интерфейсе модуля, списками и таблицами соответствий, а не правкой кода:
Все настройки живут внутри профиля обмена, поэтому у разных профилей соответствия, фильтры и поля свои и не мешают друг другу.
Надёжность: очередь, проверки и разбор ошибокИнтеграция с внешним сервисом ломается предсказуемо: сервис недоступен, API ограничил частоту запросов, поле заполнено не так. Модуль рассчитан именно на это.
Товарная часть — самое трудоёмкое место любой интеграции, и здесь она разобрана подробно.
Товар ищется по выбранному вами полю связи: внешнему коду (XML_ID) или конкретному свойству инфоблока, а на стороне МойСклад — по внешнему коду или внутреннему идентификатору. Если XML_ID уже занят выгрузкой из 1С или интернет-магазина, связь настраивается на своё свойство, не ломая существующие интеграции. После создания товара код связи дозаписывается обратно, чтобы следующий обмен нашёл товар, а не создал второй.
Если товара во второй системе ещё нет, модуль создаёт его сам: переносит название, описание, единицу измерения, картинки и характеристики. Связанные сущности разворачиваются каскадом — у модификации сначала создаётся родительский товар, у комплекта сначала компоненты. Свойства торговых предложений (цвет, размер, объём) сопоставляются с характеристиками модификаций МойСклад — списки, привязки к элементам инфоблока и справочники highload-блоков.
Благодаря этому обмен заказами можно запустить, не выгружая заранее весь каталог: номенклатура наполняется по мере появления реальных заказов и остаётся связанной с обеих сторон.
Вопросы и ответыДвусторонний. Причём направление настраивается не «целиком», а по частям: отдельно для каждого контура документов, отдельно для состава товаров, ответственного, валюты, тегов и каждой пары полей. Можно, например, отдавать ответственного в МойСклад, но не принимать обратно.
Нужно ли менеджеру нажимать кнопку «выгрузить»?Нет. Обмен запускают события CRM — создание и изменение сделки, контакта, компании. Кнопки «выгрузить» в карточке нет и не требуется. Пользователь работает как обычно и про интеграцию не думает.
Как быстро изменения попадают в МойСклад?Как правило, сразу: после постановки задачи модуль пытается обработать её в фоне, не дожидаясь очередного запуска агента. Штатная обработка очереди идёт раз в минуту. Изменения из МойСклад приходят уведомлением в момент правки документа.
Что будет, если МойСклад недоступен или API ограничил частоту запросов?Задача останется в очереди и повторится — до трёх попыток с нарастающей паузой. Временные отказы и превышение лимитов обрабатываются автоматическим повтором запроса. Если авторизация в МойСклад не проходит, очередь приостанавливается, не тратя попытки впустую.
Создаст ли модуль дубли сделок, заказов и контрагентов?Нет, если настроены поля поиска связанной записи — и обмен документами просто не запустится, пока не задано хотя бы одно такое поле с сохранением связки. Это встроенная проверка, а не рекомендация в инструкции.
Можно ли выгружать в учёт не все сделки?Да. Фильтр задаёт условия на поля: направление, источник, стадия, дата, произвольное пользовательское поле. Операторы — равно и не равно, больше и меньше, содержит и не содержит. Отдельный набор условий работает на приём документов из МойСклад: например, принимать только заказы нужного склада или организации.
Как модуль отличает продажу от закупки?По правилу, которое задаёте вы: пользовательское поле сделки и его значение. Например, поле «Тип сделки» со значением «Закупка» относит сделку к заказам поставщику. Сделка без заданного признака уезжает заказом покупателя — это тип по умолчанию. При загрузке из МойСклад поле проставляется автоматически.
Работает ли обмен с ИП и физлицами, а не только с юрлицами?Да. В МойСкладе контрагент бывает трёх типов — юрлицо, ИП, физлицо, — и каждый настраивается отдельно: к контакту или компании Битрикс24 он привязан, какие поля переносить, какой шаблон реквизита использовать. У юрлица переносятся ИНН, КПП и юридический адрес, у физлица — паспортные данные и контакты.
Переносятся ли реквизиты, адреса и телефоны?Да. Реквизиты в Битрикс24 лежат не в самой карточке, а в связанной сущности «Реквизит», поэтому модуль находит реквизит нужного шаблона (или создаёт его) и пишет значения туда. Адреса собираются по типам, телефон, почта и сайт пишутся в множественные поля карточки. Адреса и множественные значения переносятся из МойСклад в Битрикс24.
Нужно ли выгружать клиентскую базу заранее?Нет. Заказ в МойСкладе не бывает без контрагента, поэтому клиент выгружается попутно со сделкой: в учёт попадут только те клиенты, по которым реально есть заказы. Полный обмен клиентской базой включается отдельно, когда он понадобится.
Синхронизируются ли стадии сделки и статусы заказа?Да, по таблице соответствий, которую вы задаёте сами: автоматического совпадения по названиям не предполагается. Для сделки модуль дополнительно вычисляет воронку по стадии — без этого Битрикс24 молча откатил бы смену стадии из другой воронки. Несопоставленные стадии остаются без изменений.
Переносятся ли остатки и цены товаров?Нет. Модуль синхронизирует документы, клиентов и карточки номенклатуры, но не остатки и не прайс-листы. Цена и скидка переносятся как часть позиции документа — то есть цена в конкретном заказе, а не цена в каталоге.
Переносится ли удаление?Нет. Удалённая сделка не удаляет заказ в МойСкладе, удалённый контакт не удаляет контрагента, и наоборот. Это сделано намеренно: удаление — необратимая операция, и автоматически размножать её на вторую систему опасно.
Обмениваются ли лиды?Нет. В обмене участвуют сделки, контакты и компании.
Как понять, почему заказ не появился в учёте?Открыть страницу очереди. Там видно каждую задачу, её статус, число попыток и полный текст ошибки — без чтения логов на сервере и без обращения в поддержку. Причины пропуска тоже пишутся: не прошёл фильтр, не хватает настроек, нет изменений.
Что нужно настроить на стороне сервера?Две вещи: планировщик агентов Битрикс24 (запуск по cron) для обработки очереди и публично доступный адрес на сайте портала для приёма уведомлений МойСклад. Файл-обработчик уведомлений модуль разворачивает сам из интерфейса и проверяет реальным запросом, что адрес отвечает — ходить на сервер по FTP не нужно.
ТребованияЧестный список, чтобы не было сюрпризов при внедрении: