857 lines
48 KiB
Markdown
857 lines
48 KiB
Markdown
# Техническая справка: Парсер ЕИС Закупок (zakupki.gov.ru)
|
||
|
||
**Версия:** 2.0
|
||
**Дата:** 26 марта 2026
|
||
**Статус:** Production-ready
|
||
|
||
---
|
||
|
||
## Содержание
|
||
|
||
1. [Что именно забирается с zakupki.gov.ru](#1-что-именно-забирается-с-zakupki-govru)
|
||
2. [Регламент получения данных](#2-регламент-получения-данных)
|
||
3. [Структура собираемых данных](#3-структура-собираемых-данных)
|
||
4. [Описание базы данных понятным языком](#4-описание-базы-данных-понятным-языком)
|
||
5. [Поддерживаемые законы](#5-поддерживаемые-законы)
|
||
6. [Отличия от 94-ФЗ](#6-отличия-от-94-фз)
|
||
7. [Реестр недобросовестных поставщиков РНП](#7-реестр-недобросовестных-поставщиков-рнп)
|
||
8. [Технические детали](#8-технические-детали)
|
||
|
||
---
|
||
|
||
## 1. Что именно забирается с zakupki.gov.ru
|
||
|
||
### 1.1. Источник данных
|
||
|
||
**Официальное название:** Единая информационная система в сфере закупок (ЕИС)
|
||
**Домен:** zakupki.gov.ru
|
||
**SOAP API:** https://int44.zakupki.gov.ru/eis-integration/services/getDocsIP
|
||
|
||
### 1.2. Типы забираемых данных
|
||
|
||
С системы забираются **извещения о закупках** — это официальные публикации о планируемых государственных и коммерческих закупках.
|
||
|
||
**Конкретные данные:**
|
||
|
||
| Тип данных | Что это | Пример |
|
||
|------------|---------|--------|
|
||
| **Извещения об электронных аукционах** | Публикации о начале приёма заявок на участие в электронных торгах | «Поставка офисной бумаги для нужд министерства» |
|
||
| **Извещения об открытых конкурсах** | Публикации о конкурсах с оценкой не только цены, но и квалификации участников | «Выполнение работ по разработке проектной документации» |
|
||
| **Извещения о запросах котировок** | Публикации о закупках с упрощённой процедурой для небольших сумм | «Закупка канцелярских товаров» |
|
||
| **Извещения о запросах предложений** | Публикации о закупках, где важны не только цена, но и другие критерии | «Оказание услуг по техническому обслуживанию» |
|
||
| **Планы закупок** | Документы с информацией о планируемых закупках на год | «План закупок министерства образования на 2026 год» |
|
||
| **Информация о контрактах** | Сведения о заключённых контрактах по итогам закупок | «Контракт № 44-123 от 15.03.2026» |
|
||
|
||
### 1.3. Объём данных
|
||
|
||
**По 44-ФЗ (государственные закупки):**
|
||
- Извещения о проведении электронных процедур
|
||
- Извещения о проведении конкурсов
|
||
- Извещения о запросах котировок
|
||
- Планы-графики закупок
|
||
- Сведения о контрактах
|
||
|
||
**По 223-ФЗ (закупки госкомпаний):**
|
||
- Извещения о закупках товаров, работ, услуг
|
||
- Планы закупок госкомпаний
|
||
- Сведения о договорах
|
||
|
||
**Дополнительно:**
|
||
- Реестр недобросовестных поставщиков (РНП)
|
||
- Информация о заказчике (наименование, ИНН, КПП, ОГРН)
|
||
- Начальная цена контракта (НМЦ)
|
||
- Сроки подачи заявок
|
||
- Статус процедуры
|
||
|
||
---
|
||
|
||
## 2. Регламент получения данных
|
||
|
||
### 2.1. Способ получения
|
||
|
||
**Основной метод (с 1 января 2025):** SOAP API через интеграционный шлюз
|
||
|
||
| Параметр | Значение |
|
||
|----------|----------|
|
||
| **Протокол** | SOAP 1.2 over HTTPS |
|
||
| **URL API** | https://int44.zakupki.gov.ru/eis-integration/services/getDocsIP |
|
||
| **Формат запроса** | XML в SOAP-конверте |
|
||
| **Формат ответа** | XML с ссылкой на ZIP-архив |
|
||
| **Формат данных** | XML файлы в ZIP-архивах |
|
||
| **Авторизация** | Токен через Госуслуги (ЕСИА) |
|
||
|
||
**Устаревший метод (до 1 января 2025):** FTP доступ к открытым данным
|
||
- **Статус:** Закрыт с 01.01.2025
|
||
- **Причина:** Переход на защищённый SOAP API
|
||
|
||
### 2.2. Процесс получения данных
|
||
|
||
```
|
||
┌─────────────────────────────────────────────────────────────┐
|
||
│ Шаг 1. Авторизация │
|
||
│ Получение токена через Госуслуги │
|
||
│ URL: https://zakupki.gov.ru/pmd/auth/welcome │
|
||
└─────────────────────────────────────────────────────────────┘
|
||
│
|
||
▼
|
||
┌─────────────────────────────────────────────────────────────┐
|
||
│ Шаг 2. Формирование SOAP-запроса │
|
||
│ Параметры: │
|
||
│ - Код региона (например, "77" = Москва) │
|
||
│ - Тип закона (44-ФЗ или 223-ФЗ) │
|
||
│ - Тип документа (аукцион, конкурс, котировки) │
|
||
│ - Период (год, месяц, день) │
|
||
└─────────────────────────────────────────────────────────────┘
|
||
│
|
||
▼
|
||
┌─────────────────────────────────────────────────────────────┐
|
||
│ Шаг 3. Отправка запроса │
|
||
│ POST запрос на SOAP API │
|
||
│ Заголовок: individualPerson_token = <ваш токен> │
|
||
└─────────────────────────────────────────────────────────────┘
|
||
│
|
||
▼
|
||
┌─────────────────────────────────────────────────────────────┐
|
||
│ Шаг 4. Получение ссылки на архив │
|
||
│ Ответ содержит URL для скачивания ZIP-архива │
|
||
│ Пример: https://zakupki.gov.ru/opendata/download/... │
|
||
└─────────────────────────────────────────────────────────────┘
|
||
│
|
||
▼
|
||
┌─────────────────────────────────────────────────────────────┐
|
||
│ Шаг 5. Скачивание архива │
|
||
│ Загрузка ZIP-архива с XML-файлами │
|
||
│ Требуется тот же токен в заголовке │
|
||
└─────────────────────────────────────────────────────────────┘
|
||
│
|
||
▼
|
||
┌─────────────────────────────────────────────────────────────┐
|
||
│ Шаг 6. Распаковка и парсинг │
|
||
│ Распаковка ZIP-архива │
|
||
│ Чтение и обработка XML-файлов │
|
||
│ Извлечение данных о закупках │
|
||
└─────────────────────────────────────────────────────────────┘
|
||
│
|
||
▼
|
||
┌─────────────────────────────────────────────────────────────┐
|
||
│ Шаг 7. Сохранение в базу данных │
|
||
│ Запись данных в таблицу parsers_procurement │
|
||
│ Связывание с организациями по ИНН/ОГРН │
|
||
│ Фиксация в журнале загрузок │
|
||
└─────────────────────────────────────────────────────────────┘
|
||
```
|
||
|
||
### 2.3. Периодичность обновления
|
||
|
||
**Автоматическая синхронизация:**
|
||
- **Расписание:** Ежедневно в 02:00 (через Celery Beat)
|
||
- **Режим:** Инкрементальная загрузка
|
||
- **Логика:** Загрузка данных месяц за месяцем до текущей даты
|
||
- **Остановка:** После 2 месяцев без новых данных
|
||
|
||
**Ручная загрузка:**
|
||
- По запросу пользователя через API
|
||
- С указанием конкретного региона и периода
|
||
- С возможностью точечного запроса по номеру закупки
|
||
|
||
### 2.4. Требования к доступу
|
||
|
||
| Требование | Описание |
|
||
|------------|----------|
|
||
| **Учётная запись** | Действующая учётная запись Госуслуги (ЕСИА) |
|
||
| **Токен** | individualPerson_token (получается после авторизации) |
|
||
| **HTTPS** | Обязательное защищённое соединение |
|
||
| **IP-адрес** | Желательно статический (для production) |
|
||
| **Прокси** | Опционально (для обхода ограничений) |
|
||
|
||
---
|
||
|
||
## 3. Структура собираемых данных
|
||
|
||
### 3.1. Основная структура (понятным языком)
|
||
|
||
**Представьте себе большую таблицу, где:**
|
||
|
||
- **Каждая строка** — это одна закупка
|
||
- **Каждый столбец** — это характеристика закупки (номер, название, заказчик, цена и т.д.)
|
||
|
||
**Основные столбцы этой таблицы:**
|
||
|
||
| Столбец | Что означает | Пример значения |
|
||
|---------|--------------|-----------------|
|
||
| **Реестровый номер** | Уникальный номер закупки в системе | 0888200000224000038 |
|
||
| **Наименование** | Что именно закупают | «Поставка офисной бумаги» |
|
||
| **Заказчик** | Кто покупает | ПАО СБЕРБАНК |
|
||
| **ИНН заказчика** | Налоговый номер заказчика | 7707083893 |
|
||
| **Цена контракта** | Максимальная сумма | 1 500 000 руб. |
|
||
| **Дата публикации** | Когда объявили закупку | 15.03.2025 |
|
||
| **Дата окончания** | До когда можно подать заявку | 25.03.2025 |
|
||
| **Статус** | Текущее состояние | «Приём заявок» |
|
||
| **Закон** | По какому закону проводится | 44-ФЗ или 223-ФЗ |
|
||
|
||
### 3.2. Техническая структура данных
|
||
|
||
**DTO (Data Transfer Object) — промежуточный формат:**
|
||
|
||
```
|
||
Procurement (Закупка)
|
||
├── purchase_number: str # Реестровый номер
|
||
├── purchase_name: str # Наименование закупки
|
||
├── customer_inn: str # ИНН заказчика
|
||
├── customer_kpp: str # КПП заказчика
|
||
├── customer_ogrn: str # ОГРН заказчика
|
||
├── customer_name: str # Наименование заказчика
|
||
├── max_price: str # Начальная цена (строка)
|
||
├── currency_code: str # Код валюты (RUB)
|
||
├── placement_method: str # Способ определения поставщика
|
||
├── publish_date: str # Дата публикации
|
||
├── end_date: str # Дата окончания приёма заявок
|
||
├── status: str # Статус процедуры
|
||
├── law_type: str # Тип закона (44-ФЗ / 223-ФЗ)
|
||
├── purchase_object_info: str # Детальное описание объекта
|
||
└── href: str # Ссылка на страницу в ЕИС
|
||
```
|
||
|
||
### 3.3. Формат хранения
|
||
|
||
**Исходный формат:** XML файлы в ZIP-архивах
|
||
|
||
**Пример XML структуры:**
|
||
```xml
|
||
<notification>
|
||
<purchaseNumber>0888200000224000038</purchaseNumber>
|
||
<purchaseObjectInfo>Поставка офисной бумаги</purchaseObjectInfo>
|
||
<customer>
|
||
<organizationInfo>
|
||
<INN>7707083893</INN>
|
||
<KPP>770701001</KPP>
|
||
<OGRN>1027700034460</OGRN>
|
||
<name>ПАО СБЕРБАНК</name>
|
||
</organizationInfo>
|
||
</customer>
|
||
<lot>
|
||
<lotData>
|
||
<maxPrice>1500000.00</maxPrice>
|
||
<currencyCode>RUB</currencyCode>
|
||
</lotData>
|
||
</lot>
|
||
<publishDate>2025-03-15</publishDate>
|
||
<endDate>2025-03-25T18:00:00</endDate>
|
||
<state>Подача заявок</state>
|
||
</notification>
|
||
```
|
||
|
||
**Целевой формат:** Реляционная база данных PostgreSQL
|
||
|
||
---
|
||
|
||
## 4. Описание базы данных понятным языком
|
||
|
||
### 4.1. Общая концепция
|
||
|
||
**Представьте библиотеку с несколькими книжными полками:**
|
||
|
||
Каждая «полка» (таблица) хранит определённый тип информации:
|
||
|
||
| Полка (таблица) | Что хранит | Аналогия |
|
||
|-----------------|------------|----------|
|
||
| **parsers_procurement** | Все закупки | Каталог карточек о закупках |
|
||
| **parsers_load_log** | История загрузок | Журнал учёта поступлений |
|
||
| **registers_organization** | Организации | Картотека компаний |
|
||
| **core_backgroundjob** | Фоновые задачи | Список текущих дел |
|
||
|
||
### 4.2. Таблица «Закупки» (parsers_procurement)
|
||
|
||
**Назначение:** Хранение информации о всех загруженных закупках
|
||
|
||
**Структура (основные поля):**
|
||
|
||
| Поле | Простое объяснение | Пример |
|
||
|------|-------------------|--------|
|
||
| **id** | Внутренний номер записи | 12345 |
|
||
| **реестровый номер** | Официальный номер закупки | 0888200000224000038 |
|
||
| **наименование** | Что закупают | «Поставка офисной бумаги» |
|
||
| **ИНН заказчика** | Налоговый номер того, кто покупает | 7707083893 |
|
||
| **КПП заказчика** | Код причины постановки на учёт | 770701001 |
|
||
| **ОГРН заказчика** | Основной регистрационный номер | 1027700034460 |
|
||
| **название заказчика** | Полное название организации | ПАО СБЕРБАНК |
|
||
| **цена контракта (строка)** | Сумма как текст (символы, пробелы) | «1 500 000 руб.» |
|
||
| **цена контракта (число)** | Сумма как число (для расчётов) | 1500000.00 |
|
||
| **валюта** | В чём измеряется цена | RUB |
|
||
| **способ определения** | Как выбирают поставщика | Электронный аукцион |
|
||
| **дата публикации** | Когда объявили | 15.03.2025 |
|
||
| **дата окончания** | До когда подавать заявку | 25.03.2025 |
|
||
| **статус** | Что сейчас происходит | Приём заявок |
|
||
| **тип закона** | 44-ФЗ или 223-ФЗ | 44-ФЗ |
|
||
| **объект закупки** | Подробное описание | «Бумага офисная формата А4, 80 г/м²» |
|
||
| **ссылка** | Адрес страницы в интернете | https://zakupki.gov.ru/... |
|
||
| **код региона** | Где происходит закупка | 77 (Москва) |
|
||
| **год данных** | За какой год данные | 2025 |
|
||
| **месяц данных** | За какой месяц данные | 3 (март) |
|
||
| **организация из реестра** | Ссылка на карточку организации | 456 |
|
||
| **дата создания** | Когда запись добавили | 26.03.2026 10:30 |
|
||
| **дата обновления** | Когда последний раз меняли | 26.03.2026 12:45 |
|
||
|
||
**Правила хранения:**
|
||
|
||
1. **Уникальность:** Реестровый номер не может повторяться
|
||
2. **Связи:** Запись может быть связана с организацией из справочника
|
||
3. **Индексы:** Для быстрого поиска по ИНН, номеру, дате
|
||
|
||
### 4.3. Таблица «Журнал загрузок» (parsers_load_log)
|
||
|
||
**Назначение:** Учёт всех операций по загрузке данных
|
||
|
||
**Простое объяснение:** Это как дневник, куда записывается:
|
||
- Когда была загрузка
|
||
- Откуда загружали
|
||
- Сколько записей добавили
|
||
- Успешно или с ошибкой
|
||
|
||
| Поле | Объяснение | Пример |
|
||
|------|------------|--------|
|
||
| **batch_id** | Номер партии загрузки | 123 |
|
||
| **источник** | Откуда грузили | procurements (закупки) |
|
||
| **количество** | Сколько записей добавили | 150 |
|
||
| **статус** | Как прошло | success (успешно) |
|
||
| **ошибка** | Что пошло не так (если было) | (пусто, если успешно) |
|
||
| **дата создания** | Когда загружали | 26.03.2026 02:00 |
|
||
|
||
**Источники данных:**
|
||
- `procurements` — Госзакупки (ЕИС)
|
||
- `industrial` — Сертификаты промышленного производства
|
||
- `manufactures` — Реестр производителей
|
||
- `inspections` — Реестр проверок
|
||
- `fns_reports` — Бухгалтерская отчётность ФНС
|
||
|
||
### 4.4. Таблица «Организации» (registers_organization)
|
||
|
||
**Назначение:** Справочник организаций (заказчиков, поставщиков)
|
||
|
||
**Связь с закупками:** Одна организация может быть указана во многих закупках
|
||
|
||
| Поле | Объяснение | Пример |
|
||
|------|------------|--------|
|
||
| **ИНН** | Налоговый номер | 7707083893 |
|
||
| **ОГРН** | Регистрационный номер | 1027700034460 |
|
||
| **Название** | Полное наименование | ПАО СБЕРБАНК |
|
||
| **Тип** | Заказчик / Поставщик | Заказчик |
|
||
|
||
### 4.5. Таблица «Фоновые задачи» (core_backgroundjob)
|
||
|
||
**Назначение:** Отслеживание длительных операций
|
||
|
||
**Простое объяснение:** Как список дел с отметками о выполнении
|
||
|
||
| Поле | Объяснение | Пример |
|
||
|------|------------|--------|
|
||
| **ID задачи** | Уникальный номер | abc-123-def |
|
||
| **Название** | Что делаем | parse_procurements |
|
||
| **Статус** | В процессе / Готово / Ошибка | in_progress |
|
||
| **Прогресс** | Сколько сделано (%) | 50 |
|
||
| **Сообщение** | Комментарий | «Загрузка за март 2025...» |
|
||
| **Результат** | Итог работы | {"saved": 150} |
|
||
|
||
### 4.6. Взаимосвязь таблиц
|
||
|
||
```
|
||
┌─────────────────────────┐
|
||
│ parsers_procurement │
|
||
│ (Закупки) │
|
||
│ │
|
||
│ customer_inn ────────┐ │
|
||
│ customer_ogrn ────┐ │ │
|
||
│ registry_org_id ─┐│ │ │
|
||
└────────────────────┼──┼──┼─┘
|
||
│ │ │
|
||
│ │ │
|
||
┌────────────┘ │ │
|
||
│ │ │
|
||
▼ │ │
|
||
┌───────────────────┐ │ │
|
||
│ registers_ │ │ │
|
||
│ organization │◄──┘ │
|
||
│ (Организации) │◄────┘
|
||
│ │
|
||
│ inn │
|
||
│ ogrn │
|
||
│ name │
|
||
└───────────────────┘
|
||
|
||
┌─────────────────────────┐
|
||
│ parsers_load_log │
|
||
│ (Журнал загрузок) │
|
||
│ │
|
||
│ batch_id ─────────────►│ связывается с
|
||
│ source │ закупками по номеру
|
||
└─────────────────────────┘
|
||
|
||
┌─────────────────────────┐
|
||
│ core_backgroundjob │
|
||
│ (Фоновые задачи) │
|
||
│ │
|
||
│ task_id │ отслеживает выполнение
|
||
│ status │ загрузок
|
||
│ progress │
|
||
└─────────────────────────┘
|
||
```
|
||
|
||
---
|
||
|
||
## 5. Поддерживаемые законы
|
||
|
||
### 5.1. 44-ФЗ — Федеральный закон «О контрактной системе»
|
||
|
||
**Полное название:** Федеральный закон от 05.04.2013 № 44-ФЗ
|
||
**Официальное название:** «О контрактной системе в сфере закупок товаров, работ, услуг для обеспечения государственных и муниципальных нужд»
|
||
|
||
**Кто закупает:**
|
||
- Государственные органы (министерства, ведомства)
|
||
- Бюджетные учреждения (школы, больницы, университеты)
|
||
- Муниципальные образования (городские администрации)
|
||
- Государственные корпорации и компании
|
||
|
||
**Что регулирует:**
|
||
- Планирование закупок (планы-графики)
|
||
- Размещение извещений о закупках
|
||
- Проведение конкурентных процедур (аукционы, конкурсы)
|
||
- Заключение контрактов
|
||
- Исполнение контрактов
|
||
- Мониторинг и аудит закупок
|
||
- Отчётность заказчиков
|
||
|
||
**Основные процедуры:**
|
||
- Электронный аукцион (наиболее распространённый)
|
||
- Открытый конкурс
|
||
- Запрос котировок (для небольших сумм)
|
||
- Запрос предложений
|
||
- Закрытые процедуры (для гостайны)
|
||
|
||
**Финансирование:**
|
||
- Федеральный бюджет
|
||
- Региональные бюджеты
|
||
- Местные бюджеты
|
||
- Внебюджетные средства государственных организаций
|
||
|
||
### 5.2. 223-ФЗ — Федеральный закон о закупках госкомпаний
|
||
|
||
**Полное название:** Федеральный закон от 18.07.2011 № 223-ФЗ
|
||
**Официальное название:** «О закупках товаров, работ, услуг отдельными видами юридических лиц»
|
||
|
||
**Кто закупает:**
|
||
- Государственные корпорации (Росатом, Ростех)
|
||
- Компании с государственным участием (Газпром, Роснефть)
|
||
- Субъекты естественных монополий (РЖД, Транснефть)
|
||
- Бюджетные учреждения за счёт грантов и пожертвований
|
||
- Организации, осуществляющие регулируемые виды деятельности
|
||
|
||
**Что регулирует:**
|
||
- Планирование закупок (планы закупок)
|
||
- Размещение извещений
|
||
- Выбор поставщика
|
||
- Заключение договоров
|
||
- Отчётность о закупках
|
||
|
||
**Особенности:**
|
||
- Больше свободы в выборе процедуры
|
||
- Меньше жёстких требований по сравнению с 44-ФЗ
|
||
- Заказчики сами утверждают положение о закупке
|
||
|
||
### 5.3. Сравнение законов
|
||
|
||
| Критерий | 44-ФЗ | 223-ФЗ |
|
||
|----------|-------|--------|
|
||
| **Заказчики** | Госорганы, бюджетники | Госкомпании, естественные монополии |
|
||
| **Финансирование** | Бюджет | Собственные средства |
|
||
| **Жёсткость** | Жёсткое регулирование | Более гибкий |
|
||
| **Процедуры** | Строго определённые | Заказчик выбирает сам |
|
||
| **Планирование** | Планы-графики | Планы закупок |
|
||
| **Отчётность** | В ЕИС | В ЕИС (сокращённая) |
|
||
| **Контроль** | ФАС, Казначейство | Внутренний контроль |
|
||
|
||
---
|
||
|
||
## 6. Отличия от 94-ФЗ
|
||
|
||
### 6.1. Историческая справка
|
||
|
||
**94-ФЗ** — Федеральный закон от 21.07.2005 № 94-ФЗ
|
||
**Действовал:** с 1 января 2006 по 31 декабря 2013
|
||
**Заменён:** 44-ФЗ с 1 января 2014
|
||
|
||
### 6.2. Ключевые отличия
|
||
|
||
| Аспект | 94-ФЗ (2006–2013) | 44-ФЗ (с 2014) |
|
||
|--------|-------------------|----------------|
|
||
| **Область регулирования** | Только размещение заказов (закупки) | Полный цикл контрактной системы |
|
||
| **Планирование** | Не было обязательного | Планы-графики обязательны |
|
||
| **Нормирование** | Отсутствовало | Нормативы затрат обязательны |
|
||
| **Мониторинг** | Не был регламентирован | Система мониторинга |
|
||
| **Аудит** | Выборочный | Обязательный аудит |
|
||
| **Реестр контрактов** | Частичный | Полный реестр контрактов |
|
||
| **Электронные процедуры** | Начинали внедряться | Полностью электронные |
|
||
| **Акты приёмки** | Не отслеживались | Электронное актирование |
|
||
| **Реестр недобросовестных поставщиков** | Был | Расширен и усовершенствован |
|
||
|
||
### 6.3. Эволюция законодательства
|
||
|
||
```
|
||
94-ФЗ (2006–2013)
|
||
│
|
||
│ Только закупки
|
||
│ Минимум планирования
|
||
│ Бумажные процедуры
|
||
│
|
||
▼
|
||
44-ФЗ (2014–настоящее время)
|
||
│
|
||
│ Полный цикл:
|
||
│ 1. Планирование (планы-графики)
|
||
│ 2. Размещение извещений
|
||
│ 3. Проведение процедур
|
||
│ 4. Заключение контракта
|
||
│ 5. Исполнение контракта
|
||
│ 6. Актирование приёмки
|
||
│ 7. Мониторинг исполнения
|
||
│
|
||
│ Полностью электронные процедуры
|
||
│ Интеграция с другими системами
|
||
│
|
||
▼
|
||
Развитие (постоянные изменения)
|
||
│
|
||
│ Усиление контроля
|
||
│ Цифровизация
|
||
│ Интеграция с ГИС
|
||
```
|
||
|
||
### 6.4. Почему 44-ФЗ называют «контрактной системой»
|
||
|
||
**44-ФЗ регулирует весь жизненный цикл:**
|
||
|
||
1. **Планирование**
|
||
- Заказчик составляет план закупок на 3 года
|
||
- Формирует план-график на год
|
||
- Обосновывает необходимость закупки
|
||
|
||
2. **Размещение извещения**
|
||
- Публикация в ЕИС
|
||
- Указание всех требований
|
||
- Свободный доступ для всех участников
|
||
|
||
3. **Проведение процедуры**
|
||
- Подача заявок в электронном виде
|
||
- Рассмотрение первых частей
|
||
- Проведение аукциона/оценка конкурсов
|
||
- Рассмотрение вторых частей
|
||
|
||
4. **Заключение контракта**
|
||
- Подписание в электронной форме
|
||
- Размещение в реестре контрактов
|
||
- Обеспечение исполнения
|
||
|
||
5. **Исполнение контракта**
|
||
- Поставка товаров/выполнение работ
|
||
- Приёмка комиссией
|
||
- Оплата
|
||
|
||
6. **Актирование**
|
||
- Электронные акты приёмки
|
||
- Интеграция с системой «Электронный бюджет»
|
||
|
||
7. **Мониторинг**
|
||
- Контроль сроков исполнения
|
||
- Отслеживание платежей
|
||
- Выявление нарушений
|
||
|
||
**94-ФЗ регулировал только этапы 2–4** (размещение, проведение, заключение).
|
||
|
||
---
|
||
|
||
## 7. Реестр недобросовестных поставщиков (РНП)
|
||
|
||
### 7.1. Что такое РНП
|
||
|
||
**Официальное название:** Реестр недобросовестных поставщиков (подрядчиков, исполнителей)
|
||
|
||
**Назначение:** Список организаций и ИП, которые уклонились от заключения контракта или расторгли контракт в одностороннем порядке
|
||
|
||
**URL:** https://zakupki.gov.ru/epz/dishonestsupplier/search/results.html
|
||
|
||
### 7.2. Основания для включения в РНП
|
||
|
||
| Основание | Описание |
|
||
|-----------|----------|
|
||
| **Уклонение от заключения контракта** | Победитель не подписал контракт в срок |
|
||
| **Непредоставление обеспечения** | Не предоставил обеспечение исполнения контракта |
|
||
| **Расторжение по инициативе поставщика** | Поставщик сам расторг контракт (через суд) |
|
||
| **Существенное нарушение контракта** | Нарушение условий, выявленное заказчиком |
|
||
|
||
### 7.3. Последствия включения в РНП
|
||
|
||
**Срок действия:** 2 года с даты включения
|
||
|
||
**Ограничения:**
|
||
- Нельзя участвовать в государственных закупках по 44-ФЗ
|
||
- Нельзя участвовать в закупках по 223-ФЗ (для многих заказчиков)
|
||
- Ограничения при участии в концессионных соглашениях
|
||
|
||
### 7.4. Поддерживаемые законы в РНП
|
||
|
||
РНП включает информацию о недобросовестных поставщиках по:
|
||
|
||
| Закон | Описание |
|
||
|-------|----------|
|
||
| **44-ФЗ** | Государственные и муниципальные заказчики |
|
||
| **223-ФЗ** | Госкомпании и субъекты естественных монополий |
|
||
| **ПП РФ-615** | Постановление Правительства о капитальном ремонте |
|
||
|
||
### 7.5. Структура данных РНП
|
||
|
||
**Поля для загрузки:**
|
||
|
||
| Поле | Описание | Пример |
|
||
|------|----------|--------|
|
||
| **Номер записи** | Уникальный номер в реестре | 0123456789 |
|
||
| **Дата включения** | Когда внесли в реестр | 15.03.2025 |
|
||
| **Наименование организации** | Название компании | ООО «Ромашка» |
|
||
| **ИНН** | Налоговый номер | 7701234567 |
|
||
| **ОГРН** | Регистрационный номер | 1027700123456 |
|
||
| **Основание** | Почему включили | Уклонение от заключения контракта |
|
||
| **Заказчик** | Кто инициировал включение | Министерство образования |
|
||
| **Номер закупки** | По какой закупке уклонились | 0888200000224000038 |
|
||
| **Срок действия** | До когда действует запись | 15.03.2027 |
|
||
| **Закон** | 44-ФЗ / 223-ФЗ / ПП-615 | 44-ФЗ |
|
||
|
||
### 7.6. Интеграция с основной системой
|
||
|
||
**Связь с закупками:**
|
||
- По ИНН организации
|
||
- По номеру закупки
|
||
- По дате включения
|
||
|
||
**Использование:**
|
||
- Проверка контрагентов перед участием в закупке
|
||
- Исключение недобросовестных поставщиков из списка потенциальных
|
||
- Анализ рисков при выборе поставщика
|
||
|
||
---
|
||
|
||
## 8. Технические детали
|
||
|
||
### 8.1. Архитектура системы
|
||
|
||
```
|
||
┌─────────────────────────────────────────────────────────────┐
|
||
│ Пользовательский интерфейс │
|
||
│ (REST API / Django Admin) │
|
||
└─────────────────────────────────────────────────────────────┘
|
||
│
|
||
│ HTTP запрос
|
||
▼
|
||
┌─────────────────────────────────────────────────────────────┐
|
||
│ Celery (фоновые задачи) │
|
||
│ parse_procurements │ sync_procurements │
|
||
│ └──────┬────────────┴────────────┬────────────────────────┤
|
||
│ ▼ ▼ │
|
||
│ BackgroundJob (прогресс) │ │
|
||
│ ParserLoadLog (аудит) │ │
|
||
└─────────────────────────────────────────────────────────────┘
|
||
│
|
||
│ Вызов сервиса
|
||
▼
|
||
┌─────────────────────────────────────────────────────────────┐
|
||
│ Сервисный слой │
|
||
│ ProcurementService │
|
||
│ - сохранение закупок (пакетная загрузка) │
|
||
│ - поиск последней даты загрузки │
|
||
│ - поиск по ИНН, по номеру закупки │
|
||
│ │
|
||
│ RegistryOrganizationResolver │
|
||
│ - поиск организаций по ИНН/ОГРН │
|
||
└─────────────────────────────────────────────────────────────┘
|
||
│
|
||
│ Запрос данных
|
||
▼
|
||
┌─────────────────────────────────────────────────────────────┐
|
||
│ Клиентский слой │
|
||
│ ZakupkiClient │
|
||
│ - SOAP API запросы │
|
||
│ - скачивание ZIP-архивов │
|
||
│ - парсинг XML │
|
||
│ - нормализация данных │
|
||
│ │
|
||
│ BaseHTTPClient │
|
||
│ - HTTP запросы │
|
||
│ - поддержка прокси │
|
||
└─────────────────────────────────────────────────────────────┘
|
||
│
|
||
│ SOAP API / HTTPS
|
||
▼
|
||
┌─────────────────────────────────────────────────────────────┐
|
||
│ zakupki.gov.ru │
|
||
│ SOAP API: int44.zakupki.gov.ru │
|
||
│ Веб-сайт: zakupki.gov.ru │
|
||
│ Токен: через Госуслуги (ЕСИА) │
|
||
└─────────────────────────────────────────────────────────────┘
|
||
```
|
||
|
||
### 8.2. Файловая структура проекта
|
||
|
||
```
|
||
src/apps/parsers/
|
||
├── clients/
|
||
│ ├── base.py # Базовый HTTP-клиент
|
||
│ └── zakupki/
|
||
│ ├── __init__.py # ZakupkiClient (основной клиент)
|
||
│ └── schemas.py # DTO схемы данных
|
||
├── models.py # Django модели (таблицы БД)
|
||
├── services.py # Бизнес-логика
|
||
├── tasks.py # Celery задачи
|
||
├── views.py # REST API endpoints
|
||
├── serializers.py # Сериализаторы для API
|
||
├── admin.py # Django Admin интерфейс
|
||
└── migrations/
|
||
├── 0006_add_procurement_model.py
|
||
├── 0010_link_registry_organizations.py
|
||
└── 0011_add_normalized_date_and_amount_fields.py
|
||
```
|
||
|
||
### 8.3. API endpoints
|
||
|
||
**Базовый URL:** `/api/v1/zakupki/`
|
||
|
||
| Метод | Endpoint | Описание |
|
||
|-------|----------|----------|
|
||
| GET | `/api/v1/zakupki/` | Список закупок (с фильтрами) |
|
||
| GET | `/api/v1/zakupki/{id}/` | Детали закупки |
|
||
|
||
**Параметры фильтрации:**
|
||
- `customer_inn` — фильтр по ИНН заказчика
|
||
- `customer_ogrn` — фильтр по ОГРН заказчика
|
||
- `purchase_number` — фильтр по номеру закупки
|
||
- `law_type` — тип закона (44-FZ / 223-FZ)
|
||
- `status` — статус закупки
|
||
- `region_code` — код региона
|
||
- `data_year` — год данных
|
||
- `data_month` — месяц данных
|
||
- `search` — поиск по названию/номеру/заказчику
|
||
|
||
### 8.4. Конфигурация
|
||
|
||
**Переменные окружения:**
|
||
|
||
```bash
|
||
# Токен ЕИС (получается через Госуслуги)
|
||
ZAKUPKI_TOKEN=<ваш токен>
|
||
|
||
# Прокси (опционально)
|
||
PARSER_PROXIES=http://user:pass@proxy1:8080,http://user:pass@proxy2:8080
|
||
|
||
# PostgreSQL
|
||
POSTGRES_HOST=localhost
|
||
POSTGRES_PORT=5432
|
||
POSTGRES_DB=mostovik
|
||
POSTGRES_USER=postgres
|
||
POSTGRES_PASSWORD=<пароль>
|
||
|
||
# Redis (очередь задач)
|
||
CELERY_BROKER_URL=redis://localhost:6379/0
|
||
```
|
||
|
||
### 8.5. Периодические задачи
|
||
|
||
**Celery Beat расписание:**
|
||
|
||
| Задача | Расписание | Параметры |
|
||
|--------|------------|-----------|
|
||
| `sync_procurements` | Ежедневно в 02:00 | region_code="77", law_type="44" |
|
||
|
||
### 8.6. Мониторинг и логирование
|
||
|
||
**Журнал загрузок (ParserLoadLog):**
|
||
- Фиксация каждой загрузки
|
||
- Количество сохранённых записей
|
||
- Статус выполнения (успех/ошибка)
|
||
- Сообщение об ошибке (если была)
|
||
|
||
**Фоновые задачи (BackgroundJob):**
|
||
- Отслеживание прогресса (0–100%)
|
||
- Статус задачи (в процессе/завершено/ошибка)
|
||
- Результат выполнения
|
||
- Время начала и завершения
|
||
|
||
---
|
||
|
||
## Приложения
|
||
|
||
### Приложение А. Коды регионов РФ
|
||
|
||
| Код | Регион | Код | Регион |
|
||
|-----|--------|-----|--------|
|
||
| 01 | Республика Адыгея | 77 | Москва |
|
||
| 02 | Республика Башкортостан | 78 | Санкт-Петербург |
|
||
| 03 | Республика Бурятия | 79 | Еврейская АО |
|
||
| ... | ... | 99 | Все регионы |
|
||
|
||
### Приложение Б. Типы документов 44-ФЗ
|
||
|
||
| Тип документа | Код в системе | Описание |
|
||
|---------------|---------------|----------|
|
||
| Электронный аукцион | epNotificationEF2020 | Извещение о проведении электронного аукциона |
|
||
| Открытый конкурс | epNotificationOK2020 | Извещение о проведении открытого конкурса |
|
||
| Запрос котировок | epNotificationZK2020 | Извещение о проведении запроса котировок |
|
||
| Запрос предложений | epNotificationEP2020 | Извещение о проведении запроса предложений |
|
||
|
||
### Приложение В. Статусы закупок
|
||
|
||
| Статус | Описание |
|
||
|--------|----------|
|
||
| Планирование | Формирование плана-графика |
|
||
| Публикация извещения | Размещение извещения в ЕИС |
|
||
| Подача заявок | Приём заявок от участников |
|
||
| Рассмотрение заявок | Оценка первых частей |
|
||
| Проведение аукциона | Торги на электронной площадке |
|
||
| Заключение контракта | Подписание контракта |
|
||
| Исполнение | Поставка товаров, выполнение работ |
|
||
| Завершено | Контракт исполнен полностью |
|
||
| Отменено | Закупка отменена заказчиком |
|
||
|
||
### Приложение Г. Примеры использования
|
||
|
||
**Пример 1: Получение всех закупок заказчика по ИНН**
|
||
|
||
```bash
|
||
curl -X GET "http://localhost:8000/api/v1/zakupki/?customer_inn=7707083893" -H "Authorization: Bearer <token>"
|
||
```
|
||
|
||
**Пример 2: Поиск закупок по региону и закону**
|
||
|
||
```bash
|
||
curl -X GET "http://localhost:8000/api/v1/zakupki/?region_code=77&law_type=44-FZ" -H "Authorization: Bearer <token>"
|
||
```
|
||
|
||
**Пример 3: SQL-запрос для получения статистики**
|
||
|
||
```sql
|
||
-- Сумма закупок по регионам за 2025 год
|
||
SELECT
|
||
region_code,
|
||
COUNT(*) as количество,
|
||
SUM(max_price_amount) as общая_сумма
|
||
FROM parsers_procurement
|
||
WHERE data_year = 2025
|
||
GROUP BY region_code
|
||
ORDER BY общая_сумма DESC;
|
||
```
|
||
|
||
---
|
||
|
||
**Контакты для вопросов:**
|
||
|
||
- **Документация:** `docs/Техническая справка ЕИС Закупки - 2.md`
|
||
- **Код:** `src/apps/parsers/`
|
||
- **Тесты:** `tests/apps/parsers/`
|
||
|
||
**Дата актуализации:** 26 марта 2026
|