Получение сведений Росреестра#
Как происходит импорт#
Импорт сведений ЕГРН - это электронное информационное взаимодействие с ЕГРН (Росреестр) в части импорта данных (сведений КПТ) и выписок из ЕГРН и синхронизации БД.
Примечание
Данные каталога «Сведения ЕГРН» вносятся в Систему только путем импорта сведений, полученных из Росреестра, и недоступны для изменения вручную.
В Систему можно загрузить следующий перечень xml-схем, используемых для формирования xml-документа:
кадастровый план территории (KPT_v10, extract_cadastral_plan_territory_v01)
выписки из ЕГРН об объекте недвижимости (земельном участке) в электронной форме (extract_about_property_land)
кадастровую выписку о земельном участке (KVZU_v07)
Примечание
Этот перечень входит в базовый функционал Системы. Импорт других видов xml-схем выполняется с помощью дополнительного модуля import.oks.
Схемы, не указанные выше, Системой не поддерживаются. Загрузить их в Систему не получится.
В процессе импорта каждый объект из xml-файла сопоставляется с объектами в Системе.
Важно
Импорт сведений ЕГРН могут выполнять пользователи, которым назначена роль ias:gkn:importer.

В результате сопоставления в Системе происходит:
создание новых объектов;
обновление существующих объектов (обновляется координатное описание и значения атрибутов);
перевод объектов в архив.

Настройка импорта ЕГРН#
Импорт геометрии объектов#
В БД хранятся следующие типы геометрии:
[multi]point
[multi]linestring
[multi]polygon
Объект-коллекция
Сохраняемая в БД геометрия должна быть корректной. Это можно проверить с помощью функции is_valid: проверка возвращает true и отсутствуют дублирующиеся точки и полигоны. Объект-коллекция для одного объекта в БД имеет более одного описания геометрии.
Алгоритм преобразования геометрии из xml в GeoJson#
Для преобразования геометрии из формата xml в формат GeoJson Система выполняет следующий сценарий:
Извлекается геометрия объекта из xml-файла
Обрабатываются контуры
Если геометрия в xml-файле представлена в виде отдельных контуров contour, то результатом разбора геометрии всегда будет мультиполигон.
2.1. Выделяются элементы контура и определяются типы геометрии для каждого элемента:
point - имеет одну координату в элементе;
linestring - имеет две и более координат, где первая и последняя не совпадают;
polygon - имеет три и более координат, где первая и последняя совпадают.
2.1.1. Для типов linestring и polygon удаляются повторяющиеся точки.
2.1.2. Для типа polygon удаляются дубли контуров.
2.1.3. Если после выполнения шага 2.1.1. для linestring осталось одна точка, элемент сохраняется как point.
2.1.4. Если после выполнения шага 2.1.1. для polygon осталось две точки, элемент сохраняется как linestring, а если одна точка, то элемент сохраняется как point.
2.2. Однотипные элементы объединяются в [multi]типы.
2.3. Если на шаге 2.2. получены разные типы геометрии, то геометрия преобразовывается в коллекцию.
Выполняется проверка корректности для мультиполигонов. Если обнаружено пересечение, то геометрия сохраняется как коллекция, т.е. имеет несколько записей геометрии (см. варианты преобразования геометрии ).
Результат сохраняется в GeoJson, с последующей записью в БД.
Варианты преобразования геометрии
Ро - один полигон с вырезанным внутренним контуром;
Р - полигон;
GC - коллекция;
МР - мультиполигон;
L - полилиния;
ML - мультилиния
В xml-файле объект представлен одним контуром <Countour>, в котором описано несколько геометрических элементов <spatial_element>


Два полигона, один внутри другого. Результат: Po

Два полигона, один внутри другого с пересечением в одной точке. Результат: Po

Два полигона, один внутри другого с пересечением в двух точках. Результат: GC(P, P)

Один внешний полигон и один внутри него, у внутреннего полигона ребро лежит на одной линии с ребром внешнего. Результат: GC (P, P)

