При автоматизации процессов, связанных с проверкой контрагентов или мониторингом процедур банкротства, разработчики 1С часто сталкиваются с задачей получения данных с портала Федресурс (bankrot.fedresurs.ru). Типичная проблема заключается в том, что обычная загрузка страницы через HTTPСоединение или КопироватьФайл не позволяет применить фильтры по должнику или типу сообщения, так как сайт использует сложные механизмы обработки запросов.
В этой статье мы подробно разберем, почему стандартный парсинг не работает и какими методами можно решить задачу получения данных с отборами профессионально.
Рассмотрим ситуацию: вы заходите на сайт Федресурса, устанавливаете фильтр по ИНН должника или типу сообщения, нажимаете кнопку «Поиск», но адрес в строке браузера не меняется. Проанализируем причину этого поведения. Сайт работает на основе POST-запросов и AJAX-технологий. Это означает, что:
Поэтому метод КопироватьФайл(СсылкаСОтбором, Путь) в данном случае будет бесполезен. Разберем правильные способы реализации задачи.
Наиболее надежный и легальный способ получения данных — использование официального программного интерфейса, предоставляемого оператором ЕФРСБ (АО «Интерфакс»). Для этого в 1С используется объект WS-ссылки.
Рассмотрим шаги для реализации:
WS-ссылку, указав адрес WSDL-описания (его можно найти в справочном разделе сайта Федресурс).GetMessageList для получения списка сообщений по заданным критериям.Посмотрим на пример кода для вызова веб-сервиса:
// Создание прокси для работы с сервисом
Определения = Новый WSОпределения(АдресWSDL, Логин, Пароль);
Прокси = Новый WSПрокси(Определения, "http://fedresurs.ru/messages", "MessageService", "MessageServiceSoap");
Прокси.Пользователь = Логин;
Прокси.Пароль = Пароль;
// Формирование фильтра (отбора)
Фильтр = Прокси.ФабрикаXDTO.Создать(Прокси.ФабрикаXDTO.Тип("http://fedresurs.ru/messages", "MessageSearchFilter"));
Фильтр.DebtorInn = "7700000000"; // ИНН должника
Фильтр.Type = "BankruptcyMessage"; // Тип сообщения
// Получение данных
Результат = Прокси.GetMessageList(Фильтр);
Этот метод позволяет четко устанавливать отборы и получать структурированные данные (XML), которые легко обрабатываются в 1С без необходимости «разбирать» HTML-код.
Если процесс заключения прямого договора с «Интерфаксом» кажется слишком сложным или дорогим, можно воспользоваться услугами посредников (агрегаторов данных). Такие сервисы собирают информацию с Федресурса и предоставляют её через современные REST API в формате JSON.
Проанализируем преимущества этого подхода:
HTTPСоединение и ЧтениеJSON гораздо проще, чем настройка SOAP.Пример получения данных через стороннее API:
Соединение = Новый HTTPСоединение("api.service-provider.ru", 443,,,,, Новый ЗащищенноеСоединениеOpenSSL());
Запрос = Новый HTTPЗапрос("/v1/fedresurs/messages?inn=7700000000&token=ВАШ_ТОКЕН");
Ответ = Соединение.Получить(Запрос);
Если Ответ.КодСостояния = 200 Тогда
ЧтениеJSON = Новый ЧтениеJSON;
ЧтениеJSON.УстановитьСтроку(Ответ.ПолучитьТелоКакСтроку());
Данные = ПрочитатьJSON(ЧтениеJSON);
ЧтениеJSON.Закрыть();
// Обработка полученного массива сообщений
КонецЕсли;
Если необходимо реализовать решение без дополнительных затрат, можно попытаться воспроизвести POST-запрос, который отправляет браузер при нажатии кнопки поиска. Для этого выясним структуру параметров через консоль разработчика в браузере (F12 -> вкладка Network).
Важные моменты:
User-Agent, Referer и Content-Type.Cookie, которые сайт устанавливает при первом посещении.Рассмотрим структуру формирования такого запроса в 1С:
ЗаголовокЗапроса = Новый Соответствие;
ЗаголовокЗапроса.Вставить("Content-Type", "application/x-www-form-urlencoded");
ЗаголовокЗапроса.Вставить("User-Agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64)");
ТелоЗапроса = "propertyName=Value&debtorInn=7700000000&messageType=123"; // Пример параметров отбора
Запрос = Новый HTTPЗапрос("/Messages.aspx", ЗаголовокЗапроса);
Запрос.УстановитьТелоИзСтроки(ТелоЗапроса);
Соединение = Новый HTTPСоединение("bankrot.fedresurs.ru", 443,,,,, Новый ЗащищенноеСоединениеOpenSSL());
Ответ = Соединение.ОтправитьДляОбработки(Запрос);
Выясним, какой метод лучше подходит для ваших задач:
Таким образом, для надежной работы отборов по должнику или типу сообщения рекомендуется использовать специализированные интерфейсы (API), а не пытаться имитировать просмотр страницы пользователем.