Документы: сделки и заказы
Модуль обменивает сделки Битрикс24 с двумя документами МойСклад:
- Заказ покупателя — продажа клиенту;
- Заказ поставщику — закупка у поставщика.
Это два независимых контура с зеркальным набором настроек и собственными страницами. Настраивать оба необязательно: включите тот, который вам нужен, второй можно добавить позже.
Признак типа документа
В МойСкладе продажа и закупка — разные документы, а в Битрикс24 и то и другое оформляется сделкой. Поэтому модулю нужно подсказать, чем является конкретная сделка: за это отвечает поле-список в сделке, которое модуль создаёт из своих настроек вместе со значениями.
- Сделка со значением «Закупка» (или тем, что вы задали) уезжает заказом поставщику.
- Сделка без заданного признака уезжает заказом покупателя — это тип по умолчанию.
- При загрузке из МойСклад поле проставляется автоматически.
Сделайте это поле обязательным в CRM — тогда тип документа будет известен всегда, ещё до первого сохранения сделки.
Поиск связанного документа
Первым этапом любого обмена модуль ищет, есть ли у сделки уже готовая пара в МойСкладе. Это и есть защита от дублей: найденный документ обновляется, а новый создаётся только тогда, когда пары действительно нет.
Поиск настраивается полями поиска — парами «поле сделки ↔ поле заказа». Со стороны МойСклад искать можно по идентификатору (UUID), коду и внешнему коду; со стороны Битрикс24 — по любому подходящему полю сделки, включая пользовательское.
- Если полей несколько, поиск идёт сверху вниз и останавливается на первом совпадении: порядок задаёт приоритет.
- Опция сохранения соответствий дозаписывает найденное или созданное значение обратно, чтобы следующий обмен нашёл документ сразу.
- Обмен документами не запустится, пока не задано хотя бы одно поле поиска с сохранением связки, — это встроенная проверка, а не рекомендация.
Отдельная настройка решает, учитывать ли при поиске тип документа: она нужна там, где один и тот же код может встретиться и у заказа покупателя, и у заказа поставщику.
Если поиск не выполнился из-за ошибки связи, обмен прерывается и повторяется позже. Создавать документ вслепую после сбоя нельзя — это гарантированный дубль.
Соответствия полей
После поиска модуль заполняет поля документа по заданным парам «поле сделки Битрикс24 ↔ поле заказа МойСклад». У каждой пары своё направление обмена: в обе стороны, только в МойСклад или только в Битрикс24.
Доступны стандартные поля, пользовательские поля сделки и дополнительные поля (атрибуты) документа МойСклад. Правила преобразования значений и совместимость типов описаны в разделе Сопоставление полей.
Два поля заказа заполняются в обход обычного сопоставления:
- контрагент — его подтягивает обмен контрагентами;
- статус документа — он настраивается отдельной таблицей соответствий (ниже).
Значения по умолчанию
То, что постоянно и не хранится в CRM, — организация, склад, канал продаж, договор — задаётся значениями по умолчанию, отдельно для документа МойСклад и для сделки Битрикс24. Для каждого значения выбирается момент применения: при создании, при обновлении или всегда.
Значение по умолчанию проставляется только если поле не заполнили другие настройки модуля — например, соответствие полей.
Организация — единственное обязательное поле заказа в МойСклад: без неё документ не создастся. Склад, в отличие от неё, необязателен.
Статусы и стадии
Статус документа МойСклад и стадия сделки Битрикс24 — разные сущности, поэтому модуль обменивает их по таблице соответствий, которую вы задаёте сами. Автоматического совпадения по названиям нет.
Для сделки модуль дополнительно вычисляет воронку по стадии — без этого Битрикс24 молча откатил бы смену стадии из другой воронки. Стадии и статусы, для которых пара не задана, остаются без изменений.
Ответственный, валюта и состав заказа
На странице документа отдельными переключателями включаются:
- обмен ответственными — с направлением; соответствия сотрудников берутся из справочников;
- обмен валютой — аналогично, по справочнику валют;
- обмен корзиной — товарные строки сделки и позиции документа.
Все три по умолчанию выключены: обмен документом можно запустить на одних полях, а состав и справочные значения добавить позже.
Фильтры обмена
Фильтр решает, какие документы вообще участвуют в обмене. Он задаётся отдельно для каждого направления:
- фильтр сделок Битрикс24 — какие сделки уезжают в учёт;
- фильтр документов МойСклад — какие документы принимаются обратно (например, только заказы нужного склада или организации).
Условия ставятся на поля: направление, источник, стадия, дата, произвольное пользовательское поле. Операторы — равно и не равно, больше и меньше, содержит и не содержит. При нескольких условиях документ должен подходить под все одновременно.
Справочники
Отдельная страница модуля сопоставляет четыре набора значений:
| Справочник | Где применяется |
|---|---|
| Ответственные | Обмен ответственными в документах и контрагентах. |
| Валюты | Обмен валютой документа. |
| Единицы измерения | Позиции документа и создание номенклатуры. |
| Ставки НДС | Позиции документа во всех контурах. |
Незаполненные ответственные и валюты пропускаются молча: если пары нет, поле просто не отправляется. Со ставками НДС осторожнее — неполный справочник отправляет ставку без пары как «Без НДС».
Проверка готовности
Перед каждым обменом модуль проверяет, достаточно ли настроек, чтобы запись нашлась и связалась. Если условия не выполнены, документ не обменивается — вместо того чтобы создать дубль или запись-пустышку.
Проверяются: включён ли обмен для документа, привязан ли тип документа, заданы ли поля поиска, есть ли хотя бы одно соответствие полей, заполнена ли организация.
Задача в очереди завершится со состоянием «Выполнена», и со стороны всё выглядит исправным — просто в МойСклад ничего не появится. Причина пишется в журнал действий: там перечислены все невыполненные условия сразу.
Текущее состояние настроек по обоим документам, трём типам контрагента и четырём справочникам видно на дашборде.