Два непересекающихся полигона. Результат: MP

Два пересекающихся полигона. Результат: GC (P, P)

Два касающихся полигона. Результат: GC (P, P)

Два пересекающихся полигона и два касающихся полигона. Результат: GC (MP, P) - непересекающиеся полигоны объединяются в мультиполигон.

Полигоны пересекаются. Результат: GC (MP, P)

Полигоны имеют общее ребро. Результат: GC (Po, P)

Два полигона с пересечением, у одного из них есть внутренний контур. Результат: GC (P, Po)

Два полигона с касанием в одной точке, у одного из них внутренний контур. Результат: MP(Po,P) - мультиполигон с внутренним контуром.

Два полигона с пересечениями в двух точках. Результат: MP

Полигоны пересекаются каждый с каждым. Результат: GC (P, P, P)

Два пересекающихся полигона и полилиния, не имеющая пересечений. Результат: GC (P, P, L)

Два внутренних контура вырезаны из полигона, две полилинии не имеют с ним пересечений. Результат: GC (Po, ML)

Два внутренних кольца вырезаны из полигона, полилиния не имеет с ним пересечений. Результат: GC (Po, L)

Один внешний полигон и два внутри него, у полигона справа ребро лежит на одной линии с ребром внешнего. Результат: GC (Po, P)

Три полигона накладываются друг на друга, один полигон включен целиком в два других. Результат: GC (P, P, P)

Три полигона накладываются друг на друга не пересекая границ. Результат: GC (P, P, P)

Три полигона накладываются друг на друга, не имеют смежных границ, но имеют пересечение в нескольких точках. Результат: GC (P, P, P)
В xml-файле объект представлен несколькими контурами <Contour>, в которых описано несколько геометрических элементов <spatials_element>

Принадлежность полигона к контуру <Contour> определяется цветом границы

Два контура, один внутри другого. Результат: GC (P, P)

Контур, состоящий из полигона с внутренним контуром, внутри другого контура. Результат: GC (Po, P)

Контур состоит из полигона с внутренним контуром, пересекающего с другой полигон и лежит внутри другого контура. Результат: GC (Po, P, P)

Один из полигонов контура лежит полностью в полигоне другого контура. Результат: GC (MP, P)

Контур состоит из полигона с внутренним контуром и оба контура пересекаются с полигоном другого контура. Результат: GC (Pо, P)
![]()
Контур состоит из полигона с внутренним контуром и его внешний контур пересекается с полигоном другого контура. Результат: GC (Pо, P)
![]()
Контур состоит из полигона с внутренним контуром и его внешний контур пересекается с полигоном другого контура только в одной точке. Результат: GC (Pо, P)
![]()
Контур состоит из пересекающихся полигонов с внутренним контуром, внутри другого контура. Результат: GC (Po, P)
![]()
Контур состоит из полигона с внутренним контуром и его внутренний контур полностью пересекается с полигоном другого контура. Результат: GC (P, Po)
![]()
Контур, состоящий из двух непересекающихся полигонов лежит внутри полигона другого контура, при этом один из полигонов касается его границы. Результат: GC (P, MP)
![]()
Полигон контура лежит внутри полигона другого контура, при этом не пересекает его внутренним контур и касается внешней границы. Результат: GC (Po, P)
![]()
Два контура пересекаются в отдельных точках. Результат: МP
![]()
Два контура c внутренними контурами. Один из контуров состоит из двух полигонов с внутренними контурами и только один полигон контура пересекается с другим контуром. Результат: GC (Po, MPo)
В xml-файле объект представлен тремя или более контурами <Contour>, в которых описано несколько геометрических элементов <spatials_element>


Три контура, один внутри другого. Результат: GC (P, P, P)

Три контура, один пересекает два других, которые между собой не пересекаются. Результат: GC (P, P, P)

Два непересекающихся контура лежат внутри другого контура, при этом один из контуров касается границы. Результат: GC (P, P, P)

Один контур лежит внутри другого контура, который пересекается с третьим контуром. Третий контур не пересекается с первым. Результат: GC (P, P, P)

