Государственная информационная система жилищно-коммунального хозяйства с точки зрения рядового потребителя услуг в теории представляет собой некоторый единый интерфейс для получения соответствующих отчетов и взаимодействия с другими участниками системы (работа с обращениями, договорами, оплата услуг, решение "общедомовых" вопросов). Для реализации данного функционала поставщики информации и исполнители услуг (управляющие компании — далее УК, ресурсоснабжающие организации — далее РСО, операторы капитального ремонта, операторы по обращению с твердыми бытовыми отходами, расчетные центры, органы государственной власти, ФНС, Росреестр и др.) должны интегрироваться с ГИС в разрезе набора предопределенных видов объектов (договоры, услуги, объекты недвижимости и т.д.).Текст ниже будет полезен на начальном этапе интеграции.
Предположим, что вы уже обзавелись доступом в личный кабинет организации под правами уполномоченного специалиста или выше (этап создания учётной записи в ЕСИА, настройки прав и работы в личном кабинете хорошо описан в инструкции — на нём останавливаться не будем). Теперь нужно определиться с тем, "что", "в какие сроки" и "как" выгружать. На вопросы "что выгружать" и "в какие сроки" отвечает приказ №74-114-пр (с изменениями 319-906-пр и 550-1434-пр) — текст можно найти здесь. Далее рекомендую изучить инструкции, в которых кроме прочего содержится описание типов объектов и порядок их интеграции (на примере для РСО): «Технологическая инструкция_РСО», «Регламент взаимодействия внешних систем с ГИС ЖКХ» и «Альбом ТФФ» с раздела 2.2.6 (два последних документа находятся в архиве «Регламент и форматы информационного взаимодействия внешних информационных систем с ГИС ЖКХ»). Описанные выше инструкции можно скачать в разделе «Регламенты и инструкции» верхнего меню главной страницы сайта. Теорию нужно подкреплять практикой — для этого предназначены стенды интеграционного тестирования ГИС ЖКХ (СИТ01 — для текущей версии форматов и СИТ02 — для следующей версии). Доступ к стендам предоставляет служба технической поддержки после подачи заявки. Кроме доступа по основной роли (РСО, УК и т.д.) можно запросить доступ и для других ролей (например, роль потребителя услуг, чтобы посмотреть, как будут выглядеть платежные документы в его личном кабинете). Следует иметь ввиду, что некоторые проблемы интеграции можно обнаружить только на промышленном программно-аппаратном комплексе (далее ППАК), так как СИТ может быть не заполнен сведениями в вашем населённом пункте. Другими словами, большинство видов объектов между СИТ01, СИТ02 и ППАК не синхронизируются (за исключением данных Росреестра и ФИАС). Доступ на добавление/изменение данных в зависимости от ролей описан в «Альбом ТФФ». Также рекомендую подать заявку на доступ к Jira ГИС ЖКХ (поиск по коду ошибок, возможность создания заявок, голосование за интересные предложения по развитию системы и т.д.). Из открытых источников будут полезны чат и группа Telegram.
Настала пора определиться с тем, какой вариант интеграции использовать: личный кабинет, с помощью шаблонов и API (в терминах ГИС "легковесная интеграция"). При этом по возможностям самым бедным из них является вариант с шаблонами. Для понимания работы связей между различными объектами советую создать по нескольку штук каждого вида через личный кабинет. Совсем маленьким организациям этого может быть достаточно — интерфейс более-менее понятный, на сайте присутствуют подробные инструкции, доступна история изменений и вариативность для некоторых видов объектов. Хотя данный вариант и считается "ручным", но в основе своей работы содержит API (документацию к нему в открытых источниках пока найти не удалось). Кроме этого, можно воспользоваться JavaScript для автоматизации некоторых действий. Например, для быстрого удаления договоров ресурсоснабжения (далее ДРСО) в стадии «Проект» на примере Google Chrome можно сделать следующее: зайти на страницу с договорами, выбрать отображение по 100 штук на страницу, открыть инструменты разработчика (ctrl+shift+i), зайти на складку Console и последовательно с задержкой (ГИС порой очень "задумчива") выполнить
$(".dropdown-base__menu-i-action:contains('Удалить')").each(function( index ) { $( this ).click(); });
и
$(".btn-action[ng-click='yes('ok')']").each(function( index ) { $( this ).click(); });
HtmlUnit, Selenium и их аналоги использовать не советую — продуктивнее потратить время на легковесную интеграцию или через шаблоны.
С помощью шаблонов на текущий момент можно синхронизировать большинство видов объектов. Изменения в шаблоны вносит практическая каждая новая версия системы — надеюсь, что со временем данный вид интеграции по функциональным возможностям будет соответствовать легковесной. Имея опыт работы в личном кабинете, разобраться с шаблонами будет достаточно просто. Обычно шаблон соответствует некоторому виду объекта и представляет собой файл формата "xlsx". Часть шаблонов можно скачать в открытой части ГИС (раздел «Шаблоны» в меню «Регламенты и инструкции» на главной странице), некоторые через личный кабинет (содержимое скрытых листов в этом случае заполняется в зависимости от роли организации). Особый вид шаблонов — выгрузки списка объектов (при этом для большинства видов действуют установленные на момент выгрузки фильтры). Рассмотрим схему размещения информации через шаблоны на примере РСО.
На рисунке выше базовой информацией в системе являются ДРСО, но на самом деле базой являются дома, идентификация которых по большей части осуществляется по ФИАС. В случае отсутствия дома в ФИАС участник системы может подать заявку на создание временного идентификатора дома в ГИС ЖКХ. Если для одного дома существует более одного идентификатора, то указывать нужно "основной" (выделяется жирным цветом в выдаче сервиса «Узнать код дома в ГИС ЖКХ» на странице https://dom.gosuslugi.ru/#!/eServices). Кратко рассмотрим некоторые из основных этапов.
1. Выгружаем и размещаем ДРСО с указанием идентификаторов домов ФИАС (или временных идентификаторов ГИС ЖКХ). Для жилых/нежилых помещений МКД дополнительно нужно указывать номер помещения. С жилыми все просто — обычно это порядковый номер квартиры. С нежилыми интереснее — как таковой номер может отсутствовать (тогда в свидетельстве права собственности присутствует описание местоположения помещения или номер на плане). Нужно иметь ввиду следующий момент: дом в ДРСО и дом в объектах жилищного фонда (далее ОЖФ) представляют собой разные объекты (хотя они и связаны идентификатором ФИАС). С помещениями аналогично — поэтому желательно, чтобы номера в справочнике ОЖФ и в договоре совпадали, но на практике только по данным из вашей информационной системы (далее ИС) сделать это проблематично (пример из практики, когда другой поставщик информации в качестве номера нежилого помещения указал строку "офис ФГУП Почта России"). Чтобы получить данные по ОЖФ — нужно иметь размещенный ДРСО, чтобы "правильно" (с точки зрения ГИС ЖКХ) заполнить ДРСО — нужно получить выгрузку ОЖФ. Для решения проблемы можно организовать "многоходовочку" — разместить ДРСО с номерами нежилых из вашей ИС, сделать выгрузку ОЖФ и затем переопубликовать ДРСО с номерами ГИС ЖКХ. На текущий момент номер можно заполнять любыми удобными для дальнейшей идентификации в вашей ИС значениями, а синхронизацию с ОЖФ сделать позже. Вариантов синхронизации нежилых помещений немного: ФИАС + кадастровый номер (заполняется очень редко), ФИАС + номер помещения (обычно в номере наименование организации владельца/арендатора и т.п.), ФИАС + площадь (наиболее рабочий вариант в случаях, когда в доме нет помещений с одинаковой площадью). К сожалению, в шаблоне выгрузки ОЖФ площадь не указывается (можно посмотреть через личный кабинет или в легковесной интеграции). В результате каждому ДРСО присваивается некоторый идентификатор.
2. Синхронизируем данные по домам. Для жилых домов и МКД достаточно идентификатора ФИАС (или временного идентификатора дома ГИС ЖКХ), для домов блочной застройки дополнительно нужно знать номер блока.
3. Импорт/Экспорт ОЖФ (жилые/нежилые помещения и комнаты). В случае выгрузки нежилых рекомендую указывать кадастровый номер. Для жилых помещений желательно указывать номер подъезда, так как без него выгруженные помещения будут созданы "с отдельным входом". По результатам данного пункта все помещения в вашей ИС должны иметь уникальные номера ОЖФ ГИС ЖКХ (они понадобятся в пунктах 4 и 5).
4. Для создания лицевых счетов нужно указывать уникальный номер ОЖФ или адрес. В результате для каждого лицевого счета вашей ИС будет создан единый лицевой счет и идентификатор жилищно-коммунальной услуги.
5. Приборы учёта нужно заводить в разрезе лицевого счета и ОЖФ (в данном случае можно указывать только уникальный номер). В результате для каждого прибора ГИС ЖКХ сформирует уникальный номер, который понадобится для выгрузки показаний.
6. Создаем платежные документы в разрезе лицевых счетов и жилищно-коммунальных услуг. Желательно заполнять все поля (даже те, которые ГИС может рассчитать самостоятельно). По поводу долговых платежных документов – для себя решил не заполнять их вообще или заполнять только при первой выгрузке по лицевому счету (существуют ошибки с отображением информации по долгам в личном кабинете потребителя услуг – должны исправить в ближайших версиях). В результате для каждого платежного документа получаем его уникальный номер.
7. С автоквитированием все не очень хорошо в ГИС на текущий момент (лучше отключить через личный кабинет). Вообще, механизм квитирования вызываем много вопросов и споров – давать рекомендации по работе с ним пока не возьмусь. Шаблон о внесении платы очень простой (дата, сумма и данные по платежному документу и/или жилищно-коммунальной услуге).
Периодически нужно обновлять информацию в вашей ИС с помощью загрузки шаблона со списком актуальных объектов: у дома может поменяться тип, у ДРСО закончиться срок действия, у контрагента измениться статус в ЕГРЮЛ/ЕГРИП и т.д. Все шаблоны рекомендую какое-то время сохранять (для "разбора полетов"), а в случае хранения в ИС — в качестве отдельных реквизитов записывать версию шаблона и его тип (можно найти на скрытом листе "conf"). Следует отметить, что выборки данных из вашей ИС для шаблонов будут схожи с выборками для легковесной интеграции.
Легковесная интеграция является самой сложной в реализации. Для 1С по этой теме удалось найти только эту статью. В качестве подготовительного этапа рассмотрим пример получения информации по своей организации на СИТ. Сперва нужно получить сертификат от тестового центра — весь процесс подробно описан в инструкции, но есть пара интересных моментов:
• для работы защищенного соединения и бесплатной версии утилиты P12FromGostCSP во время генерации сертификата нужно выбирать GOST R 34.10-2001 CSP;
• до начала генерации сертификата ActiveX должен быть включен;
• заявка на добавление информационной системы на тестовых серверах переводится в статус "Утверждена" автоматически сразу же после добавления;
• в случае возникновения ошибки длины ИНН — добавить соответствующее количество нулей в начало.
В случае успеха (сертификат получен, права собственной ИС через личный кабинет делегированы, stunnel настроен) можно попробовать открыть в браузере адрес вида http://[ipи порт из настроек stunnel, например 127.0.0.1:8080]/ext-bus-org-registry-common-service/services/OrgRegistryCommon?wsdl. Если в ответе не то, что ожидали — первым делом советую проверить выполнение всех шагов из инструкции с сайта ГИС ЖКХ в плане создания шифрованного туннеля. Настало время выполнить запрос без XAdES-BES подписи — открываем любимый SOAP клиент, в качестве тела запроса указываем (не забывая заполнить реквизиты basic аутентификации и ОГРН вашей организации в ГИС ЖКХ):
<soapenv:Envelopexmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:base="http://dom.gosuslugi.ru/schema/integration/base/" xmlns:org="http://dom.gosuslugi.ru/schema/integration/organizations-registry-common/" xmlns:xd="http://www.w3.org/2000/09/xmldsig#" xmlns:org1="http://dom.gosuslugi.ru/schema/integration/organizations-base/" xmlns:org2="http://dom.gosuslugi.ru/schema/integration/organizations-registry-base/">
<soapenv:Header>
<base:ISRequestHeader>
<base:Date>2024-01-28T03:18:33.560+03:00</base:Date>
<base:MessageGUID>${=java.util.UUID.randomUUID()} </base:MessageGUID>
</base:ISRequestHeader>
</soapenv:Header>
<soapenv:Body>
<org:exportOrgRegistryRequestbase:version="10.0.2.1">
<org:SearchCriteria>
<org1:OGRN>{ОГРН}</org1:OGRN>
</org:SearchCriteria>
</org:exportOrgRegistryRequest>
</soapenv:Body>
</soapenv:Envelope>
В результате получаем информацию по организации, в том числе orgPPAGUID (должен совпадать с тем, что указан в личном кабинете):
Для любого варианта интеграции при работе с ГИС возникают ошибки и задержки в обработке запросов. Для организаций, которым не подходит вариант работы только через личный кабинет, имеет смысл рассмотреть возможность реализации и легковесной интеграции и через шаблоны одновременно. Например, если легковесная интеграция не работает (задержки по нескольку дней), то при этом может отлично работать загрузка шаблонов и наоборот.
Особенно важным критерием для подготовительного этапа является корректность и актуальность данных в разрезе объектов недвижимости вашей ИС. Для домов это идентификатор ФИАС и тип дома (МКД, жилой/частный дом и дом блочной застройки), для нежилых помещений — кадастровый номер. В случае 1С — ФИАС в типовых конфигурациях не содержит идентификатор дома (только улицы, для домов доступен только список номеров) и тип дома, работа с кадастровыми номерами в типовых мне не встречались. Рассмотрим некоторые варианты актуализации вышеописанных данных. Следует иметь ввиду, что работоспособность описанных ниже методик зависит от региона/города, данные по которому нужно актуализировать.
Для получения идентификатора ФИАС дома при наличии идентификатора родительского объекта (улицы, района, населенного пункта) и номера дома достаточно скачать полную базу ФИАС и обработать таблицу HOUSE. Если адрес хранится не в структурированном виде, то автоматизировать такой процесс без сторонних сервисов (например, DaData.ru) достаточно сложно.
Тип дома необходим только для создания новой сущности в ОЖФ (если дом уже был кем-то внесён ранее, то его тип можно получить из шаблона выгрузки списка или соответствующим запросом в случае легковесной интеграции). Для уточнения типов "МКД" и "дом блочной застройки" можно воспользоваться сервисом РеформаЖКХ. Доступ к сервису предоставляется после заявки в службу технической поддержки через электронную почту. API сервиса хорошо описан — скорее всего вам понадобятся методы «GetHouseInfo» (для получения общей информации по дому и его уникальный код в сервисе с отбором по идентификатору ФИАС), «GetHouseProfile988» (получение типа дома по его уникальному коду) и «GetHouseProfileSFActual» (для порционного получения детальной информации по всем домам). Кроме этого, тип дома можно определить по его описанию в 2Gis. Исходный код (C#, vs2024) для формирования текстового файла с данными по домам из десктопной версии 2Gis (адреса, описание зданий, координаты) размещён ниже и на github (со времен студенчества на шарпе не писал — просьба "понять и простить"). Другой вариант — использовать 2Gis online. Следует иметь ввиду, что описание дома может не совпадать с реальностью, поэтому рекомендую делать сравнение результатов из разных источников.
Работу с кадастровыми номерами можно реализовать с помощью сервиса apirosreestr.ru и открытым API Росреестра (результаты специфичны для каждого региона). Оба бесплатны и при этом позволяют по адресу производить поиск кадастровых номеров и сопутствующей информации для домов и жилых/нежилых помещений. Другими словами, по адресу можно сформировать список доступных помещений и выбрать нужное. Если же в вашей ИС уже присутствует сам кадастровый номер, то с помощью сервисов можно получать площадь, тип объекта и другую полезную информацию.
На этом описание подготовительного этапа можно считать завершенным. Осталось продумать связи между объектами в вашей ИС и ГИС ЖКХ, реализовать/проверить выбранный вариант интеграции на тестовом стенде и затем начинать работать с ППАК. На текущий момент ГИС ещё находится в разработке и не реализовывает все тонкости законодательной базы (кроме этого редко бывает доступна в выходные дни, присутствуют ошибки в логике и по превышению таймаутов, содержит некорректные данные, может терять некоторые сущности) — в основном система уже работает 🙂 Надеюсь данная статья поможет вам подготовиться к интеграции!
Дополнительные полезные ссылки:
https://github.com/springjazzy/Xades
https://github.com/gizmo75rus/HCS (XAdES-BES без КриптоПро .NET)
P.S.: Данная публикация описывает личное мнение. Конструктивная критика приветствуется. Опечатки просьба отправлять в личном сообщении.
(3), согласен — проблем в ГИС очень много, в статье детально описывать «темную сторону» не решился (один Ваш комментарий если с картинками и примерами — уже отдельная статья 🙂 ). С другой стороны, по закону приходится интегрироваться — на текущем этапе это «интеграция ради интеграции» (чтобы не получать предписаний). Бывают и просветления (из недавних —пример ), но с текущим подходом ГИС будет долго идти на встречу конечному потребителю.
Просветления у них бывают, только толку от этого мало.
На мой взгляд в ГИС отсутствует главное — методическая проработка, без нее это просто свалка каких-то данных, на текущий момент малополезных.
Пока все что-то куда-то выгружают сугубо «для галочки» и непонятно зачем.
Хотя есть четкая логическая цепочка «потребитель — единый лицевой счет — код услуги — начисление — поставщик услуг»
По хорошему со стороны абонента (через оператора приема платежей) должны передаваться «единый лицевой счет — код услуги — сумма оплаты — период», со стороны поставщиков услуг «единый лицевой счет — код услуги — начисление — период». При этом на базе ГИС должно производиться сопоставление, так как вся информация там будет.
Как программа-минимум хотя бы должна быть единая база начислений, чтобы я мог в любой момент по связке единый лицевой счет — код услуги — период» получить поставщика услуг и сумму.
На сегодня такие базы есть, но ведутся разрозненно, актуализируясь обычно раз в месяц. У нас в области едиными квитанциями заведует РРКЦ (Региональный расчетно-кассовый центр) которые раз в месяц выгружают базу начислений и передают ее всем операторам. Но если абонент вдруг оплатил электричество напрямую сбытовой компании, то при оплате квитанции он должен эту сумму вычеркнуть вручную, так как базы не синхронизируются и данные об оплате появятся в ней только через месяц.
Отсутствие единой базы порождает адское количество ненужной по сути информации, вот у нас сейчас есть реестры:
единый лс — адрес (обновляется каждый месяц, история хранится за полгода, количество объектов — кол-во квартир, домов и т.п. в области)
единый лс — код услуги — код поставщика — период (хранится вся история, так как есть долги, которые нужно правильно разносить)
код услуги — услуга
код поставщика — поставщик (так вот исторически сложилось, но тут хоть данных мало)
для всех поставщиков услуг принимающих платежи напрямую:
лс поставщика — адрес (тоже очень немало, хранится вся история)
Примерный месячный объем реестров — 7,5 млн строк. Нам оно, как оператору приема платежей надо? Хорошо ресурсы позволили выделить под это отдельный сервер. Но сам факт бесполезной траты ресурсов налицо.
(5), поддерживаю — у них на самом базовом этапе ещё не все проблемы решены — дома (ФИАС) и кадастровые данные (за это отдельное «спасибо» Росреестру). Учет платежей в ГИС и квитирование вообще, мягко говоря, не радуют.
(6)
Я вообще не понимаю зачем туда передавать адреса. Есть единый лицевой счет — это уникальный идентификатор абонента ЖКХ, который привязан именно к адресу, а не к физюрлицу (так как одно лицо может иметь несколько объектов недвижимости) и все начисления идут на адрес.
Если делать правильно, то на стороне ЖКХ нужно выполнить привязку адресов к лицевым счетам, которая будет затем являться эталонной базой для всех участников системы. И передавать адресные данные после этого нет нужды, достаточно передать единый лицевой счет. И наоборот, если мне нужен адрес, то я делаю запрос по лицевому счету и получаю нужную информацию.
Потому что в селах с ФИАС полный мрак, местные поставщики услуг передают что хотят и как хотят, чаще всего произвольным текстом «с. Гадюкино, Иванов И.И.» — им этого достаточно, а ты скрепи мозгами как это привязать и обработать. Пока замкнули такие ситуации на оператора, после каждого сеанса обмена он мониторит список ошибок и дополняет данные.
(6)
Этого мы, к счастью, не касались, так как работаем как платежные агенты через «прокладку» — банк. Наша задача передать в банк реестр платежей, а как он их запихнет в ГИС у нас уже голова не болит. Но даже того, с чем мы столкнулись — хватило за глаза.
— к сожалению, сейчас этим приходится заниматься УК и РСО, параллельно решая проблемы ошибочных (отсутствующих) данных в ФИАС.
(8) Подниму старую ветку, с момента появления статьи прошло 1,5 года.
Вы еще занимаетесь интеграцией?
Много с тех пор изменилось в плане стабильности работы ГИС ЖКХ?
(9) Здравствуйте, уже давно не работаю с ГИС ЖКХ — подсказать не смогу.
(10) 🙂 Да я вот тоже давно не работал, а тут вдруг оно всплыло. Спасибо за ответ.