> ## Documentation Index
> Fetch the complete documentation index at: https://docs.yume.cloud/llms.txt
> Use this file to discover all available pages before exploring further.

# Инвентаризация

> Записи о состоянии единиц инвентаря: привязка к заказу и позиции заказа, источник записи, цепочка истории и автоматическая синхронизация текущего состояния единицы.

Полный перечень полей — в [глоссарии](/ru/logic/inventory/inventorization-glossary).

## Что делает этот раздел

**Инвентаризация** — это запись о том, в каком состоянии находится единица оборудования в конкретный момент. Каждая такая запись фиксирует: какую единицу проверяли, какое у неё зафиксировано состояние, кто и когда сделал отметку, а также (если проверка связана с арендой) в рамках какого заказа и по какой позиции заказа это произошло.

Записи инвентаризации выполняют две задачи одновременно:

* ведут **историю состояний** каждой единицы во времени (цепочка «предыдущая → текущая»);
* поддерживают **актуальное состояние единицы** в её карточке — при появлении новой записи текущее состояние единицы автоматически подтягивается из неё.

<Info>
  Проще говоря: единица инвентаря «показывает» состояние из последней сделанной по ней записи инвентаризации (либо то, что после этого выставили вручную в карточке), а сами записи никуда не исчезают и образуют журнал проверок.
</Info>

## Модель данных

| Поле                      | Тип          | Назначение                                                                                                                                                                 |
| ------------------------- | ------------ | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Единица инвентаря         | связь        | Единица оборудования, состояние которой фиксируется. Обязательное поле.                                                                                                    |
| Состояние                 | связь        | Зафиксированное состояние единицы (из справочника состояний инвентаря). Обязательное; удалить используемое состояние нельзя, пока на него ссылаются записи инвентаризации. |
| Заказ                     | связь        | Аренда, в рамках которой сделана фиксация. Может отсутствовать (проверка вне заказа).                                                                                      |
| Позиция заказа            | связь        | Конкретная позиция инвентаря внутри заказа. Может отсутствовать.                                                                                                           |
| Кто зафиксировал          | связь        | Пользователь, создавший запись.                                                                                                                                            |
| Предыдущая инвентаризация | связь        | Ссылка на предыдущую запись той же единицы — звено цепочки истории. Может отсутствовать (первая запись). Удалить запись, на которую ссылаются как на предыдущую, нельзя.   |
| Источник                  | перечисление | Как создана запись: **Вручную**, **Из заказа** или **Из мастерской**. По умолчанию — **Вручную**.                                                                          |
| Комментарий               | текст        | Текстовое описание/заметка при фиксации состояния (до 512 символов).                                                                                                       |
| Дата создания             | дата/время   | Момент фиксации; проиндексирован.                                                                                                                                          |
| Дата обновления           | дата/время   | Момент последнего изменения записи.                                                                                                                                        |

Записи по умолчанию сортируются от новых к старым.

<Note>
  Связь с заказом и позицией заказа при удалении заказа приводит к удалению связанных записей инвентаризации (запись «живёт» вместе с заказом, если была к нему привязана). Записи, не привязанные к заказу, этим не затрагиваются.
</Note>

### Источник записи

Источник показывает, откуда взялась запись:

* **Вручную** — оператор сам открыл единицу и отметил её состояние (проверка без привязки к аренде или отдельная ручная фиксация). Это значение по умолчанию.
* **Из заказа** — запись создана в ходе оформления заказа, при массовой фиксации состояний нескольких единиц сразу (например, приёмка/выдача по позициям аренды).
* **Из мастерской** — запись, связанная с обслуживанием/ремонтом; проставляется в сценариях мастерской (за пределами обычной ручной или заказной фиксации).

## Логика и побочные эффекты

### Автоматическая синхронизация состояния единицы

Ключевой эффект: **состояние из записи инвентаризации переносится в карточку единицы.** Перенос выполняется в двух случаях:

* при **создании** новой записи — единица получает зафиксированное в ней состояние;
* при **изменении состояния в уже существующей записи** — то есть когда оператор исправляет ошибочно указанное состояние, поправка доходит до единицы.

Простое пересохранение записи без смены состояния (например, правка комментария) состояние единицы **не трогает**. Поэтому состояние, выставленное вручную в карточке единицы, сохраняется — новая инвентаризация его перезапишет, а повторное сохранение старой записи нет.

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

