ГИС-Скрипты

СКР-08 Дома (МКД)

Как убрать дом из договора в ГИС ЖКХ, если он ушёл из управления

Убирает ушедшие из управления дома из договоров в ГИС и в базе. Если дом был единственным, расторгает договор.

Какую задачу решает

Дом ушёл из управления вашей организации, но остался в договорах. При размещении договора ГИС ЖКХ отвечает ошибкой: «По данному адресу в реестре лицензий отсутствует информация об управлении домом Вашей организацией на момент размещения договора оказания услуг (выполнения работ)».

Чтобы договор снова размещался, дом нужно убрать из перечня объектов договора. Если дом был единственным, договор нужно расторгнуть, а не размещать повторно.

Что делает скрипт

  1. Чистка выполняется в двух местах: в ГИС ЖКХ и в вашей базе. Только ГИС мало — привязки останутся в базе и уедут в ГИС со следующим договором. Только база тоже мало — уже размещённые в ГИС договоры там и останутся.
  2. Скрипт для базы показывает план: организация → контрагент → договор → дом. Он предупреждает о договорах, где удаляемый дом единственный, и о договорах, уже размещённых в ГИС.
  3. Скрипт для ГИС обходит договоры в реестре, в каждом открывает «Перечень объектов», удаляет найденные дома и нажимает «Разместить информацию».
  4. Если дом в договоре был единственным, скрипт идёт в «Расторгнуть» с причиной «Истёк срок действия».
  5. Затем привязки удаляются из базы. Перед удалением скрипт сохраняет SQL-файл отката.

Что понадобится

  • Windows и Google Chrome с отладочным портом 9222.
  • Python 3, Playwright, psycopg2.
  • Список домов (адреса для ГИС, ФИАС-коды для базы).
  • Доступ к базе PostgreSQL с привязками домов к договорам.

Как запустить

  1. Сначала запустите скрипт для базы в безопасном режиме (APPLY = False): он только покажет план, ничего не удалит.
  2. Запустите Chrome с отладочным портом, войдите в ГИС ЖКХ и откройте реестр договоров. Адреса удаляемых домов задайте списком addresses_to_delete в функции main().
  3. Пройдите ГИС-скриптом по реестру.
  4. Вернитесь к скрипту для базы, поставьте APPLY = True и запустите снова. Скрипт переспросит: наберите слово «ДА» и нажмите Enter.

Общая подготовка — Chrome, Python, Playwright — описана на странице «Как запустить».

Основные настройки

ПараметрПо умолчаниюЧто значит
ACTIONdeletelist — показать дома организации, orphans — привязки без договора
ORG_INN—ИНН организации
FIAS_LIST[]ФИАС-коды удаляемых домов
APPLYFalseTrue — удалять (всё равно переспросит)

Ограничения и на что обратить внимание

  • В базе дом ищется по ФИАС, а не по адресу: тексты различаются между системами, а один адрес бывает префиксом другого (например, «д. 5/2» и «д. 5/2, строение 1» — разные дома).
  • В ГИС поиск идёт по адресу, поэтому стоит защита: если подходит несколько строк, требуется точное совпадение, а при неоднозначности дом пропускается с предупреждением.
  • Удаление из базы необратимо, откат возможен только из сохранённого SQL-файла.
  • Скрипт для базы рассчитан на нашу схему таблиц, для вашей потребуется адаптация.

Вопросы и ответы

Что означает ошибка «в реестре лицензий отсутствует информация об управлении домом»?

Договор содержит дом, которого нет среди домов вашей организации в реестре лицензий на момент размещения. Обычно это дом, который ушёл из управления.

Достаточно ли убрать дом только в ГИС?

Нет. Если привязка останется в базе, при следующей загрузке договора дом вернётся в ГИС. Чистить нужно и ГИС, и базу.

Что произойдёт с договором, где этот дом был единственным?

Такой договор нельзя разместить без домов, поэтому скрипт расторгает его с причиной «Истёк срок действия».