Один контур лежит внутри другого контура, который касается с третьим контуром. Результат: GC (P, P, P)

Три контура пересекаются, один из контуров полностью лежит в двух других контурах. Результат: GC (P, P, P)

Три непересекающихся контура. Результат: MP

Три контура, два из которых пересекаются. Результат: GC (P, P, P)

Три контура, один из которых состоит из двух пересекающихся полигонов. Результат: GC (P, P, P, P)
Как изменить количество одновременных заданий на импорт#
Количество одновременных заданий на импорт данных ЕГРН в журнале импорта можно изменить.
Для изменения в СУБД перейдите к схеме regadm и откройте таблицу m_global_settings.
В строке со значением столбца setting_type равным 16 измените значение столбца value на {«MaxAsyncImportTasks»: N}, где N - это необходимое количество одновременно выполняемых заданий.
Если такая строка отсутствует в таблице, то количество заданий равно 4.
Для изменения количества одновременных заданий на импорт данных ЕГРН добавьте строку {«MaxAsyncImportTasks»: N} в таблицу m_global_settings и задайте нужное значение.

Если количество выполняемых заданий уже равно максимальному, а пользователь начинает импорт, то задание попадает в очередь.
Важно
Для вступления в силу внесенных изменений в таблице m_global_settings, перезапустите сервис службы импорта ЕГРН.
Задания в очереди будут выполняться по мере завершения действующих заданий в том порядке, в котором они попали в очередь.

В какой системе координат загружаются данные#
По умолчанию, при загрузке данных ЕГРН, система координат не определяется. Данным ЕГРН, которые загружаются в Систему, устанавливается проектная СК. Поэтому, если данные ЕГРН получены в СК отличной от проектной СК, то перед загрузкой в Систему нужно их преобразовать.
Автоматически определить и преобразовать систему координат данных, полученных из ЕГРН, в СК проекта позволяет дополнительный модуль Автоматическое определение системы координат при импорте ЕГРН
Как настроить сопоставление систем координат#
В некоторых случаях Система может не понимать наименования систем координат данных, поступивших из ЕГРН. И для того, чтобы сопоставить системы координат данных ЕГРН и Системы, требуется настройка модуля.
Например, на проекте есть СК: 161, 261, 361 и есть xml-файл с данными ЕГРН в системе коодинат МСК-1. Автоматически Система не сможет «опознать» систему координат МСК-1. Поэтому нужно добавить информацию о том, что МСК-1 - это система координат, например, 161, которая уже есть в проекте.
Сопоставить СК данных ЕГРН можно способами:
с учетом кадастрового округа - для этого должен быть задан параметр
AdditionalFilter
только по имени - для этого должны быть заполнены параметры
SkId
иSrId
без указания имени - когда у объекта в xml-файле не удалось извлечь sk_id или он оказался пустым, то такой объект импортируется в СК проекта
присвоить систему координат проекта из
ProjectAlias
для всех объектов xml-файла, например:<elem SourceId="PUBLISHER_EGRN" ProjectAlias="tumen" SkId="*" />
присвоить систему координат проекта из
ProjectAlias
для всех объектов xml-файла, кроме тех, для которых найдено соответствие поSkId
. Например:<elem SourceId="PUBLISHER_EGRN" ProjectAlias="tumen" SkId="*" /> <elem SourceId="PUBLISHER_EGRN" ProjectAlias="tumen" SkId="МСК Зона" 1 SrId="1" />
1. Создайте xml-файл определенного формата и загрузите его в БД.
Файл с настроенными сопоставлениями СК на проекте можно скачать в Конфигураторе и добавить в него новые значения.

