Возвращает списания компании, от новых к старым: по дате, а внутри одной даты по ID.

```
v1/writeoffs/get_list.php
```

## Параметры

| Поле | Тип | Обязательное | Описание |
|---|---|---|---|
| date_from | string | Нет | Списания с этой даты включительно, YYYY-MM-DD |
| date_to | string | Нет | Списания по эту дату включительно, YYYY-MM-DD |
| status | int | Нет | Статус: 0 План, 1 Списано |
| limit | int | Нет | Размер страницы, от 1 до 1000 |
| offset | int | Нет | Сколько записей пропустить |

Без limit возвращается весь список. Подробнее о постраничной выдаче в статье [Общие правила](https://developers.controlata.ru/hc/api-docs/articles/rules).

## Ответ

Массив writeoffs с полями списания (см. [Списания](https://developers.controlata.ru/hc/api-docs/articles/writeoffs)), без строк. Строки возвращает [v1/writeoffs/get_entry](https://developers.controlata.ru/hc/api-docs/articles/writeoffs-get-entry). Поле total содержит общее число списаний, подходящих под фильтры.

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

```
{
    "date_from": "2026-10-01",
    "date_to": "2026-10-31",
    "limit": 100,
    "offset": 0
}
```

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

```
{
    "success": true,
    "writeoffs": [
        {
            "id": "19291",
            "num": "48",
            "date": "2026-10-06",
            "status": "1",
            "production_id": "0",
            "materials_storage_id": "3998",
            "materials_storage_name": "Главный",
            "products_storage_id": "4001",
            "products_storage_name": "Готовая продукция",
            "cost": "26350.00",
            "amount": null,
            "lines": "2",
            "notes": "Брак при распиле"
        }
    ],
    "total": 1
}
```

## Ошибки

| Ошибка | Причина |
|---|---|
| Date is not a valid date in format YYYY-MM-DD | Неверный формат date_from или date_to |
| Invalid limit value. Must be between 1 and 1000 | Неверный limit |
| Offset requires limit | Передан offset без limit |
