Руководство по установке#

Массовый запрос к ЕГРН – это инструмент, позволяющий автоматически обновлять данные из Росреестра, используя для этого как базовый источник информации, так и свои таблицы с данными.

Отправить массовый запрос к ЕГРН можно по следующим видам:

  • запрос ЕГРН ЗУ (egrnZu);

  • запрос ЕГРН ОКС (egrnOks);

  • запрос ЕГРН ЗОУИТ (egrnZouit);

  • запрос КПТ (kpt).

Установка#

Чтобы установить модуль:

  1. Выделите в СМЭВ отдельную очередь для выполнения операций.

    Если количество отправленных запросов к Росреестру будет слишком большим, может произойти блокировка всей очереди в СМЭВ.

    Для избежания этой ситуации рекомендуется выделить специальную очередь в СМЭВ.

  2. Создайте вспомогательную таблицу для работы функции.

    Так как функция устанавливается на автоматический запуск, управление непосредственно запросами для функции происходит с помощью вспомогательной таблицы.

    Код создания таблицы:

    create table public.table_f_smevrequest_properties(id int primary key, scheme varchar(100), typeRequest varchar(100), start_date timestamp default (to_date('1900-01-01'::text,'YYYY-MM-DD'))::timestamp, queryText text default null, is_active int default 0);
    insert into public.table_f_smevrequest_properties(id, scheme, typeRequest) select (select count(*) from table_f_smevrequest_properties)+row_number() over(), scheme, 'egrnZouit' from regadm.m_projects where sys_status=0;
    insert into public.table_f_smevrequest_properties(id, scheme, typeRequest) select (select count(*) from table_f_smevrequest_properties)+row_number() over(), scheme, 'kpt' from regadm.m_projects where sys_status=0;
    insert into public.table_f_smevrequest_properties(id, scheme, typeRequest) select (select count(*) from table_f_smevrequest_properties)+row_number() over(), scheme, 'egrnOks' from regadm.m_projects where sys_status=0;
    insert into public.table_f_smevrequest_properties(id, scheme, typeRequest) select (select count(*) from table_f_smevrequest_properties)+row_number() over(), scheme, 'egrnZu' from regadm.m_projects where sys_status=0;
    

    где:

    • [scheme] – название схемы в БД. Можно указать только те схемы, для которых планируется выполнять запрос к Росреестру;

    • [typeRequest] – тип запроса (egrnZouit, kpt, egrnOks, egrnZu). Можно указать только тот вид, который планируется запрашивать в Росреестре;

    • [start_date] – дата начала текущей массовой загрузки, по умолчанию 1 января 1900 года. Поле служебное, используется для отбора данных, которые ещё не запрашивались в текущей операции массового запроса;

    • [queryText] – служебное поле, по умолчанию <NULL>. Поле используется в случае, если данные для массового запроса задаются из другого источника;

    • [is_active] – запущен ли массовый запрос сейчас. По умолчанию 0 (не запущен).

  3. Создайте основную функцию public.f_smevrequest, выполняющую массовый запрос.

    Скрипт для создания функции расположен по пути: …\Подсистемы\Межведомственные запросы\СМЭВ. Массовый запрос к СМЭВ\public.f_smevrequest.sql.

    Из таблицы public.table_f_smevrequest_properties функция берёт следующую информацию:

    • схемы, на которых необходимо запускать массовый запрос;

    • тип запроса;

    • время выполнения запроса.

  4. Добавьте функцию на выполнение в cron с желаемой периодичностью, чтобы функция запускалась автоматически.

    Для этого выполните на сервере базы данных следующие действия:

    4.1. Создайте папку cron_scripts в папке //home//user//.

    4.2. Расположите в cron_scripts файл из папки: …\Подсистемы\Межведомственные запросы\СМЭВ. Массовый запрос к СМЭВ\для cron.

    4.3. Измените подключение к БД в строке sql файла egrn_auto.sh.

    4.4. Выполните команду для получения прав на запуск скрипта:

    chmod +x /home/user/cron_scripts/egrn_auto.sh
    

    4.5. Установите запуск функции в cron по расписанию:

    • версия для …\etc\crontab:

    0 */2 * * * root /bin/bash /home/user/cron_scripts/egrn_auto.sh >> /home/user/cron_scripts/egrn.log
    
    • версия для crontab -e:

    0 */2 * * * /bin/bash /home/user/cron_scripts/egrn_auto.sh >> /home/user/cron_scripts/egrn.log
    

    Важно

    • При установке функции массового запроса по умолчанию (без изменения параметров), cron настраивается на выполнение функции раз в 2 часа, а в файле egrn_auto.sh указывается максимум в 85 запросов за одну итерацию. При необходимости эти параметры можно менять, если количество запросов не будет превышать число, разрешённое Росреестром.

    • Рекомендованное количество запросов к Росреестру в сутки: 500 – 1000 запросов (для небольших проектов).

    • Максимальное количество, разрешённое Росреестром, – 1500 запросов (для крупных субъектов).

    • Если за сутки будет отправлено больше 1500 запросов, возможна блокировка системы в СМЭВ.

    4.5. Удостоверьтесь, что в файле pg_hba.conf, который находится в папке, где установлен Postgres, добавлена возможность выполнять команды локально от пользователя, указанного в файле egrn_auto.sh. Для этого скопируйте первую строку и измените Postgres на другое имя пользователя базы данных.

    Содержимое файла pg_hba.conf:

    ../../../_images/pg_hba.png