Пример содержимого xml-файла сопоставлений систем координат:
<?xml version="1.0" encoding="UTF-8"?>
<ns0:dicadrinfo xmlns:ns0="http://schemas.asugorod.ru/dicadrinfo">
<info>
<matchingsSrid>
<elem SourceId="PUBLISHER_EGRN" ProjectAlias="kazan" SkId="МСК-26" SrId="261" />
<elem SourceId="PUBLISHER_EGRN" ProjectAlias="kazan" SkId="МСК-36" SrId="361" />
<elem SourceId="PUBLISHER_EGRN" ProjectAlias="kazan" AdditionalFilter="16" SkId="МСК-16" SrId="161" />
<elem SourceId="PUBLISHER_EGRN" ProjectAlias="taymir168" AdditionalFilter="86" SkId="МСК-59" SrId="24168" />
<elem SourceId="PUBLISHER_EGRN" ProjectAlias="taymir168" AdditionalFilter="72" SkId="261" SrId="24168" />
<elem SourceId="PUBLISHER_EGRN" ProjectAlias="kazan" SkId="МСК-1" SrId="161" />
<elem SourceId="PUBLISHER_EGRN" ProjectAlias="kazan" SkId="361" SrId="361" />
<elem SourceId="PUBLISHER_EGRN" ProjectAlias="kazan" SkId="161" SrId="161" />
<elem SourceId="PUBLISHER_EGRN" ProjectAlias="kazan" SkId="261" SrId="261" />
</matchingsSrid>
</info>
</ns0:dicadrinfo>
где:
SourceId
– идентификатор инструмента, для которого будет использоваться запись сопоставления. В данном случае это импорт ЕГРН, и в качестве значения этого поля нужно указать PUBLISHER_EGRN
ProjectAlias
– алиас проекта. Запись применяется только для указанного проекта. Если указать *, то запись будет применяться для всех проектов.
AdditionalFilter
– поле, в котором можно задать дополнительный критерий отбора по номеру кадастрового округа.
SkId
– наименование системы координат из xml-файла с данными ЕГРН
SrId
– целочисленный код, заданный в описании системы координат на вкладке Системы координат в Конфигураторе. Если системы координат, которая требуется для сопоставления, на проекте нет, ее можно добавить.
Приоритет выбора у геометрического объекта СК
Если извлеченное
SkId
пустое или в таблице сопоставления СК на текущий проект задано только сопоставление сSkId="*"
, тоSrId
- проектный.Если при импорте геометрического объекта удалось получить значение номера кадастрового округа, то
Определение
SrId
в таблице сопоставления СК по значению атрибутаAdditionalFilter
равному номеру кадастрового округа и значениюSkId
с конкретным значением проектаProjectAlias
.Определение
SrId
в таблице сопоставления СК по значению атрибутаAdditionalFilter
равному номеру кадастрового округа и значениюSkId
сProjectAlias="*"
.
Определение
SrId
в таблице сопоставления СК по значениюSkId
с конкретным значением проектаProjectAlias
.Определение
SrId
в таблице сопоставления СК по значениюSkId
сProjectAlias="*"
.
Правила формирования таблицы сопоставления
ProjectAlias
- обязательный параметр сопоставления. Принимает только значение псевдонима проекта, существующего в Системе, либо их перечисление через «,». А также значение «*» , кроме нижеуказанного пункта 3.1.SkId
- обязательный параметр сопоставления. Принимает любые значения, кроме пустоты, в том числе несколько пробелов подряд.Если
SkId = "*"
, тоProjectAlias
не может принимать значение «*» и не может быть задано других сопоставлений (элементов таблицы сопоставления) для данного проекта (ProjectAlias).Если
SkId
не равен «*», тоSrId
- обязательный параметр сопоставления.SrId
должен быть внутренним номером СК, для которого в Системе заданы настройки, т.е. тот, который существует в Системе.
Нельзя задать несколько сопоставлений СК (элементов таблицы сопоставления), у которых атрибуты
SourceId
,ProjectAlias
,SkId
,AdditionalFilter
имеют одинаковые значения кромеSrId
. Т.е. не может быть несколько одинаковых сопоставлений, которые приводят к разнымSrId
.
Варианты определения СК в исходных данных и правила их обработки
Если у одного или нескольких контуров многоконтурного объекта не задан идентификатор СК в xml-файле, то для них будет задана СК из первого контура этого объекта с заданным идентификатором СК.
Если ни для одного из контуров в таблице сопоставления не найден идентификатор СК, то Система сообщит об ошибке сопоставления. Импорт объекта не будет выполнен. Для успешного импорта необходимо добавить соответствующие записи в таблицу сопоставления.
Если для всех контуров объекта в xml-файле не задан идентификатор СК, то ему будет присвоена СК проекта.
Если для контуров заданы разные идентификаторы СК, то координаты контуров с СК несовпадающими СК будут пересчитаны в СК первого контура.
2. Обновите на проекте xml-файл с сопоставлениями
В Конфигураторе Системы в разделе Настройки системы / Импорт сведений ЕГРН нажмите кнопку и выберите файл.
Таблица сопоставления не будет загружена если не соответствует правилам формирования . В этом случае появится модальное окно с ошибками, в котором будут указаны номера элементов из загружаемой таблицы.
Как просмотреть ошибки сопоставления#
Те объекты, для которых сопоставление не найдено и функционал включен, не будут загружены в БД. В журнал ошибок сопоставления СК будут размещены записи об этом.
В настоящий момент просмотр журнала доступен из БД запросом:
select * from matching_coordinate_systems.error_matches_srs;

