Руководство по установке#
Массовый запрос к ЕГРН – это инструмент, позволяющий автоматически обновлять данные из Росреестра, используя для этого как базовый источник информации, так и свои таблицы с данными.
Отправить массовый запрос к ЕГРН можно по следующим видам:
запрос ЕГРН ЗУ (egrnZu);
запрос ЕГРН ОКС (egrnOks);
запрос ЕГРН ЗОУИТ (egrnZouit);
запрос КПТ (kpt).
Установка#
Чтобы установить модуль:
Выделите в СМЭВ отдельную очередь для выполнения операций.
Если количество отправленных запросов к Росреестру будет слишком большим, может произойти блокировка всей очереди в СМЭВ.
Для избежания этой ситуации рекомендуется выделить специальную очередь в СМЭВ.
Создайте вспомогательную таблицу для работы функции.
Так как функция устанавливается на автоматический запуск, управление непосредственно запросами для функции происходит с помощью вспомогательной таблицы.
Код создания таблицы:
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 (не запущен).
Создайте основную функцию public.f_smevrequest, выполняющую массовый запрос.
Скрипт для создания функции расположен по пути: …\Подсистемы\Межведомственные запросы\СМЭВ. Массовый запрос к СМЭВ\public.f_smevrequest.sql.
Из таблицы public.table_f_smevrequest_properties функция берёт следующую информацию:
схемы, на которых необходимо запускать массовый запрос;
тип запроса;
время выполнения запроса.
Добавьте функцию на выполнение в 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:
Использование модуля массовых запросов к ЕГРН#
После установки модуля все манипуляции с массовым запросом происходят через таблицу 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 (функция создаётся автоматически).

где:
[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.
Массовое обновление данных раз в требуемый период#
Чтобы настроить массовое обновление данных раз в определенное время, например, раз в квартал:
Добавьте в папку cron_scripts файл egrn_auto_kv.sh из папки …metadata\src\Подсистемы\Межведомственные запросы\СМЭВ. Массовый запрос к СМЭВ\для запуска МЗ раз в квартал.
Измените подключение к БД и выберите, какой тип запроса будет выполняться автоматически.
Добавьте запись в 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 *