Участки ПТС
Участки ПТС (МС и РС): характеристика, привязка труб выбором на карте или цепочкой узлов, паспорт участка.
Возможности
- Переключатель «МС» / «РС» — участки магистральных и распределительных сетей. Список сгруппирован по начальникам участков; у участка — число привязанных труб. Над списком — «Участков: … · с трубами: … · труб привязано: …».
- «Поиск участка» — по номеру, названию, магистрали и начальнику участка.
- «+» («Новый участок») — карточка нового участка МС или РС.
- Выбранный участок: «Труб: … · длина … м · фрагменты: …», кнопки «На карте» (контур труб участка), «Паспорт» (Excel), «Удалить».
- «Привязка труб»: «Выбрать трубы на карте», «Цепочка узлов», «Снять с выбранных», «Снять со всех». Перед записью — предпросмотр: сколько труб и строк изменится. После записи — «Отменить» (у кого есть право на правку сети).
- «Характеристика» — поля карточки участка из десктопа ТГИД: номер участка, магистраль, кадастровый и инвентарный номера, начальная и конечная камеры, параметры, годы, номер и дата приказа и другие; «Сохранить».
Как это работает
Что такое участок. Участок ПТС — строка таблицы uchastok_ms (магистральные сети) или uchastok_rs (распределительные сети), как в доке «Участки МС/РС» десктопа. Участок входит в участок эксплуатации (uchastki_ekspluatatsii), у того есть начальник (nachalniki_uchastkov) — по нему список и сгруппирован. Участки без начальника — в группе «Без начальника участка». Поля карточки берутся из шаблона карточки десктопа: у участка МС их 26, у участка РС — свои. Значения справочных полей подгружаются при раскрытии списка; если справочник не загрузился, окно предупреждает об этом.
Как труба привязывается. У трубы в карточке heatpipesections два поля: «Участок МС» (magistralsite) и «Участок РС» (distsite). Привязка к участку МС записывает «Участок МС» и очищает «Участок РС», и наоборот — как «Участок МС/РС» в свойствах трубы десктопа. Труба принадлежит не больше чем одному участку. «Снять с выбранных» и «Снять со всех» очищают оба поля, но только у труб этого участка.
Выбор труб.
- «Выбрать трубы на карте» — окно сворачивается, вы отмечаете линии на карте. Привязываются только трубы. Прочие выбранные объекты попадают в «Не найдены (удалены или не трубы): …».
- «Цепочка узлов» — отметьте на карте по порядку от 2 до 50 узлов. Между каждой парой соседних узлов сервер ищет кратчайший по длине путь по всем действующим линиям базы, у которых есть оба узла, — во всех фрагментах, не только включённых. Привязываются трубы пути. Арматура и другие линейные объекты на пути не привязываются, их число показано в строке «прочих линейных объектов… — не привязываются». Найденный путь сразу рисуется на карте.
Запись. Сначала сервер считает изменения без записи: «Привязать к участку …: труб N, изменится строк M». «Применить» пишет в одной транзакции и передаёт ожидаемое число изменений. Если данные за это время поменялись, запись отклоняется. Изменение пишется в audit_log одной группой — её откатывает «Отменить». Кнопка видна только пользователю с правом на правку сети: то же право проверяет сервер при отмене. За одну операцию — не больше 50 000 объектов.
Числа в списке и карточке — все трубы с этим участком в действующих линиях, во всех фрагментах базы, включая варианты. Длина — сумма длин из карточек труб, а где длины нет — длина геометрии. Паспорт же берёт трубы только включённых фрагментов и вне внутренних схем, поэтому его «Итого» может отличаться.
Паспорт — тот же Excel, что в окне «Отчёты и паспорта участков», по включённым на карте фрагментам. Без привязанных труб кнопка неактивна.
Удаление участка с трубами спрашивает «К участку «…» привязано труб: N. Снять привязку и удалить участок?»: сначала снимается привязка, затем удаляется участок.
Что нужно для работы
- Смотреть участки, карточку, трубы на карте и скачивать паспорт — любой вошедший.
- Создавать, править, удалять, привязывать трубы — право «Журналы: ремонты, ПТС, акты, ТУ, привязки» и включённая запись (
MUTATIONS_ENABLED=true). Пользователю-роли PostgreSQL окно открывает правку только при предметном праве «Производственная служба (ПТС)». Без права над окном — пояснение «Просмотр участков и паспорта доступны всем; правка и привязка труб — редактору, если на сервере включена запись.», кнопки «+» и «Удалить» скрыты, кнопки привязки неактивны, поля только для чтения. - «Отменить» после привязки — право на правку сети (хотя бы одно действие в матрице прав). Без него кнопки нет.
- В базе — таблицы участков и участков эксплуатации из десктопа.
Шаги
Откройте «Инструменты» и наберите в поиске «Участки ПТС» — пункт выделен рамкой.

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