<Note>
  Перенос пропускается, если у записи не заполнена единица инвентаря или не указано состояние, а также если состояние единицы уже совпадает с записанным — запись при этом сохраняется как обычно, просто без побочного эффекта.
</Note>

### Цепочка истории

Поле «предыдущая инвентаризация» связывает записи одной единицы в цепочку, по которой можно восстановить, как менялось состояние во времени. Для восстановления «что было до текущей отметки» система также умеет вычислять предыдущее состояние напрямую — как состояние из самой свежей записи той же единицы, сделанной раньше текущей.

### Одиночное создание записи

При создании одной записи:

* если создатель явно не передан, им становится текущий пользователь;
* запись можно сопроводить прикреплёнными изображениями — они после сохранения привязываются к созданной записи;
* можно передать дополнительные данные о пробеге: если указан общий пробег, он дописывается в дополнительные сведения единицы и заводится отдельная запись о пробеге, связанная с этой инвентаризацией.

### Массовое создание записей по заказу

Для оформления сразу нескольких единиц в рамках одного заказа используется массовое создание. Оно выполняется единой транзакцией и делает следующее:

1. Создаёт записи инвентаризации по каждой переданной единице с источником **Из заказа**, привязывая их к заказу и, при наличии, к позиции заказа.
2. Привязывает переданные изображения к созданным записям.
3. Обновляет текущее состояние каждой единицы и дописывает дополнительные сведения (например, пробег).
4. Для единиц, по которым передан общий пробег, заводит записи о пробеге.
5. Для каждой единицы запускает связанную логику мастерской (создание задач обслуживания/ремонта в зависимости от зафиксированного состояния).

<Note>
  Массовое создание выполняется целиком: либо создаются все записи, либо не создаётся ни одна. Если что-то пошло не так, транзакция откатывается и запрос завершается ошибкой — «внешне успешного» ответа при незаписанных данных не бывает. Ответ «создано» означает, что записи действительно сохранены.
</Note>

<Warning>
  Если в массовом запросе передано несуществующее состояние, ответ будет технической внутренней ошибкой, а не понятным сообщением «такого состояния нет». Данные при этом не портятся (ничего не сохраняется), но по тексту ответа причину не понять — состояния стоит выбирать из справочника, а не подставлять произвольные значения.
</Warning>

<Note>
  В массовом пути состояние единиц обновляется явным пакетным обновлением, а не через пооперационную синхронизацию. Присланное состояние записывается в каждую единицу **безусловно** — это замысел: оператор указывает состояние по каждой позиции сам, и оно должно попасть в карточку, даже если её состояние правили вручную.
</Note>

## Как это используется

### Журнал инвентаризаций (список записей)

Основной список записей показывает историю проверок и поддерживает:

* **поиск** по названию и уникальному номеру единицы, тексту комментария и названию состояния; при включённой поддержке транспорта дополнительно ищет по номеру и техпаспорту авто-карточки;
* **фильтры**: по дате создания (диапазон), по единице, по продукту единицы, по точке проката единицы, по создателю, по состоянию, по заказу и по предыдущему состоянию;
* **сортировки**: по дате, заказу, создателю, номеру/названию единицы, номеру авто, комментарию, статусу единицы, состоянию и предыдущему состоянию.

Каждая строка списка дополнительно снабжается вычисляемыми признаками:

| Признак              | Что означает                                                                      |
| -------------------- | --------------------------------------------------------------------------------- |
| Статус заказа        | Текущий статус аренды, к которой привязана запись.                                |
| «Проверено»          | Признак свежести: запись сделана не позднее заданного числа дней назад.           |
| Статус единицы       | Текущий вычисляемый статус единицы (свободна/в аренде и т. п.) на момент запроса. |
| Предыдущее состояние | Состояние из более ранней записи той же единицы.                                  |

<Tip>
  Порог свежести («сколько дней запись считается актуальной») настраивается в конфигурации; при отсутствии значения используется 7 дней.
</Tip>

### Сводка по состояниям

Отдельная сводка показывает, сколько единиц находится в каждом состоянии. В подсчёт берутся только «живые» единицы: исключаются выведенные из оборота, проданные и находящиеся на складе. Видимость ограничивается точками проката пользователя — сотрудник видит только свои точки, а администратор компании видит все либо конкретную выбранную точку.

### Список единиц для инвентаризации (задачи)

