Отключения
Плановые и аварийные отключения: задвижки и потребители по изоляции, объявление, список для уведомления, зоны на карте.
Возможности
- Список отключений с поиском по номеру и названию; плитки-счётчики по статусам «Запланировано», «Объявлено», «Идёт», «Завершено», «Отменено» — нажатие отбирает список.
- Новое отключение — плановое или аварийное — по участку, узлу или наряду: программа сама считает задвижки, потребителей и нагрузку.
- Смена статуса: «Объявлено потребителям», «Отключили», «Включили — завершить», «Отменить», «Вернуть в план», «Запланировать снова». Время «отключили» и «включили» записывается как фактическое.
- «Пересчитать» — обновить задвижки и потребителей после правки сети, пока отключение не началось.
- Пересечения с другими открытыми отключениями — по времени и общим потребителям.
- Социальные объекты в зоне: больницы, поликлиники, детские сады, школы, соцучреждения.
- «Текст объявления» — готовый текст в буфер обмена; «Список для уведомления» — Excel с потребителями и задвижками.
- Зона отключения на карте; «Зоны открытых на карте» — зоны всех открытых отключений, цвет по статусу.
- Публикация на публичной карте отключений для жителей — по отметке.
- Отключение из наряда — кнопка «Отключение для работ» в карточке наряда.
Как это работает
Запись. Отключение — строка таблицы tgid_outage, номер вида «О-2026-00010». При планировании сервер выполняет тот же расчёт изоляции, что и «Локализация аварий». Результат сохраняется снимком: задвижки (обязательные первыми), потребители зоны и потерявшие питание ниже по сети, нагрузка, зона на карте. Снимок не меняется сам, даже если сеть поправили, — нужна кнопка «Пересчитать». Пересчёт доступен в статусах «Запланировано» и «Объявлено».
В разделе «Задвижки» у каждой задвижки — где она стоит: «— участок N» или, если задвижка во внутренней схеме камеры, «— камера, узел N». Камеру знают только снимки, сделанные после обновления программы; в более старых и задвижки камер показаны как «— участок N» (участок внутренней схемы) — «Пересчитать» обновит снимок.
Если указаны и участок, и узел, считается по участку. Если не указано ни то ни другое, но отключение начато из наряда, место берётся из наряда.
Статусы.
| Из статуса | Можно перевести в |
|---|---|
| Запланировано | Объявлено, Идёт, Отменено |
| Объявлено | Идёт, Запланировано, Отменено |
| Идёт | Завершено |
| Отменено | Запланировано |
| Завершено | — |
Переход в «Идёт» ставит фактическое начало, в «Завершено» — фактическое окончание. Каждый шаг — запись в «Истории» с автором и временем. Если отключение за это время изменил другой пользователь, сервер отказывает: «Отключение уже изменили — обновите карточку».
Зона на карте — контур на 40 м вокруг участков зоны и участков ниже по сети, упрощённый до 10 м. Цвет зоны по статусу: запланировано — серо-синий, объявлено — оранжевый, идёт — красный.
Пересечения. При открытии карточки сервер ищет другие отключения в статусах «Запланировано», «Объявлено», «Идёт». Подходят те, у которых сроки перекрываются и есть хотя бы один общий потребитель. Каждое такое показано предупреждением с числом общих потребителей.
Социальные объекты — точки из справочника социальных объектов города, которые попадают в контур зоны, кроме скрытых. Порядок: больницы, поликлиники, детские сады, школы, соцучреждения. Не больше 500.
Текст объявления: вид и номер, сроки, причина и до 20 названий потребителей, дальше «и ещё N». Время в тексте — по часовому поясу сервера API.
«Список для уведомления» — книга Excel из двух листов:
- «Уведомление»: шапка (сроки, причина, число потребителей и нагрузка, текст объявления) и все потребители: название, тип, узел, нагрузка, «ниже по сети», координаты;
- «Задвижки»: номер, участок, Ду, «обязательная», состояние, координаты.
Социальных объектов в книге нет — они только в карточке.
Публичная карта показывает отключения со статусом «Объявлено» или «Идёт» и отметкой «Показывать на публичной карте (зона, сроки и число потребителей, без их названий)»: зону, сроки, число потребителей и текст для жителей. Названия потребителей и причина туда не попадают.
В карточке список потребителей ограничен первыми 200; полный — в Excel. Сроки, причину и публикацию после планирования в окне не изменить: если ошиблись, отмените отключение и запланируйте заново.
Что нужно для работы
- Смотреть список, карточки и зоны, копировать текст объявления — любой вошедший пользователь.
- Планировать, менять статус, пересчитывать — право «Журналы: ремонты, ПТС, акты, ТУ, привязки» (роли «Редактор» и «Администратор») и включённая запись на сервере. Без них нет кнопки «+ Отключение» и кнопок статуса.
- «Список для уведомления» — право «Выгрузки и отчёты» (есть у всех ролей по умолчанию). Без него кнопки нет.
- Социальные объекты появятся, если справочник социальных объектов города заполнен (см. Социальные объекты).
- Публичная карта — включается на сервере.
Шаги
Откройте «Инструменты» и наберите в поиске «Отключения» — пункт выделен рамкой.

