Электрическая сеть
Электрическая сеть: источники, ЛЭП, приёмники, каналы, муфты, опоры и гильзы; сверка привязки объектов к ЛЭП и источникам по правилам десктопа и Excel несоответствий.
Возможности
- Журнал объектов электросети: источники электроснабжения, ЛЭП, приёмники, кабельные каналы, муфты, опоры, гильзы. Плитки с количеством каждого вида, отбор по виду, владельцу, напряжению и ЛЭП, поиск, карточка объекта.
- «Сверка и привязка» — проверка, правильно ли объекты электросети связаны между собой: концы ЛЭП — с источником и приёмником, муфты, опоры, гильзы и каналы — с ЛЭП, на которой лежат.
- Таблица несоответствий: что привязано сейчас и что найдено по геометрии, показ объекта на карте.
- «Excel несоответствий» — сводка и полный список несоответствий файлом.
- Привязка по правилам десктопа: предпросмотр «было → станет» для одного объекта или для всех, затем запись. Можно заменять и неверные привязки, а не только пустые, и проецировать муфты и опоры на ЛЭП.
Как это работает
Объекты лежат в таблицах базы города, как в десктопе: istochnik_elektrosnabzheniya, liniya_elektroperedach, priemnik_elektrosnabzheniya, kabelnyy_kanal_es, mufta, opora_es, gilza_es. Справочники видов, типов линий и владельцев — из базы города.
Сверка повторяет правила десктопа (gid6, GeoFile.cpp). Допуск по умолчанию — 8 м (параметр десктопа D5), для площадных объектов радиус поиска ЛЭП больше в 10 раз. Для каждой ЛЭП проверяется, есть ли геометрия, указаны ли источник и приёмник, существуют ли они и лежат ли концы ЛЭП в пределах допуска от них. Для муфт, опор, гильз и каналов — указана ли ЛЭП, существует ли она, лежит ли объект на ней и нет ли другой ЛЭП ближе. Виды несоответствий: «ЛЭП без геометрии», «ЛЭП без источника», «Источник ЛЭП не найден», «Концы ЛЭП не у своего источника», те же три для приёмника, «Объект без геометрии», «Объект без ЛЭП», «ЛЭП объекта не найдена», «Объект не на своей ЛЭП», «Объект ближе к другой ЛЭП».
Excel electrical_reconciliation_<дата>.xlsx — четыре листа: «Сводка» (допуск, число проверенных объектов, счёт по видам несоответствий, сколько можно привязать автоматически), «ЛЭП», «Точечные объекты» и «Предлагаемая привязка». Строк — не больше 100 000 на лист.
Привязка пишет найденные id в поля объектов в одной транзакции и в журнал аудита одной группой. Если объект за это время изменил другой пользователь — запись отменяется целиком.
Что нужно для работы
- Таблицы электросети в базе города. Если таблиц нет — «В этой БД нет таблиц электросети.»
- Журнал, карточки, сверка и Excel — всем, кто вошёл.
- Предпросмотр привязки — право «Журналы: ремонты, ПТС, акты, ТУ, привязки».
- Запись привязки и правка карточки — то же право и включённая правка данных.
Шаги
Откройте «Инструменты» и наберите в поиске «Электрическая сеть» — пункт выделен рамкой.

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

Примеры
Копия Алматы. Таблицы электросети есть, но пусты: в заголовке «все объекты · найдено 0 объектов», в журнале «Объекты электросети не найдены». Сверка проверяет 0 объектов. Excel всё равно выгружается: лист «Сводка» начинается строкой «Сверка привязки электросети, допуск 8 м», все виды несоответствий с нулями, на листе «ЛЭП» — «Несоответствий нет».
Если не получается
- «Объекты электросети не найдены» — таблицы электросети в базе города пусты или отбор слишком узкий.
- «Допуск должен быть в диапазоне (0; 1000] м».
- «Объект изменён другим пользователем, повторите», «Объект или ЛЭП удалены, повторите» — пока шёл предпросмотр, данные поменялись; повторите предпросмотр.
- «Запись отключена на сервере (MUTATIONS_ENABLED=false).» — правка данных выключена, доступен только предпросмотр.
- «Не удалось выполнить сверку», «Не удалось сформировать отчёт», «Предпросмотр не удался», «Привязка не выполнена» — ошибка сервера или базы; подробности — в журнале API.
Для администратора
- Правка данных:
MUTATIONS_ENABLED. - Привязка записывается в журнал аудита одной группой изменений (
audit_log, общийchange_group_id).
Для разработчика
- API:
GET /api/electrical-network/lookups,GET /api/electrical-network/objects(object_type,owner_id,parent_line_id,voltage_kv,search, страницы до 200),GET /api/electrical-network/objects/{type}/{id},GET /api/electrical-network/reconciliation(tolerance,kind,object_type,limitдо 5000),GET /api/electrical-network/reconciliation/report.xlsx,POST /api/electrical-network/binding(dry_run,overwrite,snap_points,itemsдо 5000). - API, код:
routers/registries.py,database/electrical_network.py,routers/electrical_binding.py,database/electrical_binding.py. - Веб:
components/ElectricalNetworkJournalDialog.vue,components/ElectricalReconciliationPanel.vue. - Тесты:
tests/utils/electricalReconciliation.spec.ts; API —test_electrical_binding.py,test_registries_router.py; e2e —e2e/functions/other-networks.spec.ts.