Как проверить ошибки определения принадлежности идентификатора СК к СК с SrId из таблицы сопоставления#
Когда для контура объекта найдено сопоставление, выполняется проверка вхождения координат контура в MBR СК с заданным SrId
.
Если координаты выходят за границы MBR, то объект не будет загружен и в журнал импорта будет записано сообщение об ошибке. Для успешного импорта необходимо задать верное сопоставление SkId
и SrId
.
Удаление временных файлов с сервера#
Раз в 24 часа запускается проверка временных файлов и удаление ненужных. Удаляются целиком папки, если файлы в них не изменялись больше 5 дней и в данный момент нет запущенных задач на импорт, которые соответствуют удаляемой папке. Наименование папки соответствует наименованию задачи импорта.
Файлы конфигурации#
В Систему можно загрузить следующий перечень xml-схем, используемых для формирования xml-документа:
кадастровый план территории (KPT_v10, extract_cadastral_plan_territory_v01)
выписки из ЕГРН об объекте недвижимости (земельном участке) в электронной форме (extract_about_property_land)
кадастровую выписку о земельном участке (KVZU_v07)
Система использует в процессе импорта данных файлы конфигурации, в которых указано сопоставление между поступающим на вход импорта XML-файлом и объектами системы.
Для каждого типа сведений используется свой файл конфигурации. В файле конфигурации с помощью тегов и атрибутов описано как следует импортировать те или иные сведения в систему.
Пример части структуры файла конфигурации:
<?xml version="1.0" encoding="utf-8"?>
<UpdaterConfig>
<Scheme Name="extract_about_property_land">
<Type Alias="GknParcel" MainTableType="parcel">
<Field Name="KN" Expression="{cadNum}" IsLink="True" TableType="parcel"/>
<Field Name="CadastralBlocks" Expression="{cadblock}" IsRef="True" RefAliasName="GknCadastralBlocks"
RefTableField="Number" RefTableKeyField="KeyField" TableType="parcel"/>
<Field Name="RegDate" Expression="{registrationdate}" TableType="parcel"/>
<Field Name="CancelDate" Expression="{canceldate}" TableType="parcel"/>
<Field Name="RegDateByDoc" Expression="{regdatebydoc}" TableType="parcel"/>
<Field Name="ParcelUseKind" Expression="{usekind}" IsRef="True" IsDictionary="True"
RefAliasName="GknRefParcelUseKind" RefTableField="Code" RefTableKeyField="KeyField" NeedCreate="true"
RefFieldsName="usekind" TableType="parcel"/>
</Type>
</Scheme>
</UpdaterConfig>
Атрибуты внутри тегов могут описывать какие-либо сведения об объекте или обозначать те или иные флаги.
Для управления обновлением или пересозданием объектов используются два флага — TakeExistingMMR
и DeleteOldObject
.
Атрибут TakeExistingMMR
указывает, что к полям текущего объекта будут добавлены новые связанные объекты. Наличие атрибута со значением True означает, что существующий связанный объект необходимо обновить. Отсутствие атрибута говорит о том, что нет необходимости менять связанный объект.
Атрибут DeleteOldObject
указывает, следует ли удалять старые объекты и связанные с ними внутренние объекты. Наличие атрибута со значением True означает, что существующий связанный объект и всего его внутренние связи и объекты необходимо удалить. Отсутствие атрибута говорит о том, что нет необходимости удалять связанные объект и его внутренние связи и объекты.
Примечание
При наличии двух атрибутов, атрибут TakeExistingMMR
преобладающий.
В таблице ниже описаны все комбинации зависимости входных данных и атрибутов и то, что происходит в том или ином случае.
Значение атрибута TakeExistingMMR |
Значение атрибута DeleteOldObject |
Наличие данных в импортируемом XML-файле |
Описание происходящего |
---|---|---|---|
Присутствует и установлен в True |
Присутствует и установлен в True |
Да |
Обновляются поля текущего объекта, связь со связанным объектом не разрывается. Созданные связанные объекты добавляются в соответствующие поля объекта, дополняя уже существующие |
Присутствует и установлен в True |
Присутствует и установлен в True |
Нет |
Ничего не обновляется, связь с связанным объектом не разрывается |
Присутствует и установлен в True |
Присутствует и установлен в False или отсутствует полностью |
Да |
Обновляются поля текущего объекта, связь со связанным объектом не разрывается. Созданные связанные объекты добавляются в соответствующие поля объекта, дополняя уже существующие |
Присутствует и установлен в True |
Присутствует и установлен в False или отсутствует полностью |
Нет |
Ничего не обновляется, связь с связанным объектом не разрывается |
Присутствует и установлен в False или отсутствует полностью |
Присутствует и установлен в True |
Да |
Связь с связанным объектом разрывается, связанный объект удаляется, создаётся новый и привязывается к основному объекту. Если у объекта, в котором установлен атрибут, есть связанные вложенные объекты, они также будут удалены и созданы новые |
Присутствует и установлен в False или отсутствует полностью |
Присутствует и установлен в True |
Нет |
Связь с связанным объектом разрывается, связанный объект удаляется. Если у связанного объекта, в котором установлен атрибут, есть связанные вложенные объекты, они также будут удалены |
Присутствует и установлен в False или отсутствует полностью |
Присутствует и установлен в False или отсутствует полностью |
Да |
Связь со связанным объектом разрывается, создаётся новый связанный объект и связывается с объектом |
Присутствует и установлен в False или отсутствует полностью |
Присутствует и установлен в False или отсутствует полностью |
Нет |
Связь со связанным объектом разрывается, все вложенные объекты и связи между ними будут сохранены |
Журнал импорта#
Журнал импорта расположен в разделе «Импорт/экспорт» кнопка
.
В процессе импорта файлам присваиваются статусы:
Статус |
Описание |
---|---|
Импортируется |
Выполняется импорт XML-файлов. |
Импорт окончен |
XML-файл успешно загружен. |
Завершен с ошибкой |
XML-файл загружен, но в процессе импорта обнаружены ошибки. |
В очереди |
XML-файл ожидает своей очереди для загрузки. |
Импорт прерван |
Присваивается файлам со статусом «Импортируется» после возобновления операции, если ранее процесс импорта был внезапно прерван. |
Если импорт был прерван, то после возобновления загрузки:
файлы со статусом «Импортируется» приобретают статус «Импорт прерван». Для таких файлов загрузку необходимо возобновить вручную;
файлы со статусом «В очереди» восстановятся с таким же статусом и их загрузка продолжится автоматически.
В журнале импорта отображаются сведения о процессе импорта .xml файлов такие как: дата, тип, количество загруженных объектов и ошибки импорта.