Нажмите пункт — откроется окно.

«+ Отключение» открывает форму: название, вид (плановое или аварийное), участок или узел, где будут работы, когда отключить и когда включить, причина. Отметка «Показывать на публичной карте» добавляет поле с текстом для жителей. Отключение, начатое из наряда («Отключение для работ»), берёт место работ из наряда.

«Рассчитать и запланировать» — по участку считается изоляция: какие задвижки закрыть, сколько потребителей и какая нагрузка отключится. Если отключение пересекается с другим по времени и общим потребителям, это видно сразу. Ниже — социальные объекты в зоне (больницы, школы, детские сады): их предупреждают в первую очередь. «Пересчитать» — после правки сети; «Список для уведомления» — Excel с потребителями зоны и задвижками; «Текст объявления» копирует готовый текст.

Разделы ниже раскрываются: «Задвижки» — что закрыть и где (обязательные отмечены), «Потребители» — кто останется без тепла, «История» — смены статуса.

«Оставить на карте» закрывает окно, зона отключения остаётся на карте. Зоны всех открытых отключений включаются отметкой «Зоны открытых на карте».

Примеры
Учебное отключение на копии Алматы. «О-2026-00010»: плановое, участок 133, 10.11.2026 с 09:00 до 18:00, причина «Замена задвижки в камере». Расчёт дал 1001 потребитель (из них 53 ниже по сети), 3285,67 Гкал/ч и 28 задвижек, обязательных среди них нет. Зона захватила источники — подробно об этом в примере Локализации аварий.
В зоне 80 социальных объектов: 12 больниц, 46 поликлиник, 11 детских садов, 11 школ. Текст объявления начинается так: «Плановое отключение теплоснабжения О-2026-00010: с 10.11.2026 09:00 до 10.11.2026 18:00. Причина: Замена задвижки в камере.». Дальше идут 20 названий и «и ещё 981». После съёмки инструкции отключение отменено. В истории два шага: «Запланировано: потребителей 1001, задвижек 28» и «Отменено».
Если не получается
- Кнопка «Рассчитать и запланировать» неактивна — не заполнены название, участок или узел (или наряд), сроки «Отключить» и «Включить».
- «Окончание отключения раньше начала» — проверьте сроки.
- «Укажите участок или узел (или наряд с местом работ)» — в наряде нет места работ; впишите участок или узел.
- Ошибки расчёта изоляции приходят с текстом от «Локализации аварий», например «Трубопровод … входит во внутреннюю схему узла …».
- «Из «…» нельзя в «…» (можно: …)» — такой переход не предусмотрен; «Отключение … идёт — пересчёт закрыт» — пересчёт только до начала.
- «Отключение уже изменили — обновите карточку» — выберите отключение в списке ещё раз.
- «Отключение не запланировано», «Статус не изменён», «Изоляция не пересчитана», «Список не сформирован», «Текст объявления не скопирован», «Зоны отключений не показаны» — общая ошибка действия; причина от сервера показана рядом.
- Нет блока социальных объектов — справочник пуст или в контур зоны ничего не попало.
- Нет кнопки «Список для уведомления» — у пользователя нет права «Выгрузки и отчёты».
Для администратора
- Запись:
MUTATIONS_ENABLED=true, правоjournalsв матрице прав. Публичная лента —PUBLIC_OUTAGES_ENABLED=true, иначеGET /api/v1/public/outagesотвечает 404. - Таблицы
tgid_outageиtgid_outage_event(история) API создаёт сам при запуске — миграция20261030_outages.sql. Социальные объекты —tgid_poi. - Время в тексте объявления и в Excel — по часовому поясу машины с API: держите его равным местному.
- События
outage.createdиoutage.status_changedуходят во внешние системы через вебхуки.
Для разработчика
- API:
GET /api/v1/outages(status,open_only,q; до 500 строк иcounts),GET /api/v1/outages/{id}(сevents,conflicts,social),POST /api/v1/outages,PATCH /api/v1/outages/{id}(сроки, причина, публикация,revision),POST …/{id}/recompute,POST …/{id}/transition(to,revision,note),GET …/{id}/announcement,GET …/{id}/notification.xlsx,GET /api/v1/outages/geojson,GET /api/v1/public/outages; для внешних систем —GET /api/v2/outages,GET /api/v2/outages/{id}. Код —routers/outages.py,database/outages.py(TRANSITIONS,AREA_BUFFER,ANNOUNCE_NAMES), социальные объекты —database/poi.py(in_area), события —database/api_events.py. - Веб:
components/OutagesDialog.vue(ключoutages), статусы, переходы и слой карты —utils/outages.ts, запросы —services/api/outages.ts; вход из наряда —WorkOrdersDialog.vue(planOutage). - Тесты:
tests/utils/outages.spec.ts,tests/utils/publicOutages.spec.ts; API —tests/test_outages.py,tests/test_poi.py.
