Metadata-Version: 2.1
Name: dars
Version: 1.0.0
Summary: Клиент для сервиса отдачи информации и документов ЕИС
Home-page: https://gitverse.ru/gosplan-v2/dars
License: MIT
Keywords: ЕИС,закупки
Author: Nik M
Author-email: nn.mikh@yandex.ru
Requires-Python: >=3.10,<4.0
Classifier: License :: OSI Approved :: MIT License
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Requires-Dist: boto3 (>=1.34.84,<2.0.0)
Requires-Dist: jinja2 (>=3.1.3,<4.0.0)
Requires-Dist: pydantic-settings[toml] (>=2.2.1,<3.0.0)
Requires-Dist: requests (>=2.31.0,<3.0.0)
Requires-Dist: toml (>=0.10.2,<0.11.0)
Requires-Dist: typer (>=0.12.3,<0.13.0)
Project-URL: Repository, https://gitverse.ru/gosplan-v2/dars
Description-Content-Type: text/markdown

# Сервис отдачи информации и документов

Сервис отдачи информации и документов ЕИС (сокр. СОИ) - это сервис для доступа к документам, размещенным на официальном сайте ЕИС.

> С 01.01.2025 выгрузка документов ЕИС на FTP сервер будет прекращена и доступ будет осуществляться только через COИ.

В ЕИС опубликована [инструкция](https://zakupki.gov.ru/epz/main/public/download/downloadDocument.html?id=40288) по работе с данным сервисом.

Настоящий проект представляет собой клиентский модуль на языке Python для взаимодействия с СОИ.

## Обновление от 20.11.2025

Проект dars версии **v1** реализует обмен с сервисом *getDocsMIS2*, который с октября 2024г прекратил свою деятельность.
Вместо него запущен новый сервис *getDocsLE2*. Дальнейшее развитие проекта *dars* будет направлено на реализацию
обмена с  *getDocsLE2* в рамках версии **v2**.

## Быстрый старт

Установка

```bash
pip install dars
```

Использование CLI

```bash
dars config edit
# --- загрузить НСИ
dars getnsirequest --base=fz44  --nsicode=nsiOrganization --nsikind=all

# --- загрузить документы из заданной подсистемы
#     monthinfo, exectdate и todayinfo - взаимоисключающие опции команды
#     organizations и regnum - взаимоисключающие опции команды
dars getpublicdocsrequest \
  --base=fz44 \
  --subsystemtype=PRIZ \     # тип подсистемы (см. раздел "Типы подсистем")
  --monthinfo=2024-04 \      # запрос на заданный месяц
  --exactdate=2024-04-30 \   # запрос на заданный день
  --todayinfo=0-12 \         # запрос на заданный час
  --offsettimezone=+3 \
  --organizations-data=/path/to/file/with/regNum.csv \
  --regnum=regnum1 \
  --regnum=regnum2 \
  --regnum=regnum3

dars getpublicdocsrequest \
  --base=fz223 \
  --subsystemtype=RI223 \    # тип подсистемы (см. раздел "Типы подсистем")
  --monthinfo=2024-04 \      # запрос на заданный месяц
  --exactdate=2024-04-30 \   # запрос на заданный день
  --todayinfo=0-12 \         # запрос на заданный час
  --offsettimezone=UTC+03:00 \
  --organizations-data=/path/to/file/with/inns-with-kpp.csv \
```

Использование модуля

```python
import dars

s3 = {
    "access_key": "key",
    "secret_key": "secret",
    "endpoint_url": "http://localhost:9002",
    "bucket": "drs",
    "region": "ru-1"
}
client = dars.client(sender='myapp', s3=s3)

keys = client.getNsiRequest(
                base='fz44',
                nsicode='nsiOrganization',
                nsikind='all',
		prefix='/fz44/nsi/nsiOrganization'
                )
```

## Типы подсистем

Тип подсистемы используюется в команде `dars getpublicdocsrequest --subsystemtype=SUBSYSTEMTYPE`.

Перечень типов подсистем в соответствии со *схемой 14.2 интеграция 2*

```
# --- base=fz44
BTK - Библиотека типовых контрактов;
PRIZ - Подсистема размещения извещений (без протоколов со сведениями об участниках);
PRIZP - Подсистема размещения извещений (протоколы со сведениями об участниках);
RPEC - Подсистема заключения контрактов;
RPGZ - Реестр планов графиков с 2020 года;
RPNZ - Реестр правил нормирования закупок;
RDI - Реестр дополнительной информации о закупках и контрактах;
RGK - реестр контрактов;
RBG - реестр независимой гарантий;
EA - Электронное актирование;
UR - Односторонний отказ;
RJ - Реестр жалоб;
RPP - Реестр плановых проверок;
RVP - Реестр внеплановых проверок;
RRK - Реестр результатов контроля;
RRA - Реестр результатов аудита;
RNP - Реестр недобросовестных поставщиков;
RKPO - Реестр квалифицированных подрядных организаций;
PPRF615 - Реестр извещений и протоколов 615;
RD615 - Реестр договоров 615;
LKOK - Личный кабинет органа контроля;
OZ - Отчеты заказчика

# --- base=fz223
RD223 - Реестр договоров;
RJ223 - Реестр жалоб;
RPP223 - Реестр плановых проверок;
RPZ223 - Реестр планов закупок;
RI223 - Реестр извещений о закупках;
RZ223 - Реестр заказчиков;
OV223 - Информация об объеме выручки;
TPOZ223 - Типовые положения о закупках;
POZ223 - Положения о закупках;
RNP223 - Реестр недобросовестных поставщиков;
OD223 - Отчетность по договорам;
IPVP223 - Годовые отчеты ИПВП;
MSP223 - Годовые отчеты МСП;
POM223 - Подсистема оценки и мониторинга;
RBG223 - Реестр независимых гарантий;
TRU223 - Перечни ТРУ
```

## Особенности реализации

### Ошибка в getPublicDocsResponse

В файле схемы *GetDocsWS/GetDocsMIS/GetDocsMIS-ws-api.xsd* имеется схема *getPublicDocsResponse*,
которая описывает ответ от СОИ с публичными документами: закупки, контракты и т.п.

До версии 14.1.7 интеграция 1 в схеме *getPublicDocsResponse* имеется ошибка:
*dataInfo/orgzanizations44DocsInfo* вместо *dataInfo/organizations44DocsInfo*. Аналогично для 223.

