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

Документы: сделки и заказы

Модуль обменивает сделки Битрикс24 с двумя документами МойСклад:

  • Заказ покупателя — продажа клиенту;
  • Заказ поставщику — закупка у поставщика.

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

Признак типа документа

В МойСкладе продажа и закупка — разные документы, а в Битрикс24 и то и другое оформляется сделкой. Поэтому модулю нужно подсказать, чем является конкретная сделка: за это отвечает поле-список в сделке, которое модуль создаёт из своих настроек вместе со значениями.

  • Сделка со значением «Закупка» (или тем, что вы задали) уезжает заказом поставщику.
  • Сделка без заданного признака уезжает заказом покупателя — это тип по умолчанию.
  • При загрузке из МойСклад поле проставляется автоматически.
подсказка

Сделайте это поле обязательным в CRM — тогда тип документа будет известен всегда, ещё до первого сохранения сделки.

Поиск связанного документа

Первым этапом любого обмена модуль ищет, есть ли у сделки уже готовая пара в МойСкладе. Это и есть защита от дублей: найденный документ обновляется, а новый создаётся только тогда, когда пары действительно нет.

Поиск настраивается полями поиска — парами «поле сделки ↔ поле заказа». Со стороны МойСклад искать можно по идентификатору (UUID), коду и внешнему коду; со стороны Битрикс24 — по любому подходящему полю сделки, включая пользовательское.

  • Если полей несколько, поиск идёт сверху вниз и останавливается на первом совпадении: порядок задаёт приоритет.
  • Опция сохранения соответствий дозаписывает найденное или созданное значение обратно, чтобы следующий обмен нашёл документ сразу.
  • Обмен документами не запустится, пока не задано хотя бы одно поле поиска с сохранением связки, — это встроенная проверка, а не рекомендация.

Отдельная настройка решает, учитывать ли при поиске тип документа: она нужна там, где один и тот же код может встретиться и у заказа покупателя, и у заказа поставщику.

Сбой поиска не приводит к созданию записи

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

Соответствия полей

После поиска модуль заполняет поля документа по заданным парам «поле сделки Битрикс24 ↔ поле заказа МойСклад». У каждой пары своё направление обмена: в обе стороны, только в МойСклад или только в Битрикс24.

Доступны стандартные поля, пользовательские поля сделки и дополнительные поля (атрибуты) документа МойСклад. Правила преобразования значений и совместимость типов описаны в разделе Сопоставление полей.

Два поля заказа заполняются в обход обычного сопоставления:

  • контрагент — его подтягивает обмен контрагентами;
  • статус документа — он настраивается отдельной таблицей соответствий (ниже).

Значения по умолчанию

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

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

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

Статусы и стадии

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

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

Ответственный, валюта и состав заказа

На странице документа отдельными переключателями включаются:

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

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

Фильтры обмена

Фильтр решает, какие документы вообще участвуют в обмене. Он задаётся отдельно для каждого направления:

  • фильтр сделок Битрикс24 — какие сделки уезжают в учёт;
  • фильтр документов МойСклад — какие документы принимаются обратно (например, только заказы нужного склада или организации).

Условия ставятся на поля: направление, источник, стадия, дата, произвольное пользовательское поле. Операторы — равно и не равно, больше и меньше, содержит и не содержит. При нескольких условиях документ должен подходить под все одновременно.

Справочники

Отдельная страница модуля сопоставляет четыре набора значений:

СправочникГде применяется
ОтветственныеОбмен ответственными в документах и контрагентах.
ВалютыОбмен валютой документа.
Единицы измеренияПозиции документа и создание номенклатуры.
Ставки НДСПозиции документа во всех контурах.

Незаполненные ответственные и валюты пропускаются молча: если пары нет, поле просто не отправляется. Со ставками НДС осторожнее — неполный справочник отправляет ставку без пары как «Без НДС».

Проверка готовности

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

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

Недонастроенный документ не даёт ошибку — он тихо пропускается

Задача в очереди завершится со состоянием «Выполнена», и со стороны всё выглядит исправным — просто в МойСклад ничего не появится. Причина пишется в журнал действий: там перечислены все невыполненные условия сразу.

Текущее состояние настроек по обоим документам, трём типам контрагента и четырём справочникам видно на дашборде.