Проведение документа в МойСклад — это переключение его из черновика в учётный документ, влияющий на остатки, резервы и взаиморасчёты. В JSON API 1.2 за это отвечает единственное булево поле applicable: true — документ проведён, false — снят с проведения и превращён в черновик.
Что значит «провести документ»
В МойСклад почти каждый документ (отгрузка, приёмка, оприходование, списание, платёж) существует в двух состояниях. Непроведённый документ — черновик: он хранит данные, но не двигает остатки и не участвует в учёте. Проведённый документ применён: остатки списаны или оприходованы, деньги учтены во взаиморасчётах.
За состояние отвечает поле applicable:
applicable: true— документ проведён, влияет на учёт;applicable: false— документ не проведён, это черновик.
applicable) со статусом документа (state). Статус — это произвольный этап в воронке («Собран», «Отгружен»), а applicable — техническое состояние учёта.Как провести документ
Проведение — это просто установка applicable в true. Сделать это можно двумя способами.
Сразу при создании — добавьте поле в тело POST:
POST /api/remap/1.2/entity/demand{ "organization": {...}, "agent": {...}, "store": {...}, "positions": [...], "applicable": true }
У существующего документа — методом PUT:
PUT /api/remap/1.2/entity/demand/{id}{ "applicable": true }
Достаточно передать только изменяемое поле — остальные реквизиты документа сохранятся. Ответ вернёт документ уже в проведённом состоянии.
Как снять проведение
Снятие проведения — обратная операция: applicable переводится в false.
PUT /api/remap/1.2/entity/demand/{id}{ "applicable": false }
После этого документ снова становится черновиком: остатки, которые он списывал, возвращаются, а взаиморасчёты пересчитываются. Это штатный способ «отменить» влияние документа, не удаляя его — данные и связи сохраняются.
На что влияет проведение
Эффект проведения зависит от типа документа:
| Документ | Что происходит при проведении |
|---|---|
| Отгрузка (demand) | Списывает товар со склада, увеличивает долг покупателя |
| Приёмка (supply) | Оприходует товар, увеличивает долг перед поставщиком |
| Оприходование (enter) | Добавляет остаток на склад |
| Списание (loss) | Уменьшает остаток |
| Входящий платёж (paymentin) | Уменьшает долг покупателя |
Пока документ не проведён, ни одно из этих действий не выполняется. Поэтому в интеграции важно осознанно управлять applicable: создавать черновики для проверки и проводить только валидные документы.
Ошибки при проведении
Проведение может завершиться ошибкой — в отличие от сохранения черновика, оно проверяет учётные ограничения. Типичные причины:
- Контроль отрицательных остатков. Если на складе нет достаточного количества, а в настройках запрещён минус, проведение отгрузки или списания вернёт ошибку.
- Незаполненные обязательные поля. Для проведения могут требоваться склад, организация, контрагент.
- Закрытый период. Если учётный период закрыт, документ в нём провести нельзя.
API вернёт код 4xx и тело с массивом errors, где будет error, code и часто moreInfo. Обрабатывайте такой ответ отдельно: документ остался черновиком, и повторять операцию без исправления причины бессмысленно.
Массовое проведение и снятие
Проводить документы пачками удобнее через bulk — POST /entity/{type} с массивом объектов, где у каждого указана meta и новое значение applicable:
POST /api/remap/1.2/entity/demand[ { "meta": {...demand1...}, "applicable": true }, { "meta": {...demand2...}, "applicable": true } ]
- Один bulk-запрос обрабатывает до 1000 объектов.
- Результат приходит одним ответом; проверяйте статус по каждому объекту.
- Ошибки проведения отдельных документов не откатывают весь пакет — часть может провестись, часть нет.
applicable фиксируется в аудите с diff по этому полю.Итог
Проведение и снятие проведения в JSON API 1.2 — это управление одним полем applicable через POST при создании или PUT для существующего документа. Проведённый документ двигает остатки и взаиморасчёты, черновик — нет. Проведение проверяет учётные ограничения и может вернуть ошибку, а массовые операции делаются через bulk с проверкой результата по каждому объекту.
Когда учётные операции МойСклад нужно автоматизировать в связке с сайтом и бизнес-процессами на 1С-Битрикс — например, проводить отгрузку по факту оплаты на сайте, — мы проектируем такие сценарии автоматизации и интеграции. Настроим корректную обработку ошибок проведения и учётных цепочек.
Частые вопросы
Какое поле отвечает за проведение документа?
Булево поле applicable. Значение true означает, что документ проведён и влияет на учёт, false — что это черновик.
Чем проведение отличается от статуса документа?
Проведение (applicable) — техническое состояние учёта, влияющее на остатки и взаиморасчёты. Статус (state) — произвольный этап в воронке, например Собран или Отгружен.
Как снять проведение, не удаляя документ?
Отправьте PUT с телом applicable: false. Документ станет черновиком, остатки вернутся, а данные и связи сохранятся.
Почему проведение отгрузки возвращает ошибку?
Чаще всего из-за контроля отрицательных остатков: товара на складе не хватает, а минус запрещён настройками. Также причиной бывают незаполненные обязательные поля или закрытый период.
Можно ли провести документ сразу при создании?
Да, добавьте applicable: true в тело POST при создании. Документ создастся уже проведённым.
Как провести много документов за раз?
Через bulk — POST /entity/{type} с массивом объектов, у каждого meta и applicable. За один запрос обрабатывается до 1000 объектов.
Откатывается ли весь bulk-пакет при ошибке одного документа?
Нет. Ошибка проведения отдельного документа не откатывает пакет: часть объектов может провестись, часть нет. Проверяйте результат по каждому.
Фиксируется ли смена проведения в аудите?
Да. Изменение поля applicable попадает в журнал событий с diff по этому полю, поэтому переключения проведения можно отследить через аудит.
Поможем с настройкой и поддержкой Для разработчиков
Поможем с настройкой, доработкой и поддержкой Для разработчиков.