Примеры
Копия Алматы: что привязано. «МС»: «Участков: 60 · с трубами: 1 · труб привязано: 3». «РС»: 34 участка, ни одной привязанной трубы. Единственный участок с трубами — МС 31 «М-1Юк» (магистраль М-1): «Труб: 3 · длина 483 м · фрагменты: 74, 115, 117». Это одна и та же труба 1ДЖ-12 → 1ДЖ-13 длиной 161 м, по записи в трёх фрагментах-вариантах. «На карте» показывает 3 линии в одном месте.
Та же копия: карточка участка. У МС 31 заполнены только «Номер участка», «Магистраль» и «Описание участка МС». Остальные 23 поля пусты. «Наименование начальной камеры» и «Наименование конечной камеры» не заполнены ни у одного из 60 участков МС — паспорт от них не зависит, он строится по привязанным трубам.
Если не получается
- «Выберите минимум два узла цепочки» — в цепочке отмечен один узел.
- «Между узлами A и B нет пути по сети — проверьте фрагменты или добавьте промежуточный узел» — узлы не связаны действующими линиями; добавьте промежуточный узел.
- «Не больше 50 узлов в цепочке» — разбейте цепочку на части.
- «Узлы не найдены: […]» — узлы удалены.
- «Среди выбранных нет труб» — выбраны только арматура или другие не-трубы.
- «Выбранные трубы не привязаны к этому участку» — снимать нечего.
- «Данные изменились после предпросмотра: изменится … строк вместо … Повторите предпросмотр.» — кто-то правил трубы; сделайте предпросмотр заново.
- «Участок изменён другим пользователем — карточка перечитана.» — карточку сохранили раньше вас; внесите правку снова.
- Нет кнопки «Отменить» после записи — у пользователя нет ни одного права на правку сети в матрице прав; отменить группу может пользователь с таким правом.
- «Справочники не загрузились — фильтры и выбор значений могут быть неполными» — в карточке участка не загрузился справочник поля; списки значений могут быть пустыми, повторите позже.
- «Не удалось сформировать паспорт» — см. сообщения окна «Отчёты и паспорта участков».
- «Не удалось загрузить участки», «Не удалось открыть участок», «Не удалось показать участок», «Предпросмотр не удался», «Не удалось применить», «Не удалось удалить участок» — с текстом ответа сервера или без него при отсутствии связи.
Для администратора
- Запись:
MUTATIONS_ENABLED=true, общее право «Журналы» (journals); приAUTH_BACKEND=pgокончательно права проверяет база. - Таблицы десктопные:
uchastok_ms,uchastok_rs,uchastki_ekspluatatsii,nachalniki_uchastkov,magistrali,heatpipesections(magistralsite,distsite). - Создание, правка, удаление участков и привязки пишутся в
audit_log; после привязки сбрасывается кеш моделирования отключений. - ФИО начальников участков видны в списке и в паспортах без маскирования.
Для разработчика
- Чтение:
GET /api/v1/pts/sites?kind=ms|rs,GET /api/v1/pts/sites/{kind}/fields,GET /api/v1/pts/sites/{kind}/{site_id},GET /api/v1/pts/sites/{kind}/{site_id}/pipes(GeoJSON EPSG:4326 и bbox),GET /api/v1/pts/highlight?kind=nach|ms|rs&id=—routers/pts.py,database/pts_sites.py. - Запись:
POST /api/v1/pts/sites/{kind},PUT /api/v1/pts/sites/{kind}/{site_id}(version→ 409),DELETE /api/v1/pts/sites/{kind}/{site_id}?unassign_pipes=true,POST /api/v1/pts/chain(node_ids, до 50),POST /api/v1/pts/sites/{kind}/{site_id}/pipes(action,line_ids|node_ids|all_pipes,dry_run,expected_changes). Групповые установщикиpts_site_ms,pts_site_rs,pts_site_clear—database/group_setters.py; отмена —POST /api/v1/group-setters/undo(require_permission(network=True); в вебе кнопка — приauthStore.canEditNetwork). - Справочники полей:
GET /api/v1/lookup. - Веб:
components/PtsSitesDialog.vue,services/ptsService.ts,utils/ptsSites.ts; подсветка на карте —components/PtsHighlightPanel.vue,components/PtsHighlightBar.vue. - Тесты: API —
tests/test_pts_sites.py; веб —tests/components/PtsSitesDialog.spec.ts,tests/components/PtsHighlightPanel.spec.ts,tests/utils/ptsSites.spec.ts,tests/utils/ptsHighlight.spec.ts.
