Главная » Хабрахабр » Боремся с ошибками и «костылями» в ЕГРЮЛ — госреестре юридических лиц

Боремся с ошибками и «костылями» в ЕГРЮЛ — госреестре юридических лиц

Тот материал рассказывает о базовых вещах, поэтому начать лучше с него. На прошлой неделе мы выпустили статью про устройство ЕГРЮЛ — госреестра с данными 10 миллионов компаний.

Здесь же мы раскроем богатую и благодатную тему — проблемы ЕГРЮЛа, которые не дают нашим разработчикам заскучать.

Периодически ломается структура xml

В 2017 году раз в два-три месяца обновления приносили xml-ки в неправильном формате. Там полный набор: неизвестные теги, незакрытые теги, несоответствие типов данных. Например, в xsd указан тип date, а по факту лежит непонятная строка.

Больше сделать ничего нельзя. Когда такое случается, остается писать в техподдержку и смиренно ждать. Но надо признать, что в 2018-м проблем пока не было, все четко.

ФНС сказали, что знают про нее, но чинить не намерены: берите, мол, следующие обновления. А еще в полной выгрузке за 2015 год лежит битая xml, которую никогда не исправят.

Обновления появляются в папках давно прошедших дат

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

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

Обновления задним числом бывают двух типов:

  • меняют существующие файлы;
  • добавляют новые.

Чтобы что-то удаляли, мы не видели.

В нашей локальной директории лежит актуальный срез данных с сервера ФНС — эталон. Боремся со всем этим вот как. Каждую ночь мы скачиваем абсолютно все архивы с сервера ЕГРЮЛ и сравниваем с эталоном.

Если файл был, но даты его изменения в эталонной и новой базах разные, сравниваем контрольные суммы. Новые файлы находим понятно как: в локальной директории их просто нет. Когда и те отличаются, берем новую xml-ку и применяем обновление.

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

Оно лежит в папке 21. Допустим, 21 мая вышло обновление для ООО «Ромашка». 2018. 06. 06. А 22 мая ФНС подложил файл в директорию 20. Вот это что-то мы не тронем. 2018, в нем тоже что-то о «Ромашке». Хоть новый файл и свежее, его содержание неактуально из-за обновления 21 мая.

Записи пропадают между годами

Казалось бы, если взять архив 01.01.2015_FULL и последовательно накатить все обновления за 2015 год, получишь данные из 01.01.2016_FULL. А вот и нет!

Обычная ситуация из нашего неидеального мира:

  1. Весь 2016 год в ЕГРЮЛ нет ничего о компании. Ни в полном архиве на начало года, ни в обновлениях.
  2. В 01.01.2017_FULL компания внезапно появляется и спокойно живет весь год.
  3. А потом бац — в 01.01.2018_FULL компании снова нет. Если повезет, позже она придет в одном из обновлений, но совершенно не факт.

Из года в год пропадает примерно 1000 юрлиц.

02.
Это замечательное ООО засветилось в ЕГРЮЛ единственный раз: в обновлении от 21. Больше компании нет нигде, ни в одной полной выгрузке 2017.

Извольте начинать с 2015-го, иначе ваш ЕГРЮЛ будет неполным. Поэтому не получится взять полную выгрузку на начало года и применить все обновления до сегодняшнего дня.

Внезапно меняется xsd

Пару раз с 2015 года ФНС внезапно менял xsd. Выглядит это так: приходит обновление, ты пытаешься его разобрать по старому формату, но ничего не получается. Бодрит!

Проблема в том, что никто не предупреждает об изменениях. Подстроиться под новую xsd — дело, в общем-то, житейское. Обо всем узнаешь по факту. Высший пилотаж — повесить в произвольном разделе на сайте ФНС объявление, но обычно и того нет.

Непонятно, как идентифицировать филиалы

Как я говорил в предыдущей статье, филиалы в ЕГРЮЛ — не отдельные записи, это атрибуты юридических лиц. По закону филиалы и представительства не могут существовать сами по себе, поэтому их и хранят в записи основной компании.

Из-за этого мы преобразуем филиалы и представительства из ЕГРЮЛ в отдельные карточки и привязываем к основной записи. Но у наших заказчиков свои нужды: они оказывают филиалам других компаний услуги, подписывают с ними общие документы, в своих учетных системах ведут филиалы как отдельные сущности.

Структура ЕГРЮЛ предусматривает КПП, сокращенное название, полное название и даже название на латинице. Созданные карточки филиалов нужно идентифицировать. Как же показывать филиалы, не адреса же выводить. Но чтобы было веселее, ФНС гарантированно заполняет только адрес.


Типичный пример: у филиалов в выгрузке нет ничего, кроме адреса

