ГИС-Скрипты

СКР-02 Работы и услуги

Фиксация работ и услуг в ГИС ЖКХ: факт и сканы актов автоматически

Заполняет фактические показатели из плановых и прикрепляет к каждой строке скан подходящего акта. Есть пробный прогон.

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

В разделе «Объекты управления → Перечни работ и услуг → Фиксация работ и услуг» для каждого дома и каждого месяца нужно перенести плановые показатели в фактические и приложить подтверждающий акт к каждой строке. Если в доме два десятка услуг, а месяцев несколько, это часы одинаковых кликов.

Скрипт делает эту рутину за вас, а решение «размещать или нет» оставляет за вами: за запуск обрабатывается один месяц, и вы сначала смотрите таблицу.

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

  1. Работает на вкладке, которую вы открыли: дом вы выбираете в фильтре руками, период выставляет скрипт или берёт из вашего фильтра.
  2. Заполняет факт одной кнопкой: нажимает копирование плановых значений для всей таблицы сразу — так быстрее и меньше шансов сбиться, чем построчно.
  3. По каждой строке таблицы ищет в вашей базе акт с подходящей услугой. Названия услуг в ГИС и в актах пишутся по-разному, поэтому есть справочник сопоставления и проверка по словам.
  4. Скачивает скан акта. Окно «Прикрепление фото» принимает только JPG, BMP и GIF, поэтому PDF сначала разбирается на страницы-картинки.
  5. Прикрепляет изображения через «Прикрепление фото». Строки, где фото уже есть, пропускаются.
  6. По желанию заводит внеплановые работы, если у дома есть акт, а строки под услугу в плановом перечне нет.

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

  • Windows и Google Chrome, запущенный с отладочным портом (скрипт сам не открывает свой браузер, а подключается к вашему).
  • Python 3, Playwright и PyMuPDF — или готовая программа с окном (.exe).
  • Акты организации в базе с услугами и привязкой к дому или договору, их сканы в хранилище.
  • Справочник сопоставления названий услуг ГИС и актов: пополняется по мере работы.

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

  1. Запустите Chrome с отладочным портом и войдите в ГИС ЖКХ.
  2. Откройте «Объекты управления → Перечни работ и услуг» и вкладку «Фиксация работ и услуг».
  3. В фильтре выберите дом: субъект РФ → город → улица → номер здания. Период выбирать не нужно.
  4. Не нажимая «Найти», запустите скрипт. Начните с пробного прогона (DRY_RUN): он ничего не нажимает и не грузит, а только показывает, сколько актов нашлось и что с чем сопоставилось.
  5. Перед основным прогоном запустите проверку collect_gis_services.py: она читает таблицу и говорит, остались ли несопоставленные услуги.

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

Что пишет скрипт и как реагировать

СообщениеЧто значитЧто делает скрипт / что делать вам
На странице нет фильтра периодаОткрыта не та вкладка.Перейдите в «Фиксация работ и услуг» и запустите снова — скрипт ничего не трогает.
Список периодов заблокирован — в фильтре не выбран домГИС не показывает периоды, пока не выбран дом.Выберите дом в фильтре и запустите снова.
В списке нет периодовНужного месяца нет в выпадающем списке ГИС.Скрипт перечисляет доступные периоды — поправьте настройку PERIODS.

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

  • Дом выставляете вы: пока дом не выбран, ГИС блокирует список периодов. Скрипт сам никуда не переходит, чтобы не сбросить ваш фильтр.
  • Сопоставление услуг — главное ограничение. Строка уходит в «непрошедшие», если акт похож на услугу недостаточно: лучше пропустить строку, чем прикрепить чужой скан.
  • Если за месяц для услуги нет акта, никакой алгоритм строку не закроет.
  • «Разместить информацию» по умолчанию нажимаете вы сами. Без этого в ГИС ничего не сохраняется.

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

Можно ли запускать скрипт повторно?

Да. Скрипт определяет, прикреплено ли фото в строке, и пропускает такие строки. Повторный запуск доделывает только то, что осталось.

Почему ГИС не принимает PDF-сканы?

Окно «Прикрепление фото» принимает только JPEG, JPG, BMP и GIF до 50 МБ. Поэтому скрипт разбирает PDF на страницы-изображения и прикрепляет их.

Что такое пробный прогон?

Режим DRY_RUN: скрипт ничего не нажимает и не загружает, а только показывает, сколько актов нашлось и как они сопоставились со строками. Всегда начинайте с него.

Есть ли версия с окном без установки Python?

Да, оболочка с окном собирается в один .exe: подключение к базе, запуск Chrome, проверка сопоставления услуг и запуск фиксации с кнопкой «Остановить».