# Маршруты и статусы задач — Решение проблем

Справочник для инженеров поддержки: типовые проблемы с маршрутами и статусами задач, их диагностика и решение. Документ организован по типам проблем — от расхождения статусов до ошибок API, каждая секция содержит симптомы, шаги проверки, решение и критерии эскалации. В конце — чеклист первичной диагностики и правила передачи обращения в поддержку 1Ф.

## 1. Расхождение статусов

**Статус в списке не совпадает со статусом в задаче**

**Симптом:** «в общем списке задач один статус, а при открытии задачи — другой», «расхождение статусов в списке и в заявке».

**Что проверить:**

- Кеш / обновление страницы — устарели ли данные в списке задач
- Денормализация — обновились ли денормализованные поля
- Конкурентное обновление — не изменил ли другой пользователь статус

**Эскалация:** если после обновления страницы расхождение сохраняется — проблема денормализации.

**Статус визуально не меняется после принудительной смены**

**Симптом:** «принудительно сменил статус задачи, но визуально он не изменился».

**Что проверить:**

- Обновить страницу
- SignalR — работает ли обновление в реальном времени
- Лог — прошёл ли переход фактически (проверить историю задачи)

**Решение:** обновить страницу. Если в истории задачи переход зафиксирован, но список задач не обновился — проблема SignalR или денормализации.

**Канбан не обновляется при смене статуса**

**Симптом:** «меняю статус через ПКМ или через форму задачи, но на канбане задача не перемещается».

**Что проверить:**

- Обновить страницу
- SignalR-соединение
- Настройки канбана — соответствуют ли колонки статусам

**Карточка после перевода показывает прежнее состояние**

**Симптом:** «задачу перевели по маршруту, переход виден в истории задачи, но карточка ещё несколько минут показывает прежний статус».

**Что проверить:**

- История задачи — зафиксирован ли переход
- Повторное открытие карточки через минуту-две — сошлось ли состояние само
- Видят ли расхождение другие пользователи: если да, дело не в кеше браузера

**Эскалация:** если переход в истории есть, а прежний статус держится дольше нескольких минут, передайте в поддержку 1Ф номер задачи, время перевода, ожидаемый и фактический статус и пометку, что подозревается расхождение серверного кеша состояния между узлами.

**После переноса в другую категорию «Принудительный переход» показывает статусы прежней категории**

**Симптом:** «перенёс задачу в другую категорию, карточка показывает новую, а в списке статусов — статусы старой».

**Что проверить:**

- Версия системы — начиная со сборки 2.268 «Скульптор» список статусов перезапрашивается при смене категории, перезагрузка страницы не требуется
- Перезагрузить страницу: если после перезагрузки список верный, расхождение было в кэше карточки, это чинится обновлением
- Путь переноса — «Перенести» с формой обязательных полей перезагружает карточку целиком и правки не требует

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

---

## 2. Ошибки маршрута и папок избранного

**Ошибка при движении по маршруту**

**Симптом:** «ошибка отработки маршрута», «неверная работа передвижения заявки по маршруту».

**Что проверить:**

- Скриншот / текст ошибки
- Конкретный переход — из какого статуса в какой
- Условия перехода — нет ли смарт-условий, блокирующих переход
- Обязательные поля — все ли заполнены
- Обязательный комментарий — настроен ли

**Эскалация:** если маршрут настроен корректно, поля заполнены, но ошибка воспроизводится — баг.

**Нет доступа к кнопке перехода**

**Симптом:** «не вижу кнопку перехода в маршруте», «нет доступа к кнопке "Создать иск"».

**Что проверить:**

- Роль пользователя — разрешён ли переход для этой роли
- Условия видимости перехода — нет ли смарт-выражений
- Текущий статус — доступен ли переход из текущего статуса

**Решение:** проверить настройки маршрута: Администрирование → Категории → Маршрут → Переходы → Права.

**Ошибка при входе в папку избранного «Маршрутизатор»**

**Симптом:** «ошибка при открытии папки избранного, привязанной к маршрутизатору».

**Что проверить:**

- Существует ли ещё маршрут / категория, на которую ссылается папка
- Права пользователя
- Версия системы

---

## 3. Интерфейс маршрута и API

**Шевроны маршрута стали кликабельны**

**Симптом:** «почему шевроны маршрута стали кликабельны?»

**Решение:** начиная с определённой версии шевроны стали интерактивными — клик по шеврону инициирует переход. Если это нежелательно, настройка видимости переходов управляется через права.

**Новый статус не отображается в списке для выбора**

**Симптом:** «создал статус, добавил переход с ним, но новый статус не виден в списке для выбора».

**Что проверить:**

- Кеш — обновить страницу / перелогиниться
- Маршрут — сохранён ли после добавления перехода
- Активность статуса — не деактивирован ли

**Запрос комментария при переходе из статуса**

**Симптом:** «как настроить запрос комментария при переходе?»

**Решение:** в настройках перехода (Маршрут → Переходы → конкретный переход) есть опция «Обязательный комментарий». При включении — переход невозможен без ввода комментария.

**feedsBySP некорректно выдаёт статус согласования**

**Симптом:** «API /api/tasks/feedsBySP возвращает некорректный статус согласования задачи».

**Эскалация:** баг API — обратиться в поддержку 1Ф с примером TaskID, ожидаемым и фактическим статусом.

---

## Чеклист для первичной диагностики и эскалация

При любом обращении по маршрутам и статусам соберите базовую информацию:

1. **Тип проблемы** — расхождение статусов, ошибка перехода, интерфейс маршрута, доступ, API
2. **Категория и подкатегория**
3. **Конкретный переход** — из какого статуса в какой
4. **Версия системы**
5. **Контекст** — список задач, канбан, форма задачи, API
6. **Скриншот / текст ошибки**
7. **Пустая область карточки после обновления** — если в консоли подряд `NG0201` и `NG0200`, посмотрите страницу диагностики `/spa/ngsw/state`: состояние должно быть `NORMAL`, слова `Hash mismatch` означают, что браузер держит файлы прежней сборки

Передайте обращение в поддержку 1Ф, если столкнулись с одним из следующих случаев:

- Расхождение статусов сохраняется после обновления (денормализация)
- Маршрут настроен корректно, но переход даёт ошибку (баг)
- API возвращает некорректный статус
- Принудительная смена статуса не отрабатывает

```mermaid
flowchart TD
    A["Проблема с маршрутом или статусом"] --> B{"Тип проблемы?"}
    B -- "Расхождение статусов" --> C["Обновить страницу: кеш, денормализация"]
    B -- "Статус / канбан не меняется" --> D["Обновить страницу; проверить SignalR и историю задачи"]
    B -- "Ошибка перехода" --> E["Проверить переход, условия, обязательные поля и комментарий"]
    B -- "Нет кнопки перехода" --> F["Проверить роль, видимость перехода, текущий статус"]
    B -- "API feedsBySP даёт неверный статус" --> I["Эскалация: баг API (TaskID, ожидаемый и фактический статус)"]
    C -- "расхождение осталось" --> G["Эскалация: денормализация или SignalR"]
    D -- "переход в истории есть, список не обновился" --> G
    E -- "маршрут корректен, ошибка повторяется" --> H["Эскалация: баг"]
```
