Пошаговая инструкция
Причины списания нужны, чтобы каждый документ списания объяснял, почему складской остаток уменьшился. Это отделяет порчу, истечение срока, бой, инвентаризационную корректировку и другие потери от продаж, перемещений и приемки.
Сначала пройдите walkthrough. Точки показывают, куда нажимать; видео показывают реальный ввод названия, раскрытие переводов, сохранение и проверку строки в SABSUS.
Поля на этом экране
Список причин
Как заполнять: Откройте список Write-off reasons и сначала проверьте, нет ли уже такой причины.
Зачем: Дубли вроде Испорчено, Порча и Брак разделяют отчеты и мешают понять реальные потери.
Добавление
Как заполнять: Нажмите Добавить, только если нужна новая повторно используемая причина списания.
Зачем: Причина должна быть контролируемым вариантом выбора, а не разовым комментарием.
Название причины
Как заполнять: Введите короткое название причины на текущем языке интерфейса: Испорченный продукт, Поврежденная упаковка, Истек срок годности или Корректировка инвентаризации.
Зачем: Сотрудник выбирает это поле во время списания, поэтому название должно быть быстрым и понятным.
Переводы
Как заполнять: Откройте три точки справа от поля названия и заполните все включенные языки компании.
Зачем: Мультиязычная команда должна видеть одну и ту же причину на своем языке.
Сохранение
Как заполнять: Сохраните причину после проверки текущего языка и переводов.
Зачем: Несохраненная причина не появится в документах списания и отчетах.
Проверка строки
Как заполнять: Вернитесь в список и убедитесь, что причина видна в таблице.
Зачем: Так видно, что запись реально загрузилась обратно из Supabase.
Использование в списаниях
Как заполнять: При создании списания выбирайте эту причину, а детали инцидента пишите в комментарий конкретного списания.
Зачем: Отчеты должны группироваться по причине, а комментарии должны объяснять конкретный случай.
Частые ошибки
- Создавать несколько похожих причин вместо одной контролируемой причины.
- Писать длинное описание инцидента в название причины, а не в комментарий списания.
- Заполнять только один язык, когда компания работает на нескольких языках.
- Редактировать Supabase напрямую и не обновлять company.loadwriteoff.
- Использовать причину списания для продаж, перемещений или приемки, где должен быть отдельный процесс.
Техническая таблица для AI-агентов
Этот блок расположен ниже пользовательской инструкции. Он нужен поддержке, автоматизациям и будущим AI-агентам, которые будут объяснять списания и складские отчеты.
| Поле | Хранится как | Назначение | Почему важно |
|---|---|---|---|
| ID причины | write_off_reasons.id / ReasonsStruct.ID | Уникальный идентификатор причины. | Документы списания должны ссылаться на стабильный ID, а не только на видимый текст. |
| Компания | write_off_reasons.company | Компания, которой принадлежит причина. | Не дает причинам из одной компании попасть в складской процесс другой компании. |
| Названия | write_off_reasons.name / ReasonsStruct.Name[] | Мультиязычный список Language/Text. | Списки, отчеты, импорт и AI-объяснения должны показывать причину на активном языке интерфейса. |
| Создано | write_off_reasons.created_at | Время создания причины. | Полезно для аудита настройки и понимания, когда причина появилась относительно складских событий. |
| Обновлено | write_off_reasons.updated_at | Время последнего изменения названия. | Поддержка и AI-агенты могут понять, свежий ли термин используется в отчетах. |
| Кэш приложения | FFAppState().WriteoffReason | Локальный список причин в интерфейсе SABSUS. | После backend-изменений приложение должно перезагрузить причины. |
| Маркер обновления | company.loadwriteoff | Timestamp для перезагрузки write-off данных. | Нативные или backend-правки требуют обновления маркера, чтобы приложение увидело изменения. |
| Ссылка в списании | write_offs.reasons / WriteOffStruct.reasons | Причина, выбранная в конкретном документе списания. | Именно это поле объясняет, почему складской остаток был уменьшен. |
| Позиции списания | write_offs.items / WriteOffStruct.items | Товары или ингредиенты, которые списываются. | Причина объясняет событие, а строки показывают что и сколько списали. |
| Комментарий списания | write_offs.comment | Дополнительное описание конкретного случая. | Не перегружайте название причины деталями; используйте комментарий для инцидента. |
| Поиск | writeoffReasons('search', input) | Поиск по ID и переводам причины. | Единые названия делают поиск и поддержку надежнее. |