Использование модуля массовых запросов к ЕГРН#

После установки модуля все манипуляции с массовым запросом происходят через таблицу public.table_f_smevrequest_properties.

Если необходимо запустить массовый запрос, измените в схеме и виде запроса, которые нужно загрузить, следующее:

  • start_date на сегодняшнее число;

  • is_active на 1.

Пример:

update  public.table_f_smevrequest_properties set start_date = Now(), is_active = 1 where scheme = 'НУЖНАЯ СХЕМА' and typeRequest = 'НУЖНЫЙ ЗАПРОС'

В СМЭВ будут отправлены те данные, которые ещё не запрашивались с указанной даты.

Логирование#

Результат отработки функции отображается в таблице public.table_f_SMEVRequest_log (функция создаётся автоматически).

../../../_images/table2.png

где:

  • [scheme] – название схемы;

  • [inserted_rows_count] – количество строк, отправленных в СМЭВ;

  • [in_queue] – сколько строк осталось в очереди на отправку;

  • [type] – тип запроса СМЭВ.

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

Отправка массового запроса к ЕГРН из своего источника#

Если есть необходимость запросить выписки из Росреестра на данные, которых нет в системе, но они есть в другой таблице, можно запустить массовый запрос этих данных.

Для этого используется служебное поле [queryText] в таблице public.table_f_smevrequest_properties.

В это поле передаётся строка с запросом любого вида, в результате которого должна быть сформирована таблица с определённым набором полей в зависимости от типа. Названия полей обязательно должны быть такими, как указано ниже:

  • Для запроса КПТ:

    'select kn from table'
    

    где:

    • table – таблица с произвольными данными;

    • kn – кадастровые номера кварталов.

  • Для запроса ЕГРН ЗУ:

    'select kn from table'
    

    где:

    • table – таблица с произвольными данными;

    • kn – кадастровые номера ЗУ.

  • Для запроса ЕГРН ОКС:

    'select kn, kind_oks from table'
    

    где:

    • table – таблица с произвольными данными;

    • kn – кадастровые номера ОКС;

    • kind_oks – название типа ОКС (Здание, Помещение и т.д.).

  • Для запроса ЕГРН ЗОУИТ:

    'select kn, kind_zone from table'
    

    где:

    • table – таблица с произвольными данными;

    • kn – кадастровые номера кварталов;

    • kind_zone – название Зоны по классификатору (Водоохранные зоны и т.д.).

Важно

[queryText] всегда используется для запроса, если поле не пустое. Чтобы выполнить запрос из стандартного источника, в поле необходимо указать NULL.

Массовое обновление данных раз в требуемый период#

Чтобы настроить массовое обновление данных раз в определенное время, например, раз в квартал:

  1. Добавьте в папку cron_scripts файл egrn_auto_kv.sh из папки …metadata\src\Подсистемы\Межведомственные запросы\СМЭВ. Массовый запрос к СМЭВ\для запуска МЗ раз в квартал.

  2. Измените подключение к БД и выберите, какой тип запроса будет выполняться автоматически.

  3. Добавьте запись в cron на нужный промежуток.

    Пример для установки раз в 3 месяца (раз в квартал):

    • версия для /etc/crontab:

    0 0 1 jan,apr,jul,sep * root /bin/bash /home/user/cron_scripts/egrn_auto_kv.sh >> /home/user/cron_scripts/egrn.log
    
    • версия для crontab -e:

    0 0 1 jan,apr,jul,sep * /bin/bash /home/user/cron_scripts/egrn_auto_kv.sh >> /home/user/cron_scripts/egrn.log
    

    Другой вариант написания периода для cron:

    0 0 1 */3 *