СКР-02 Работы и услуги
Фиксация работ и услуг в ГИС ЖКХ: факт и сканы актов автоматически
Заполняет фактические показатели из плановых и прикрепляет к каждой строке скан подходящего акта. Есть пробный прогон.
Какую задачу решает
В разделе «Объекты управления → Перечни работ и услуг → Фиксация работ и услуг» для каждого дома и каждого месяца нужно перенести плановые показатели в фактические и приложить подтверждающий акт к каждой строке. Если в доме два десятка услуг, а месяцев несколько, это часы одинаковых кликов.
Скрипт делает эту рутину за вас, а решение «размещать или нет» оставляет за вами: за запуск обрабатывается один месяц, и вы сначала смотрите таблицу.
Что делает скрипт
- Работает на вкладке, которую вы открыли: дом вы выбираете в фильтре руками, период выставляет скрипт или берёт из вашего фильтра.
- Заполняет факт одной кнопкой: нажимает копирование плановых значений для всей таблицы сразу — так быстрее и меньше шансов сбиться, чем построчно.
- По каждой строке таблицы ищет в вашей базе акт с подходящей услугой. Названия услуг в ГИС и в актах пишутся по-разному, поэтому есть справочник сопоставления и проверка по словам.
- Скачивает скан акта. Окно «Прикрепление фото» принимает только JPG, BMP и GIF, поэтому PDF сначала разбирается на страницы-картинки.
- Прикрепляет изображения через «Прикрепление фото». Строки, где фото уже есть, пропускаются.
- По желанию заводит внеплановые работы, если у дома есть акт, а строки под услугу в плановом перечне нет.
Что понадобится
- Windows и Google Chrome, запущенный с отладочным портом (скрипт сам не открывает свой браузер, а подключается к вашему).
- Python 3, Playwright и PyMuPDF — или готовая программа с окном (.exe).
- Акты организации в базе с услугами и привязкой к дому или договору, их сканы в хранилище.
- Справочник сопоставления названий услуг ГИС и актов: пополняется по мере работы.
Как запустить
- Запустите Chrome с отладочным портом и войдите в ГИС ЖКХ.
- Откройте «Объекты управления → Перечни работ и услуг» и вкладку «Фиксация работ и услуг».
- В фильтре выберите дом: субъект РФ → город → улица → номер здания. Период выбирать не нужно.
- Не нажимая «Найти», запустите скрипт. Начните с пробного прогона (DRY_RUN): он ничего не нажимает и не грузит, а только показывает, сколько актов нашлось и что с чем сопоставилось.
- Перед основным прогоном запустите проверку collect_gis_services.py: она читает таблицу и говорит, остались ли несопоставленные услуги.
Общая подготовка — Chrome, Python, Playwright — описана на странице «Как запустить».
Что пишет скрипт и как реагировать
| Сообщение | Что значит | Что делает скрипт / что делать вам |
|---|---|---|
На странице нет фильтра периода | Открыта не та вкладка. | Перейдите в «Фиксация работ и услуг» и запустите снова — скрипт ничего не трогает. |
Список периодов заблокирован — в фильтре не выбран дом | ГИС не показывает периоды, пока не выбран дом. | Выберите дом в фильтре и запустите снова. |
В списке нет периодов | Нужного месяца нет в выпадающем списке ГИС. | Скрипт перечисляет доступные периоды — поправьте настройку PERIODS. |
Ограничения и на что обратить внимание
- Дом выставляете вы: пока дом не выбран, ГИС блокирует список периодов. Скрипт сам никуда не переходит, чтобы не сбросить ваш фильтр.
- Сопоставление услуг — главное ограничение. Строка уходит в «непрошедшие», если акт похож на услугу недостаточно: лучше пропустить строку, чем прикрепить чужой скан.
- Если за месяц для услуги нет акта, никакой алгоритм строку не закроет.
- «Разместить информацию» по умолчанию нажимаете вы сами. Без этого в ГИС ничего не сохраняется.
Вопросы и ответы
Можно ли запускать скрипт повторно?
Да. Скрипт определяет, прикреплено ли фото в строке, и пропускает такие строки. Повторный запуск доделывает только то, что осталось.
Почему ГИС не принимает PDF-сканы?
Окно «Прикрепление фото» принимает только JPEG, JPG, BMP и GIF до 50 МБ. Поэтому скрипт разбирает PDF на страницы-изображения и прикрепляет их.
Что такое пробный прогон?
Режим DRY_RUN: скрипт ничего не нажимает и не загружает, а только показывает, сколько актов нашлось и как они сопоставились со строками. Всегда начинайте с него.
Есть ли версия с окном без установки Python?
Да, оболочка с окном собирается в один .exe: подключение к базе, запуск Chrome, проверка сопоставления услуг и запуск фиксации с кнопкой «Остановить».