Отдельный список показывает единицы под инвентаризацию вместе с их последней записью. Для каждой единицы подтягивается самая свежая запись инвентаризации и признак её свежести, а также дата последней проверки. Список так же ограничен точками проката пользователя и исключает выведенные из оборота, проданные и складские единицы; единицы упорядочиваются так, чтобы наверх попадали давно не проверявшиеся.

<Info>
  Видимость во всех списках, где она применяется, работает единообразно: администратор компании видит все точки проката (или одну выбранную через параметр точки), а обычный сотрудник — только закреплённые за ним точки.
</Info>

## Особенности поведения

* У источника записи три возможных значения — «Вручную» (по умолчанию), «Из заказа» и «Из мастерской».
* Состояние переносится в карточку единицы при создании записи или при фактическом изменении состояния в записи; пересохранение записи без смены состояния карточку не трогает.
* Перенос пропускается, если у сохранённой записи не заполнена единица инвентаря или состояние, а также если состояние единицы уже совпадает с записанным; сама запись при этом всё равно сохраняется, но без побочного эффекта.
* Массовое создание обновляет состояние единиц отдельным пакетным обновлением, минуя пооперационную синхронизацию, и записывает присланное состояние безусловно.
* Массовое создание либо сохраняет все записи, либо не сохраняет ни одной и отвечает ошибкой; несуществующее состояние в запросе даёт техническую ошибку без понятного объяснения.
* Состояние и предыдущая инвентаризация защищены от удаления: нельзя удалить используемое состояние или запись, на которую ссылаются как на предыдущую.
* Записи, привязанные к заказу или позиции заказа, удаляются каскадно вместе с заказом; записи без такой привязки не затрагиваются.
* Порог «свежести» инвентаризации берётся из конфигурации, а при отсутствии значения по умолчанию равен 7 дням.
* Расширенный поиск по номеру и техпаспорту авто включается только при включённой поддержке транспорта в конфигурации.
* Поиск ищет вхождение подстроки без учёта регистра и не подбирает «неправильную раскладку клавиатуры»: запрос латиницей не найдёт кириллические названия, и наоборот. Запросы в один-два символа обрабатываются медленнее, чем от трёх символов.
* В списке единиц для инвентаризации поиск по числовому идентификатору требует **точного** совпадения номера, а не вхождения цифр внутри него, — в выдачу больше не попадают посторонние единицы, у которых запрошенные цифры просто встречались в номере.

## Связанные страницы

<CardGroup cols={2}>
  <Card title="Глоссарий: Инвентаризация" icon="book" href="/ru/logic/inventory/inventorization-glossary">
    Полный перечень полей и терминов раздела инвентаризации.
  </Card>

  <Card title="Инвентарь и услуги (CRM)" icon="boxes-stacked" href="/ru/logic/inventory">
    Обзорная страница модуля: единицы, продукты, комплекты, тарифы и услуги.
  </Card>

  <Card title="Инвентарь (единицы)" icon="box" href="/ru/logic/inventory/inventory-items">
    Отдельные единицы оборудования: статусы и состояние, пробег, страховка, авто-поля, импорт и массовые операции.
  </Card>

  <Card title="Продукт" icon="layer-group" href="/ru/logic/inventory/inventory-groups">
    Учёт однотипного инвентаря по количеству вместо отдельных единиц.
  </Card>

  <Card title="Комплекты (наборы)" icon="boxes-stacked" href="/ru/logic/inventory/inventory-sets">
    Наборы инвентаря, сдаваемые как единое целое: состав, позиции и цены комплекта.
  </Card>

  <Card title="Тарифы и цены" icon="tags" href="/ru/logic/inventory/tariffs">
    Тарифы аренды по временным периодам для единиц, продуктов и комплектов.
  </Card>

  <Card title="Доступность и расписание" icon="calendar-check" href="/ru/logic/inventory/availability">
    Расписание занятости и расчёт доступности с учётом заказов, склада и мастерской.
  </Card>

  <Card title="Субаренда" icon="handshake" href="/ru/logic/inventory/sublease">
    Периоды субаренды единиц с процентом владельца — источник истории для распределения выручки.
  </Card>

  <Card title="Услуги (сервисы)" icon="concierge-bell" href="/ru/logic/inventory/services">
    Дополнительные платные услуги и их тарифы, добавляемые к заказам.
  </Card>

  <Card title="Обслуживание и ремонт" icon="screwdriver-wrench" href="/ru/logic/inventory/maintenance">
    Плановое и разовое техобслуживание по интервалу или пробегу, с ресурсами и уведомлениями.
  </Card>
</CardGroup>