В 50% случаев поле и правда не пустое, но даже тогда радоваться рано: название может быть одинаково для всех филиалов юрлица. Сначала мы все же смотрим в поле с сокращенным названием: вдруг там что-то лежит. Как идентификатор это не полезнее пустого поля.

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

У него три филиала с пустыми названиями и такими адресами: Для примера возьмем все то же ООО «Ромашка».

  • Москва, Турчанинов переулок;
  • Москва, Озерковская набережная;
  • Санкт-Петербург, Невский проспект.

Мы возьмем те данные о компании, что есть, и превратим их во вменяемое название-идентификатор филиала.

  1. Добавим в название слово «Филиал» или «Подразделение», в ЕГРЮЛ для них предусмотрели разные атрибуты.
  2. Включим в название short name основной организации. Теперь у нас три одинаковых названия «Филиал ООО „Ромашка“».
  3. Возьмем адреса филиалов и в скобках допишем к названиям отличающиеся части адресов.

    Будь все города́ разные, добавили бы в названия филиалов только города. Мы приписываем адрес до уникальной части: для первых двух филиалов «Ромашки» это полный адрес, а для третьего — только «Санкт-Петербург».

В нашем примере филиалы получатся такие:

  • «Филиал ООО „Ромашка“ (Москва, Турчанинов переулок)»;
  • «Филиал ООО „Ромашка“ (Москва, Озерковская набережная)»;
  • «Филиал ООО „Ромашка“ (Санкт-Петербург)».

Да, если у филиала в ЕГРЮЛ есть название, но неуникальное, первые два мы шага пропускаем. Адресную часть дописываем к этому неуникальному названию.

14/51, оф. 145». Адрес для названия мы берем максимум до улицы, потому что с домовой части начинается ад вроде «дмвлд 3, к. 5, пом. Поэтому филиалы, расположенные на одной улице, мы объединяем. Разбирать такое сложно, а как часть названия филиала оно выглядит нелепо. К счастью, таких немного. Встречаются даже разные филиалы в одном здании!

Просто взять и подключить ЕГРЮЛ не выйдет

Помимо перечисленных проблем в ЕГРЮЛ полно ошибок на уровне символов, адресов и прочих мелочей. Например, когда вместо «ООО» встречаешь в справочнике три ноля — это даже не удивляет.

Например, «Ленинград» вместо «Санкт-Петербург» — очень показательный случай. Попадаются и адреса с ошибками, куда без них. Более приземленный вариант: в адресе организации Железнодорожный Московской области указан как город, хотя он уже несколько лет район Балашихи.

Но для работы с базой, для поиска по ней данные нужно привести к реальности. По факту в справочнике все верно, потому что ЕГРЮЛ хранит реквизиты из учредительных документов организации. Наши пользователи ищут организации, находящиеся в Питере, а не когда-то прописанные в Ленинграде.

Напомню объемы: если взять полный справочник на начало 2015 года и все обновления до сегодня, получается 100 миллионов записей. Поэтому распарсить ЕГРЮЛ и получить пригодную к промышленной эксплуатации базу — та еще задача.

Справляется где-то за час. Для парсинга ЕГРЮЛ мы написали алгоритм: на вход он получает все записи с 2015 года, а на выходе дает 10 миллионов актуальных. Он приводит данные в порядок: чистит адреса, находит дубли, исправляет опечатки. Важная часть процесса — это наш продукт «Единый клиент».

Сейчас ищем джависта для продукта «Фактор». Если нравится парсить сложные справочники, структурировать данные и приводить их к человеческому виду, приходите к нам работать. А еще нам нужен QA: от 90 000 до 140 000 рублей на руки, детали на том же hh. Зарплата — от 175 000 до 275 000 ₽, подробности — на hh.ru.


Оставить комментарий

Ваш email нигде не будет показан
Обязательные для заполнения поля помечены *

*

x

Ещё Hi-Tech Интересное!

Сетевой дайджест: 20 экспертных материалов о протоколах, стандартах и информационной безопасности

В эту подборку мы включили свежие посты, подготовленные специалистами компании VAS Experts. Главные темы подборки — сетевые протоколы, 5G и информационная безопасность. Под катом вы также найдете ряд рекомендаций по построению сетей операторов связи. / Pxhere / PD Про ИБ ...

[Перевод] Забудьте о мегаструктурах инопланетян: новые наблюдения объясняют поведение звезды Табби одной только пылью

Художественное изображение KIC 8462852, яркость которой за последние несколько лет менялась необычным образом Когда планета проходит перед её родительской звездой, если смотреть с нашей точки зрения, часть света звезды на некоторое время исчезает. Научная охота за планетами в XXI веке ...