Создание инвентаризации

Максим

Максим

Обновлено Oct 6, 2026

Создает инвентаризацию материалов или продуктов на складе. Передавайте только фактические остатки: ожидаемые Controlata рассчитает сама на дату инвентаризации.

v1/audits/add.php

Параметры

Поле Тип Обязательное Описание
storage_id int Да Склад, на котором проводится инвентаризация
materials array materials или products Строки инвентаризации материалов
products array materials или products Строки инвентаризации продуктов
date string Нет Дата инвентаризации, YYYY-MM-DD. По умолчанию сегодня

Строка materials и products:

Поле Тип Обязательное Описание
id int id или sku ID материала или продукта
sku string id или sku Артикул
actual float Да Фактический остаток, 0 или больше
notes string Нет Заметки к строке

Передайте строки только в одном массиве: инвентаризация считает либо материалы, либо продукты. Каждая позиция указывается один раз. Как указывать позицию по id или артикулу, описано в статье Общие правила.

Как работает

  • Ожидаемый остаток каждой строки рассчитывается на дату инвентаризации включительно по проведенным операциям склада (см. Инвентаризации).
  • Корректировка. Разница между actual и ожидаемым остатком добавляется на склад (излишек) или списывается по FIFO (недостача). Строка без разницы остаток не меняет.
  • Статус берется из настройки Статус новой инвентаризации по умолчанию. В статусе Проведена остатки корректируются сразу, в статусе План корректировка только планируется.
  • Номер присваивается автоматически, задать его нельзя.
  • В инвентаризацию попадают только переданные позиции. Остальные позиции склада она не затрагивает.

Пример запроса

{
    "storage_id": 3998,
    "date": "2026-09-30",
    "materials": [
        {
            "id": 2051,
            "actual": 3.8
        },
        {
            "sku": "M022",
            "actual": 0,
            "notes": "Не найдено на складе"
        }
    ]
}

Пример ответа

{
    "success": true,
    "audit_id": 1699,
    "num": 24,
    "status": 1
}

В ответе приходят ID, номер и код статуса новой инвентаризации. Ожидаемые остатки и разницу по строкам возвращает v1/audits/get_entry.

Ошибки

Ошибка Причина
No storage_id in input Не передан storage_id
Storage ID is not set storage_id равен 0 или пустой
Storage ID not found Склад не найден или удален
An audit counts either materials or products. Create separate audits Переданы и materials, и products
No products or materials in input Не передано ни одной строки
Materials is not an array materials не массив (так же для products)
Line 0 of materials must be an object Строка не объект (вместо 0 будет номер строки)
SKU or id not set for material 0 В строке нет ни id, ни sku
Material with id 2051 not found Материал не найден или удален (для артикула: Material with SKU "M022" not found)
Actual must be 0 or greater for material with id 2051 actual не передан, не число или меньше 0
Material with id 2051 is listed twice Позиция указана в двух строках
Date is not a valid date in format YYYY-MM-DD Неверный формат даты