Files
state-corp-backend/ТЕХНИЧЕСКОЕ_ОПИСАНИЕ.md
Aleksandr Meshchriakov 8ed3e1175c
Some checks failed
CI/CD Pipeline / Code Quality Checks (push) Failing after 5m5s
CI/CD Pipeline / Run Tests (push) Failing after 5m5s
CI/CD Pipeline / Build Docker Images (push) Has been skipped
CI/CD Pipeline / Push to Gitea Registry (push) Has been skipped
CI/CD Pipeline / Deploy to Server (push) Has been skipped
Add initial implementations for forms and organization apps with serializers, factories, and admin configurations
2026-02-17 09:26:08 +01:00

1802 lines
137 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# ТЕХНИЧЕСКОЕ ОПИСАНИЕ ПРОГРАММНОГО КОМПЛЕКСА УЧЁТА И ОБРАБОТКИ ОТЧЁТНЫХ ФОРМ ГОСКОРПОРАЦИЙ (STATE CORP BACKEND)
**Версия документа:** 1.0
**Статус:** Утверждённая редакция
**Дата разработки:** 09.02.2026
Настоящее техническое описание устанавливает назначение, состав, структуру, программно‑технологические решения и правила эксплуатации программного комплекса **State Corp Backend**, а также требования к форматам входных данных. Документ предназначен для заказчика, эксплуатирующих подразделений и команд сопровождения.
---
## СОДЕРЖАНИЕ
1. [Общие сведения о программном обеспечении](#1-общие-сведения-о-программном-обеспечении)
2. [Описание программной реализации моделей информационного обмена и сбора данных](#2-описание-программной-реализации-моделей-информационного-обмена-и-сбора-данных)
3. [Программно-технологические решения по систематизации и обработке данных](#3-программно-технологические-решения-по-систематизации-и-обработке-данных)
4. [Структура базы данных](#4-структура-базы-данных)
5. [Архитектура программного интерфейса (API)](#5-архитектура-программного-интерфейса-api)
6. [Механизмы обеспечения надёжности и отказоустойчивости](#6-механизмы-обеспечения-надёжности-и-отказоустойчивости)
7. [Порядок развёртывания и испытаний](#7-порядок-развёртывания-и-испытаний)
8. [Заключение](#8-заключение)
9. [Приложение А (обязательное). Форматы входных Excel-шаблонов](#приложение-а-обязательное-форматы-входных-excel-шаблонов)
10. [Приложение Б (рекомендуемое). Примеры входных файлов](#приложение-б-рекомендуемое-примеры-входных-файлов)
11. [Приложение В (справочное). Справочник показателей](#приложение-в-справочное-справочник-показателей)
---
## 1. ОБЩИЕ СВЕДЕНИЯ О ПРОГРАММНОМ ОБЕСПЕЧЕНИИ
### 1.1. Назначение системы
Программный комплекс **State Corp Backend** предназначен для централизованного приёма, валидации, систематизации и хранения отчётных данных, предоставляемых предприятиями в рамках форм Ф1…Ф6. Система обеспечивает полный цикл работы с данными: от загрузки исходных файлов Excel до предоставления унифицированного API для дальнейшей аналитики и интеграции с внешними контурами.
Ключевая особенность решения — ориентация на **достоверность и воспроизводимость** результата. Каждый пакет данных получает идентификатор загрузки (`load_batch`), что позволяет однозначно прослеживать происхождение и последовательность изменений, формировать регистры контроля, проводить сверку и повторные выгрузки при необходимости.
Система рассчитана на эксплуатацию в корпоративном и ведомственном контуре. Реализованы стандартизированные механизмы журналирования, фоновой обработки, контроля целостности и унифицированной выдачи ошибок, а также предусмотрены инструменты мониторинга (healthcheck, readiness/liveness probes), необходимые для промышленной эксплуатации и оркестрации.
### 1.2. Используемый технологический стек
Разработка выполнена на базе устойчивого и зрелого стека, обеспечивающего надёжность, масштабируемость и соответствие требованиям безопасности и сопровождения:
| Компонент | Версия | Назначение |
|-----------|--------|------------|
| Операционная система | Astra Linux 1.8 / Linux x86_64 | Целевой контур эксплуатации и сопровождения |
| Язык программирования | Python 3.11.2 | Основной язык серверной логики |
| Веб-фреймворк | Django 3.2.25 | ORM, маршрутизация, управление приложением |
| REST API | Django REST Framework 3.14.0 | Реализация REST интерфейса |
| СУБД | PostgreSQL 15.10 | Реляционное хранение и транзакционность |
| Очередь задач | Celery 5.3.6 | Асинхронная обработка больших загрузок |
| Брокер / кэш | Redis 7.x | Хранилище задач и кеширование |
| Веб-сервер | Apache 2.4.57 | Обслуживание HTTP/HTTPS трафика |
| WSGI | Gunicorn 21.2.0 | Исполнение Pythonприложения |
| Документация API | drf-yasg 1.21.10 | Swagger/OpenAPI спецификация |
| Excelпарсинг | openpyxl 3.1.5 | Потоковое чтение Excel (.xlsx) |
Выбор компонентов обусловлен их стабильностью, широким использованием в промышленной эксплуатации и высокой готовностью к сопровождению в корпоративных контурах.
### 1.3. Библиотеки для обработки и валидации данных
| Библиотека / модуль | Версия | Назначение |
|---------------------|--------|------------|
| openpyxl | 3.1.5 | Потоковый парсинг Excel, чтение больших файлов |
| pandas | 2.0.3 | Аналитические преобразования (по необходимости) |
| django-filter | 23.5 | Стандартизованная фильтрация в API |
| djangorestframework-simplejwt | 5.3.1 | JWTаутентификация |
| django-redis | 5.4.0 | Кэш и синхронизация фоновых задач |
| celery / django-celery-results | 5.3.6 / 2.5.1 | Управление задачами и хранение результатов |
| drf-yasg | 1.21.10 | Генерация OpenAPI и Swagger UI |
### 1.4. Термины и сокращения
| Термин | Определение |
|--------|------------|
| Форма Ф1…Ф6 | Утверждённые отчётные формы предприятий |
| `load_batch` | Идентификатор пакета загрузки данных |
| Парсер | Программный модуль обработки Excelфайла |
| TrackedTask | Базовый класс Celeryзадач с отслеживанием прогресса |
| BackgroundJob | Модель статусов фоновых задач |
---
## 2. ОПИСАНИЕ ПРОГРАММНОЙ РЕАЛИЗАЦИИ МОДЕЛЕЙ ИНФОРМАЦИОННОГО ОБМЕНА И СБОРА ДАННЫХ
### 2.1. Архитектура подсистемы загрузки и парсинга
Подсистема загрузки данных построена по модульному принципу. Для каждой формы отчётности предусмотрен отдельный парсер, использующий общий базовый механизм `BaseExcelParser`. Такой подход обеспечивает единый стандарт обработки данных, снижает стоимость сопровождения и позволяет расширять систему новыми формами без пересмотра архитектуры.
Общий поток обработки:
1. Пользователь загружает Excelфайл через API.
2. Для небольших файлов выполняется синхронная обработка, для крупных файлов — постановка задачи в очередь Celery.
3. Базовый парсер читает Excel в потоковом режиме (`read_only=True`).
4. Выполняется построчная валидация и нормализация полей (ИНН, ОГРН, КПП, ОКПО).
5. Создаются или обновляются справочные записи организаций.
6. Формируется набор записей формы с привязкой к `load_batch`.
Фрагмент базового парсера, демонстрирующий ключевую механику обработки:
```python
class BaseExcelParser(ABC, Generic[T]):
def parse(self, file: UploadedFile | BytesIO) -> ParseResult:
batch_id = self.get_next_batch_id()
result = ParseResult(batch_id=batch_id)
try:
self._load_workbook(file)
self._column_mappings = self.get_column_mappings()
for row_num in range(self.DATA_START_ROW, self._sheet.max_row + 1):
row_data = self._parse_row(row_num)
if row_data is None:
continue
errors = self._validate_row(row_data)
if errors:
result.errors.append(
RowValidationError(
row=row_num,
inn=row_data.inn,
kpp=row_data.kpp,
organization_name=row_data.organization_name,
errors=errors,
)
)
result.skipped_count += 1
continue
try:
self.create_record(row_data, batch_id)
result.loaded_count += 1
except Exception as e:
logger.exception(f"Ошибка создания записи для строки {row_num}")
result.errors.append(
RowValidationError(
row=row_num,
inn=row_data.inn,
kpp=row_data.kpp,
organization_name=row_data.organization_name,
errors=[FieldError(field="__all__", message=str(e))],
)
)
result.skipped_count += 1
finally:
if self._workbook:
self._workbook.close()
return result
```
### 2.2. Алгоритмы загрузки данных по ключевым формам
#### 2.2.1. Форма Ф1 (выпуск продукции)
Форма Ф1 содержит производственные показатели: объёмы военной и гражданской продукции, НИОКР, кадровые показатели. Маппинг колонок задаётся декларативно и соответствует утверждённому шаблону Excel.
```python
class FormF1Parser(BaseExcelParser[FormF1Record]):
def get_column_mappings(self) -> list[ColumnMapping]:
return [
ColumnMapping(4, "Выпуск военной продукции (факт.)", "military_output_actual", field_type="decimal"),
ColumnMapping(5, "Военная на внутренний рынок (факт.)", "military_domestic_actual", field_type="decimal"),
ColumnMapping(6, "Военная на экспорт (факт.)", "military_export_actual", field_type="decimal"),
ColumnMapping(7, "Выпуск гражданской продукции (факт.)", "civilian_output_actual", field_type="decimal"),
ColumnMapping(8, "Гражданская на внутренний рынок (факт.)", "civilian_domestic_actual", field_type="decimal"),
ColumnMapping(9, "Гражданская на экспорт (факт.)", "civilian_export_actual", field_type="decimal"),
ColumnMapping(10, "Высокотехнологичная продукция (факт.)", "hightech_output_actual", field_type="decimal"),
ColumnMapping(11, "Высокотехнологичная на внутренний рынок (факт.)", "hightech_domestic_actual", field_type="decimal"),
ColumnMapping(12, "Высокотехнологичная на экспорт (факт.)", "hightech_export_actual", field_type="decimal"),
ColumnMapping(13, "Объём НИОКР (факт.)", "rd_volume_actual", field_type="decimal"),
ColumnMapping(14, "НИОКР в интересах обороны (факт.)", "rd_defense_actual", field_type="decimal"),
]
```
#### 2.2.2. Форма Ф2 (бухгалтерский баланс)
Форма Ф2 — наиболее объёмная по структуре. Для крупных файлов применяется фоновая обработка, исключающая тайм‑ауты на стороне клиента.
```python
@shared_task(bind=True, base=TrackedTask)
def process_form_f2_file(self, file_content: bytes, file_name: str) -> dict:
from io import BytesIO
file_io = BytesIO(file_content)
parser = FormF2Parser()
result = parser.parse(file_io)
return result.to_dict()
```
#### 2.2.3. Формы Ф5 и Ф6 (оборудование)
Формы Ф5 и Ф6 ориентированы на детальную и агрегированную инвентаризацию оборудования. В системе предусмотрены типы полей `bool`, `date`, `decimal`, что обеспечивает корректную интерпретацию признаков и дат ввода в эксплуатацию.
### 2.3. Механизмы контроля качества и безопасной загрузки
#### 2.3.1. Валидация ключевых идентификаторов
Стандартные проверки реализованы на уровне базового парсера и исключают попадание некорректных идентификаторов в БД:
```python
def validate_inn(value: str | None) -> tuple[bool, str]:
if not value:
return False, "ИНН обязателен"
cleaned = re.sub(r"\D", "", str(value))
if len(cleaned) not in (10, 12):
return False, f"ИНН должен содержать 10 или 12 цифр, получено {len(cleaned)}"
return True, ""
```
#### 2.3.2. Идентификация пакетов и прослеживаемость
Каждая загрузка формирует уникальный `load_batch`. Это позволяет вести историю, сравнивать данные по периодам, быстро изолировать ошибочный пакет и выполнять повторную обработку.
#### 2.3.3. Фоновая обработка и контроль прогресса
Для тяжёлых файлов используется `TrackedTask`, автоматически создающий записи `BackgroundJob` и позволяющий пользователю получать прогресс в API:
```python
class TrackedTask(TimedTask):
def before_start(self, task_id, args, kwargs):
super().before_start(task_id, args, kwargs)
from apps.core.services import BackgroundJobService
user_id = kwargs.get("user_id")
BackgroundJobService.create_job(
task_id=task_id,
task_name=self.name,
user_id=user_id,
meta={"args": str(args)[:500], "kwargs": str(kwargs)[:500]},
)
job = BackgroundJobService.get_by_task_id(task_id)
job.mark_started()
```
---
## 3. ПРОГРАММНО-ТЕХНОЛОГИЧЕСКИЕ РЕШЕНИЯ ПО СИСТЕМАТИЗАЦИИ И ОБРАБОТКЕ ДАННЫХ
### 3.1. Слой хранения данных (База данных)
#### 3.1.1. СУБД PostgreSQL
В качестве центра хранения используется PostgreSQL 15.10. Выбор обусловлен следующими факторами:
1. поддержка ACIDтранзакций и строгой целостности данных;
2. эффективная индексация и масштабируемость при росте объёма отчётных записей;
3. возможности резервного копирования и репликации;
4. подтверждённая стабильность в промышленной эксплуатации.
#### 3.1.2. Проектирование моделей данных и миксины
Слой моделей построен вокруг набора типовых миксинов (`apps.core.mixins`), которые стандартизируют общие поля и поведение. Это обеспечивает единый формат аудита и упрощает поддержку.
```python
class TimestampMixin(models.Model):
created_at = models.DateTimeField(
_("создано"),
auto_now_add=True,
db_index=True,
help_text=_("Дата и время создания записи"),
)
updated_at = models.DateTimeField(
_("обновлено"),
auto_now=True,
help_text=_("Дата и время последнего обновления"),
)
class Meta:
abstract = True
```
### 3.2. Сервисный слой и бизнес-логика
Сервисный слой реализует унифицированный интерфейс CRUD и массовых операций. Это позволяет централизовать бизнес‑правила и переиспользовать их в API и фоновых задачах.
```python
class BaseService(Generic[M]):
model: type[M]
@classmethod
def get_queryset(cls) -> QuerySet[M]:
return cls.model.objects.all()
@classmethod
@transaction.atomic
def create(cls, **kwargs: Any) -> M:
return cls.model.objects.create(**kwargs)
@classmethod
@transaction.atomic
def update(cls, instance: M, **kwargs: Any) -> M:
for field, value in kwargs.items():
setattr(instance, field, value)
update_fields = set(kwargs.keys())
if hasattr(instance, "updated_at"):
update_fields.add("updated_at")
instance.save(update_fields=list(update_fields))
return instance
```
Дополнительно реализован миксин массовых операций для оптимизации загрузки больших массивов данных:
```python
class BulkOperationsMixin:
@classmethod
@transaction.atomic
def bulk_create_chunked(
cls,
instances: list,
*,
chunk_size: int = 500,
ignore_conflicts: bool = False,
update_conflicts: bool = False,
update_fields: list[str] | None = None,
unique_fields: list[str] | None = None,
) -> int:
total_created = 0
for i in range(0, len(instances), chunk_size):
chunk = instances[i : i + chunk_size]
created = cls.model.objects.bulk_create(chunk, ignore_conflicts=ignore_conflicts)
total_created += len(created)
return total_created
```
---
## 4. СТРУКТУРА БАЗЫ ДАННЫХ
### 4.1. Общие сведения о схеме данных
База данных формируется по нормализованной схеме, где справочник организаций вынесен в отдельную сущность, а все формы отчётности используют внешнюю связь. Такая структура обеспечивает консистентность, минимизирует дублирование и упрощает ведение справочной информации.
#### 4.1.1. Перечень таблиц базы данных
| № | Имя таблицы | Назначение | Источник данных | Примерный объём |
|---|-------------|------------|-----------------|-----------------|
| 1 | `organization_organization` | Справочник организаций | Все формы | десятки тысяч |
| 2 | `form_1_formf1record` | Ф1: выпуск продукции | Excelформы | десятки тысяч |
| 3 | `form_2_formf2record` | Ф2: бухгалтерский баланс | Excelформы | десятки тысяч |
| 4 | `form_3_formf3record` | Ф3: кадры и оборудование | Excelформы | десятки тысяч |
| 5 | `form_4_formf4record` | Ф4: сводные финансы | Excelформы | десятки тысяч |
| 6 | `form_5_formf5record` | Ф5: инвентаризация оборудования | Excelформы | сотни тысяч |
| 7 | `form_6_formf6record` | Ф6: возрастная структура | Excelформы | десятки тысяч |
| 8 | `core_backgroundjob` | Статусы фоновых задач | Системные | тысячи |
| 9 | `users` | Учётные записи пользователей | Системные | сотни |
| 10 | `profiles` | Профили пользователей | Системные | сотни |
#### 4.1.2. Общие правила именования
| Элемент | Конвенция | Пример |
|---------|-----------|--------|
| Таблицы | `{app_label}_{model}` | `form_2_formf2record` |
| Первичные ключи | `id` типа UUID | `id UUID PRIMARY KEY` |
| Внешние ключи | `{entity}_id` | `organization_id` |
| Временные метки | `created_at`, `updated_at` | `created_at TIMESTAMP WITH TIME ZONE` |
| Индексы | `{table}_{fields}_idx` | `form_1_form_organiz_f99cbd_idx` |
#### 4.1.3. Типовые поля
| Поле | Тип | Описание |
|------|-----|----------|
| `id` | UUID | Уникальный идентификатор записи |
| `created_at` | TIMESTAMP | Дата и время создания |
| `updated_at` | TIMESTAMP | Дата и время обновления |
| `load_batch` | INTEGER | Идентификатор пакета загрузки |
| `organization_id` | UUID | Ссылка на организацию |
### 4.2. Таблица `organization_organization`
**Назначение:** централизованный справочник организаций. Используется всеми формами отчётности и исключает дублирование данных.
**Источник данных:** формы Ф1…Ф6 (автоматическое создание/обновление по ИНН).
#### 4.2.1. Полный перечень полей
| Поле | Тип | Ограничения | Описание |
|------|-----|-------------|----------|
| `id` | UUID | PK | Уникальный идентификатор |
| `name` | VARCHAR(500) | NOT NULL, INDEX | Наименование организации |
| `inn` | VARCHAR(12) | UNIQUE, INDEX | ИНН |
| `ogrn` | VARCHAR(15) | INDEX | ОГРН |
| `kpp` | VARCHAR(9) | — | КПП |
| `okpo` | VARCHAR(20) | — | ОКПО |
| `created_at` | TIMESTAMP | INDEX | Дата создания |
| `updated_at` | TIMESTAMP | — | Дата обновления |
#### 4.2.2. Модель (фрагмент кода)
```python
class Organization(TimestampMixin, models.Model):
id = models.UUIDField(primary_key=True, default=uuid.uuid4, editable=False)
name = models.CharField(max_length=500, db_index=True)
inn = models.CharField(max_length=12, unique=True, db_index=True)
ogrn = models.CharField(max_length=15, db_index=True, blank=True, default="")
kpp = models.CharField(max_length=9, blank=True, default="")
okpo = models.CharField(max_length=20, blank=True, default="")
```
### 4.3. Таблица `form_1_formf1record`
**Назначение:** хранение показателей формы Ф1 (выпуск продукции, НИОКР, кадры).
#### 4.3.1. Полный перечень полей
| Поле | Тип | Описание |
|------|-----|----------|
| `id` | UUID | Уникальный идентификатор записи |
| `organization_id` | UUID (FK) | Организация |
| `load_batch` | INTEGER | Пакет загрузки |
| `military_output_actual` | DECIMAL(20,2) | Выпуск военной продукции (факт. цены) |
| `military_domestic_actual` | DECIMAL(20,2) | Военная продукция на внутренний рынок (факт.) |
| `military_export_actual` | DECIMAL(20,2) | Военная продукция на экспорт (факт.) |
| `civilian_output_actual` | DECIMAL(20,2) | Выпуск гражданской продукции (факт. цены) |
| `civilian_domestic_actual` | DECIMAL(20,2) | Гражданская продукция на внутренний рынок (факт.) |
| `civilian_export_actual` | DECIMAL(20,2) | Гражданская продукция на экспорт (факт.) |
| `hightech_output_actual` | DECIMAL(20,2) | Высокотехнологичная продукция (факт. цены) |
| `hightech_domestic_actual` | DECIMAL(20,2) | Высокотехнологичная продукция на внутренний рынок (факт.) |
| `hightech_export_actual` | DECIMAL(20,2) | Высокотехнологичная продукция на экспорт (факт.) |
| `rd_volume_actual` | DECIMAL(20,2) | Объём НИОКР (факт. цены) |
| `rd_defense_actual` | DECIMAL(20,2) | НИОКР в интересах обороны (факт.) |
| `military_output_fixed` | DECIMAL(20,2) | Выпуск военной продукции (фикс. цены) |
| `military_domestic_fixed` | DECIMAL(20,2) | Военная продукция на внутренний рынок (фикс.) |
| `military_export_fixed` | DECIMAL(20,2) | Военная продукция на экспорт (фикс.) |
| `civilian_output_fixed` | DECIMAL(20,2) | Выпуск гражданской продукции (фикс. цены) |
| `civilian_domestic_fixed` | DECIMAL(20,2) | Гражданская продукция на внутренний рынок (фикс.) |
| `civilian_export_fixed` | DECIMAL(20,2) | Гражданская продукция на экспорт (фикс.) |
| `hightech_output_fixed` | DECIMAL(20,2) | Высокотехнологичная продукция (фикс. цены) |
| `hightech_domestic_fixed` | DECIMAL(20,2) | Высокотехнологичная продукция на внутренний рынок (фикс.) |
| `hightech_export_fixed` | DECIMAL(20,2) | Высокотехнологичная продукция на экспорт (фикс.) |
| `rd_volume_fixed` | DECIMAL(20,2) | Объём НИОКР (фикс. цены) |
| `rd_defense_fixed` | DECIMAL(20,2) | НИОКР в интересах обороны (фикс.) |
| `avg_employees` | DECIMAL(12,2) | Средняя численность работников |
| `avg_payroll_employees` | DECIMAL(12,2) | Среднесписочная численность работников |
| `payroll_fund` | DECIMAL(20,2) | Фонд начисленной заработной платы |
| `salary_arrears` | DECIMAL(20,2) | Просроченная задолженность по зарплате |
| `created_at` | TIMESTAMP | Дата и время создания |
| `updated_at` | TIMESTAMP | Дата и время обновления |
### 4.4. Таблица `form_2_formf2record`
**Назначение:** бухгалтерский баланс, финансовые результаты и производные показатели.
#### 4.4.1. Полный перечень полей
| Поле | Тип | Описание |
|------|-----|----------|
| `id` | UUID | Уникальный идентификатор записи |
| `organization_id` | UUID (FK) | Организация |
| `load_batch` | INTEGER | Пакет загрузки |
| `intangible_assets` | DECIMAL(20,2) | Нематериальные активы |
| `rd_results` | DECIMAL(20,2) | Результаты исследований и разработок |
| `intangible_search_assets` | DECIMAL(20,2) | Нематериальные поисковые активы |
| `tangible_search_assets` | DECIMAL(20,2) | Материальные поисковые активы |
| `fixed_assets` | DECIMAL(20,2) | Основные средства |
| `profitable_investments` | DECIMAL(20,2) | Доходные вложения в материальные ценности |
| `financial_investments_non_current` | DECIMAL(20,2) | Финансовые вложения (внеоборотные) |
| `deferred_tax_assets` | DECIMAL(20,2) | Отложенные налоговые активы |
| `other_non_current_assets` | DECIMAL(20,2) | Прочие внеоборотные активы |
| `total_non_current_assets` | DECIMAL(20,2) | Итого внеоборотные активы |
| `inventories` | DECIMAL(20,2) | Запасы |
| `vat_on_acquired_assets` | DECIMAL(20,2) | НДС по приобретённым ценностям |
| `receivables` | DECIMAL(20,2) | Дебиторская задолженность |
| `financial_investments_current` | DECIMAL(20,2) | Финансовые вложения (оборотные) |
| `cash_and_equivalents` | DECIMAL(20,2) | Денежные средства и эквиваленты |
| `other_current_assets` | DECIMAL(20,2) | Прочие оборотные активы |
| `total_current_assets` | DECIMAL(20,2) | Итого оборотные активы |
| `total_assets` | DECIMAL(20,2) | Баланс (актив) |
| `authorized_capital` | DECIMAL(20,2) | Уставный капитал |
| `own_shares_bought_back` | DECIMAL(20,2) | Собственные акции, выкупленные у акционеров |
| `revaluation_of_non_current_assets` | DECIMAL(20,2) | Переоценка внеоборотных активов |
| `additional_capital` | DECIMAL(20,2) | Добавочный капитал |
| `reserve_capital` | DECIMAL(20,2) | Резервный капитал |
| `retained_earnings` | DECIMAL(20,2) | Нераспределённая прибыль |
| `total_equity` | DECIMAL(20,2) | Итого капитал и резервы |
| `borrowings_non_current` | DECIMAL(20,2) | Заёмные средства (долгосрочные) |
| `deferred_tax_liabilities` | DECIMAL(20,2) | Отложенные налоговые обязательства |
| `estimated_liabilities_non_current` | DECIMAL(20,2) | Оценочные обязательства (долгосрочные) |
| `other_liabilities_non_current` | DECIMAL(20,2) | Прочие обязательства (долгосрочные) |
| `total_non_current_liabilities` | DECIMAL(20,2) | Итого долгосрочные обязательства |
| `borrowings_current` | DECIMAL(20,2) | Заёмные средства (краткосрочные) |
| `payables` | DECIMAL(20,2) | Кредиторская задолженность |
| `deferred_income` | DECIMAL(20,2) | Доходы будущих периодов |
| `estimated_liabilities_current` | DECIMAL(20,2) | Оценочные обязательства (краткосрочные) |
| `other_liabilities_current` | DECIMAL(20,2) | Прочие обязательства (краткосрочные) |
| `total_current_liabilities` | DECIMAL(20,2) | Итого краткосрочные обязательства |
| `total_liabilities` | DECIMAL(20,2) | Баланс (пассив) |
| `revenue` | DECIMAL(20,2) | Выручка |
| `cost_of_sales` | DECIMAL(20,2) | Себестоимость продаж |
| `gross_profit` | DECIMAL(20,2) | Валовая прибыль |
| `selling_expenses` | DECIMAL(20,2) | Коммерческие расходы |
| `administrative_expenses` | DECIMAL(20,2) | Управленческие расходы |
| `profit_from_sales` | DECIMAL(20,2) | Прибыль от продаж |
| `interest_receivable` | DECIMAL(20,2) | Проценты к получению |
| `interest_payable` | DECIMAL(20,2) | Проценты к уплате |
| `other_income` | DECIMAL(20,2) | Прочие доходы |
| `other_expenses` | DECIMAL(20,2) | Прочие расходы |
| `profit_before_tax` | DECIMAL(20,2) | Прибыль до налогообложения |
| `income_tax` | DECIMAL(20,2) | Текущий налог на прибыль |
| `net_profit` | DECIMAL(20,2) | Чистая прибыль |
| `ebitda` | DECIMAL(20,2) | EBITDA |
| `depreciation` | DECIMAL(20,2) | Амортизация |
| `working_capital` | DECIMAL(20,2) | Оборотный капитал |
| `net_debt` | DECIMAL(20,2) | Чистый долг |
| `total_assets_prev` | DECIMAL(20,2) | Баланс (актив) — прошлый период |
| `total_liabilities_prev` | DECIMAL(20,2) | Баланс (пассив) — прошлый период |
| `revenue_prev` | DECIMAL(20,2) | Выручка — прошлый период |
| `net_profit_prev` | DECIMAL(20,2) | Чистая прибыль — прошлый период |
| `created_at` | TIMESTAMP | Дата и время создания |
| `updated_at` | TIMESTAMP | Дата и время обновления |
### 4.5. Таблица `form_3_formf3record`
**Назначение:** кадровые показатели и оборудование по категориям.
#### 4.5.1. Полный перечень полей
| Поле | Тип | Описание |
|------|-----|----------|
| `id` | UUID | Уникальный идентификатор записи |
| `organization_id` | UUID (FK) | Организация |
| `load_batch` | INTEGER | Пакет загрузки |
| `avg_employees` | DECIMAL(12,2) | Средняя численность работников |
| `production_workers` | DECIMAL(12,2) | Производственный персонал |
| `engineering_workers` | DECIMAL(12,2) | Инженерно‑технические работники |
| `administrative_workers` | DECIMAL(12,2) | Административный персонал |
| `total_equipment` | INTEGER | Всего оборудования |
| `domestic_equipment` | INTEGER | Отечественное оборудование |
| `imported_equipment` | INTEGER | Импортное оборудование |
| `equipment_age_under_5` | INTEGER | Оборудование до 5 лет |
| `equipment_age_5_10` | INTEGER | Оборудование 510 лет |
| `equipment_age_10_15` | INTEGER | Оборудование 1015 лет |
| `equipment_age_15_20` | INTEGER | Оборудование 1520 лет |
| `equipment_age_over_20` | INTEGER | Оборудование свыше 20 лет |
| `physical_wear_percent` | DECIMAL(5,2) | Физический износ, % |
| `utilization_rate` | DECIMAL(5,2) | Коэффициент загрузки |
| `avg_shift_work` | DECIMAL(5,2) | Средняя сменность работы |
| `equipment_needed` | INTEGER | Потребность в оборудовании |
| `workers_needed` | INTEGER | Потребность в кадрах |
| `created_at` | TIMESTAMP | Дата и время создания |
| `updated_at` | TIMESTAMP | Дата и время обновления |
### 4.6. Таблица `form_4_formf4record`
**Назначение:** агрегированные финансовые показатели (РСБУ/МСФО, EBITDA, долговая нагрузка).
#### 4.6.1. Полный перечень полей
| Поле | Тип | Описание |
|------|-----|----------|
| `id` | UUID | Уникальный идентификатор записи |
| `organization_id` | UUID (FK) | Организация |
| `load_batch` | INTEGER | Пакет загрузки |
| `revenue_rsbu` | DECIMAL(20,2) | Выручка (РСБУ) |
| `revenue_ifrs` | DECIMAL(20,2) | Выручка (МСФО) |
| `revenue_prev_rsbu` | DECIMAL(20,2) | Выручка прошлого года (РСБУ) |
| `revenue_prev_ifrs` | DECIMAL(20,2) | Выручка прошлого года (МСФО) |
| `net_profit_rsbu` | DECIMAL(20,2) | Чистая прибыль (РСБУ) |
| `net_profit_ifrs` | DECIMAL(20,2) | Чистая прибыль (МСФО) |
| `gross_profit_rsbu` | DECIMAL(20,2) | Валовая прибыль (РСБУ) |
| `operating_profit_rsbu` | DECIMAL(20,2) | Операционная прибыль (РСБУ) |
| `ebitda_rsbu` | DECIMAL(20,2) | EBITDA (РСБУ) |
| `ebitda_ifrs` | DECIMAL(20,2) | EBITDA (МСФО) |
| `loans_rsbu` | DECIMAL(20,2) | Кредиты и займы (РСБУ) |
| `loans_ifrs` | DECIMAL(20,2) | Кредиты и займы (МСФО) |
| `net_debt_rsbu` | DECIMAL(20,2) | Чистый долг (РСБУ) |
| `net_debt_ifrs` | DECIMAL(20,2) | Чистый долг (МСФО) |
| `debt_to_ebitda` | DECIMAL(10,2) | Долг/EBITDA |
| `total_assets_rsbu` | DECIMAL(20,2) | Активы (РСБУ) |
| `total_assets_ifrs` | DECIMAL(20,2) | Активы (МСФО) |
| `equity_rsbu` | DECIMAL(20,2) | Собственный капитал (РСБУ) |
| `equity_ifrs` | DECIMAL(20,2) | Собственный капитал (МСФО) |
| `roe` | DECIMAL(10,2) | Рентабельность собственного капитала (ROE) |
| `roa` | DECIMAL(10,2) | Рентабельность активов (ROA) |
| `ros` | DECIMAL(10,2) | Рентабельность продаж (ROS) |
| `capex` | DECIMAL(20,2) | Капитальные затраты (CAPEX) |
| `rd_expenses` | DECIMAL(20,2) | Затраты на НИОКР |
| `dividends_paid` | DECIMAL(20,2) | Выплаченные дивиденды |
| `dividend_yield` | DECIMAL(10,2) | Дивидендная доходность |
| `created_at` | TIMESTAMP | Дата и время создания |
| `updated_at` | TIMESTAMP | Дата и время обновления |
### 4.7. Таблица `form_5_formf5record`
**Назначение:** детальная инвентаризация оборудования по каждой единице.
#### 4.7.1. Полный перечень полей
| Поле | Тип | Описание |
|------|-----|----------|
| `id` | UUID | Уникальный идентификатор записи |
| `organization_id` | UUID (FK) | Организация |
| `load_batch` | INTEGER | Пакет загрузки |
| `equipment_id` | VARCHAR(50) | Идентификационный код |
| `inventory_number` | VARCHAR(50) | Инвентарный номер |
| `name` | VARCHAR(500) | Наименование оборудования |
| `model` | VARCHAR(200) | Модель |
| `manufacturer` | VARCHAR(300) | Производитель |
| `country_origin` | VARCHAR(100) | Страна происхождения |
| `is_domestic` | BOOLEAN | Отечественное производство |
| `year_manufacture` | INTEGER | Год выпуска |
| `has_cnc` | BOOLEAN | Наличие ЧПУ |
| `equipment_type` | VARCHAR(200) | Тип оборудования |
| `equipment_category` | VARCHAR(200) | Категория оборудования |
| `commissioning_date` | DATE | Дата ввода в эксплуатацию |
| `location` | VARCHAR(300) | Местонахождение |
| `production_site` | VARCHAR(200) | Производственный участок |
| `utilization_rate` | DECIMAL(5,2) | Коэффициент использования |
| `physical_wear_percent` | DECIMAL(5,2) | Фактический износ, % |
| `is_operational` | BOOLEAN | В рабочем состоянии |
| `requires_repair` | BOOLEAN | Требует ремонта |
| `requires_replacement` | BOOLEAN | Требует замены |
| `initial_cost` | DECIMAL(20,2) | Первоначальная стоимость |
| `residual_value` | DECIMAL(20,2) | Остаточная стоимость |
| `notes` | TEXT | Примечания |
| `created_at` | TIMESTAMP | Дата и время создания |
| `updated_at` | TIMESTAMP | Дата и время обновления |
### 4.8. Таблица `form_6_formf6record`
**Назначение:** сводная возрастная структура оборудования по категориям.
#### 4.8.1. Полный перечень полей
| Поле | Тип | Описание |
|------|-----|----------|
| `id` | UUID | Уникальный идентификатор записи |
| `organization_id` | UUID (FK) | Организация |
| `load_batch` | INTEGER | Пакет загрузки |
| `row_code` | VARCHAR(20) | Код строки |
| `category` | VARCHAR(200) | Категория оборудования |
| `total_equipment` | INTEGER | Всего оборудования |
| `domestic_equipment` | INTEGER | Отечественное оборудование |
| `imported_equipment` | INTEGER | Импортное оборудование |
| `age_under_5` | INTEGER | До 5 лет |
| `age_5_10` | INTEGER | 510 лет |
| `age_10_15` | INTEGER | 1015 лет |
| `age_15_20` | INTEGER | 1520 лет |
| `age_over_20` | INTEGER | Свыше 20 лет |
| `cnc_total` | INTEGER | С ЧПУ всего |
| `cnc_under_5` | INTEGER | С ЧПУ до 5 лет |
| `cnc_5_10` | INTEGER | С ЧПУ 510 лет |
| `cnc_10_15` | INTEGER | С ЧПУ 1015 лет |
| `cnc_15_20` | INTEGER | С ЧПУ 1520 лет |
| `cnc_over_20` | INTEGER | С ЧПУ свыше 20 лет |
| `avg_shift_work` | DECIMAL(5,2) | Средняя сменность работы |
| `utilization_rate` | DECIMAL(5,2) | Коэффициент загрузки |
| `physical_wear_percent` | DECIMAL(5,2) | Физический износ, % |
| `workplaces_without_equipment` | INTEGER | Рабочие места без оборудования |
| `equipment_to_replace` | INTEGER | Оборудование к замене |
| `created_at` | TIMESTAMP | Дата и время создания |
| `updated_at` | TIMESTAMP | Дата и время обновления |
### 4.9. Таблица `core_backgroundjob`
**Назначение:** контроль выполнения фоновых задач и прогресса обработки больших файлов.
#### 4.9.1. Полный перечень полей
| Поле | Тип | Описание |
|------|-----|----------|
| `id` | UUID | Уникальный идентификатор задачи |
| `task_id` | VARCHAR(255) | Идентификатор задачи Celery |
| `task_name` | VARCHAR(255) | Полное имя задачи |
| `status` | VARCHAR(20) | Статус выполнения |
| `progress` | INTEGER | Прогресс в процентах |
| `progress_message` | VARCHAR(500) | Сообщение о прогрессе |
| `result` | JSON | Результат выполнения |
| `error` | TEXT | Текст ошибки |
| `traceback` | TEXT | Traceback ошибки |
| `started_at` | TIMESTAMP | Время начала |
| `completed_at` | TIMESTAMP | Время завершения |
| `user_id` | INTEGER | Пользователь (опционально) |
| `meta` | JSON | Дополнительные метаданные |
| `created_at` | TIMESTAMP | Дата и время создания |
| `updated_at` | TIMESTAMP | Дата и время обновления |
### 4.10. Таблица `users`
**Назначение:** учётные записи пользователей системы (аутентификация, авторизация, доступ в админ‑интерфейс и API).
#### 4.10.1. Полный перечень полей
| Поле | Тип | Описание |
|------|-----|----------|
| `id` | BIGINT | Уникальный идентификатор пользователя |
| `password` | VARCHAR(128) | Хэш пароля |
| `last_login` | TIMESTAMP | Дата и время последнего входа |
| `is_superuser` | BOOLEAN | Признак суперпользователя |
| `username` | VARCHAR(150) | Имя пользователя (логин) |
| `is_staff` | BOOLEAN | Доступ в админ‑интерфейс |
| `is_active` | BOOLEAN | Активность учётной записи |
| `date_joined` | TIMESTAMP | Дата регистрации |
| `email` | VARCHAR(254) | Email пользователя (уникальный) |
| `phone` | VARCHAR(20) | Телефон (международный формат) |
| `is_verified` | BOOLEAN | Признак подтверждения email |
| `created_at` | TIMESTAMP | Дата и время создания |
| `updated_at` | TIMESTAMP | Дата и время обновления |
Примечание: связи с группами и разрешениями реализуются через промежуточные таблицы, автоматически создаваемые Django ORM.
### 4.11. Таблица `profiles`
**Назначение:** расширенные профильные данные пользователя (ФИО, био, аватар, дата рождения).
#### 4.11.1. Полный перечень полей
| Поле | Тип | Описание |
|------|-----|----------|
| `id` | BIGINT | Уникальный идентификатор профиля |
| `user_id` | BIGINT (FK) | Ссылка на пользователя |
| `first_name` | VARCHAR(50) | Имя |
| `last_name` | VARCHAR(50) | Фамилия |
| `bio` | TEXT | Описание / биография |
| `avatar` | VARCHAR(100) | Путь к файлу аватара |
| `date_of_birth` | DATE | Дата рождения |
| `created_at` | TIMESTAMP | Дата и время создания |
| `updated_at` | TIMESTAMP | Дата и время обновления |
### 4.12. Диаграмма связей между таблицами
```mermaid
erDiagram
ORGANIZATION ||--o{ FORM_F1_RECORD : "organization_id"
ORGANIZATION ||--o{ FORM_F2_RECORD : "organization_id"
ORGANIZATION ||--o{ FORM_F3_RECORD : "organization_id"
ORGANIZATION ||--o{ FORM_F4_RECORD : "organization_id"
ORGANIZATION ||--o{ FORM_F5_RECORD : "organization_id"
ORGANIZATION ||--o{ FORM_F6_RECORD : "organization_id"
USERS ||--|| PROFILES : "user_id"
USERS ||..o{ CORE_BACKGROUNDJOB : "user_id (опц.)"
```
---
## 5. АРХИТЕКТУРА ПРОГРАММНОГО ИНТЕРФЕЙСА (API)
### 5.1. Общие сведения
API реализован на базе Django REST Framework и соответствует RESTподходу. Все запросы и ответы используют JSON, кодировка UTF8. Версионирование задано в URLпути.
**Базовый URL:** `https://{hostname}/api/v1/`
**Документация:** Swagger UI доступна на корневом URL (`/`).
#### 5.1.1. Принципы взаимодействия
1. ресурсы представлены как коллекции и отдельные сущности;
2. используется стандартный набор HTTPметодов (GET/POST/PUT/PATCH/DELETE);
3. ответы унифицированы, включая пагинацию и ошибки;
4. все изменения данных фиксируются на уровне модели через поля `created_at/updated_at`.
#### 5.1.2. Формат запросов
Обязательные заголовки:
```http
Authorization: Bearer <access_token>
Content-Type: application/json
Accept: application/json
```
Параметры пагинации (по умолчанию):
| Параметр | Тип | По умолчанию | Описание |
|----------|-----|--------------|----------|
| `page` | integer | 1 | Номер страницы |
| `page_size` | integer | 20 | Количество записей (1100) |
#### 5.1.3. Формат ответов
Успешные ответы возвращаются в едином формате:
```json
{
"success": true,
"data": [
{"id": "...", "field": "value"}
],
"errors": null,
"meta": {
"pagination": {
"page": 1,
"page_size": 20,
"total_count": 100,
"total_pages": 5,
"has_next": true,
"has_previous": false
}
}
}
```
### 5.2. Аутентификация и авторизация
Система использует JWT (SimpleJWT). Параметры безопасности:
1. Access Token — 60 минут.
2. Refresh Token — 7 дней.
3. Ротация refreshтокена включена.
4. Алгоритм подписи HS256.
Фрагмент модели пользователя:
```python
class User(AbstractUser):
first_name = None
last_name = None
email = models.EmailField(unique=True)
phone = models.CharField(max_length=20, blank=True, null=True)
is_verified = models.BooleanField(default=False)
USERNAME_FIELD = "email"
REQUIRED_FIELDS = ["username"]
```
Модель профиля:
```python
class Profile(models.Model):
user = models.OneToOneField(User, on_delete=models.CASCADE, related_name="profile")
first_name = models.CharField(max_length=50, blank=True, null=True)
last_name = models.CharField(max_length=50, blank=True, null=True)
bio = models.TextField(blank=True, null=True)
avatar = models.ImageField(upload_to="avatars/", blank=True, null=True)
```
### 5.3. Структура API
| Группа | Базовый путь | Назначение |
|--------|-------------|------------|
| Пользователи | `/api/v1/users/` | регистрация, авторизация, профиль |
| Организации | `/api/v1/organizations/` | справочник организаций |
| Формы | `/api/v1/forms/f1/``/api/v1/forms/f6/` | отчётные формы |
| Задачи | `/api/v1/jobs/` | мониторинг фоновых задач |
| Health | `/health/` | мониторинг доступности |
### 5.4. API пользователей и профилей
**Регистрация:** `POST /api/v1/users/register/`
**Вход:** `POST /api/v1/users/login/`
**Обновление токена:** `POST /api/v1/users/token/refresh/`
**Профиль:** `GET /api/v1/users/profile/`
### 5.5. API организаций
**Список:** `GET /api/v1/organizations/`
**Детали:** `GET /api/v1/organizations/{id}/`
Фильтры: `name`, `inn`, `ogrn`.
### 5.6. API формы Ф1
**Загрузка:** `POST /api/v1/forms/f1/upload/`
**Список записей:** `GET /api/v1/forms/f1/records/`
**Детали:** `GET /api/v1/forms/f1/records/{id}/`
Для крупных файлов выполняется фоновая обработка с возвратом `task_id`.
### 5.7. API формы Ф2
**Загрузка:** `POST /api/v1/forms/f2/upload/`
**Список записей:** `GET /api/v1/forms/f2/records/`
**Детали:** `GET /api/v1/forms/f2/records/{id}/`
Поддерживается фильтр `batch_id` для выборки по пакету загрузки.
### 5.8. API формы Ф3
**Загрузка:** `POST /api/v1/forms/f3/upload/`
**Список записей:** `GET /api/v1/forms/f3/records/`
**Детали:** `GET /api/v1/forms/f3/records/{id}/`
### 5.9. API формы Ф4
**Загрузка:** `POST /api/v1/forms/f4/upload/`
**Список записей:** `GET /api/v1/forms/f4/records/`
**Детали:** `GET /api/v1/forms/f4/records/{id}/`
### 5.10. API формы Ф5 и Ф6
Форма Ф5:
1. `POST /api/v1/forms/f5/upload/`
2. `GET /api/v1/forms/f5/records/`
Форма Ф6:
1. `POST /api/v1/forms/f6/upload/`
2. `GET /api/v1/forms/f6/records/`
### 5.11. Коды ответов HTTP и формат ошибок
Единый формат ошибок реализован через `custom_exception_handler`:
```json
{
"success": false,
"data": null,
"errors": [
{
"code": "validation_error",
"message": "Validation failed",
"details": {
"fields": {
"inn": ["ИНН обязателен"]
}
}
}
],
"meta": {
"request_id": "3f6d4a3a-2c5f-4a0a-a0d6-4d3b78f7c60a"
}
}
```
Типовые коды HTTP:
| Код | Описание |
|-----|----------|
| 200 | Успешный запрос |
| 201 | Ресурс создан |
| 202 | Задача принята в очередь |
| 400 | Ошибка валидации |
| 401 | Неавторизован |
| 403 | Недостаточно прав |
| 404 | Ресурс не найден |
| 500 | Внутренняя ошибка |
---
## 6. МЕХАНИЗМЫ ОБЕСПЕЧЕНИЯ НАДЁЖНОСТИ И ОТКАЗОУСТОЙЧИВОСТИ
### 6.1. Система фоновых задач (BackgroundJobs)
Асинхронная обработка крупных файлов исключает блокировку API и повышает масштабируемость. Каждая задача регистрируется в таблице `core_backgroundjob`, что позволяет:
1. получать статус в реальном времени;
2. отображать прогресс и сообщения;
3. фиксировать ошибки и трассировки;
4. обеспечивать контроль исполнения на уровне пользователя.
### 6.2. Инкрементальная загрузка и идентификация пакетов
Механизм `load_batch` обеспечивает последовательную нумерацию пакетов загрузки. В результате:
1. каждое обновление формы идентифицируется как самостоятельный пакет;
2. возможна аналитика по временным срезам;
3. упрощается повторная загрузка без потери предшествующих данных.
### 6.3. Валидация, дедупликация и целостность
1. уникальность справочника организаций обеспечивается ограничением по ИНН;
2. валидация ИНН/ОГРН/КПП/ОКПО выполняется на уровне парсера;
3. все операции записи выполняются в транзакции;
4. ошибочные строки не прерывают общий процесс, фиксируются в `ParseResult`.
### 6.4. Логирование, мониторинг и health-check
Система использует middleware `RequestIDMiddleware` для трассировки запросов, а также реализует endpoints мониторинга:
1. `GET /health/` — комплексная проверка;
2. `GET /health/live/` — liveness probe;
3. `GET /health/ready/` — readiness probe.
### 6.5. Требования к информационной безопасности
В целях обеспечения защиты данных и устойчивости работы системы должны соблюдаться организационные и технические меры безопасности, определяемые внутренними регламентами заказчика и действующим законодательством. На уровне программной реализации предусмотрены следующие базовые механизмы, обязательные к использованию при эксплуатации:
1. доступ к защищённым ресурсам осуществляется по JWTтокену (заголовок `Authorization: Bearer <token>`), время жизни accessтокена — 60 минут, refreshтокена — 7 дней;
2. разграничение доступа реализовано на уровне прав пользователя; доступ к административным функциям имеет только пользователь с `is_staff=true`, доступ к статусам задач — только владелец задачи или администратор;
3. пароли пользователей хранятся исключительно в виде криптографических хэшей, что исключает хранение исходных паролей в базе данных;
4. секреты и параметры подключения (SECRET_KEY, параметры БД/Redis) задаются через переменные окружения и должны храниться в защищённом конфигурационном контуре;
5. список доверенных источников (CORS) задаётся параметром `CORS_ALLOWED_ORIGINS` и должен быть ограничен утверждёнными доменами;
6. механизм ограничения частоты запросов включён на уровне DRF (анонимные запросы — 100/час, авторизованные — 1000/час) и при необходимости подлежит корректировке в соответствии с политиками эксплуатации;
7. трассировка запросов осуществляется через `X-Request-ID`, что обеспечивает аудит и расследование инцидентов.
Дополнительно при эксплуатации рекомендуется обеспечить шифрование каналов передачи данных (TLS), сегментацию сети и ограничение административного доступа по IPспискам.
### 6.6. Эксплуатационные регламенты
Для обеспечения стабильной работы системы в промышленной эксплуатации рекомендуется утвердить следующие регламенты:
1. резервное копирование базы данных — ежедневно, с хранением не менее 30 календарных дней;
2. резервное копирование файловых каталогов (`media/`, `input/`) — ежедневно, синхронно с резервным копированием БД;
3. проверка восстановления резервных копий — не реже 1 раза в месяц;
4. плановая очистка устаревших записей фоновых задач — через периодический запуск `BackgroundJobService.cleanup_old_jobs(days=30)` (настройка через Celery Beat);
5. контроль свободного дискового пространства и роста логов — по порогам эксплуатации (рекомендуется 20% свободного места как минимальный запас);
6. обновление программных компонентов — по утверждённому окну сопровождения с обязательным выполнением миграций и smokeпроверок;
7. контроль работоспособности — регулярные проверки `/health/`, `/health/ready/` и мониторинг логов ошибок.
### 6.7. Сценарии отказов и реакции
| Сценарий | Признак | Источник контроля | Рекомендованная реакция |
|----------|---------|-------------------|-------------------------|
| Недоступна БД | `health` возвращает `unhealthy`, readiness = 503 | `/health/`, `/health/ready/`, логи Django | Проверить доступность PostgreSQL, сетевые правила, восстановить из резервной копии при необходимости |
| Недоступен Redis | Статус `degraded`, ошибки кеша/очередей | `/health/`, логи Redis | Перезапуск Redis, проверка параметров подключения, повторная проверка задач |
| Нет активных Celery workers | `include_celery=true` возвращает `down` | `/health/?include_celery=true`, логи Celery | Запустить/перезапустить воркеры, проверить очередь и брокер |
| Ошибка обработки файла | BackgroundJob = `failure`, заполнены `error/traceback` | `/api/v1/jobs/{task_id}/` | Исправить файл, повторить загрузку, при необходимости задать новый `load_batch` |
| Ошибки валидации строк | `ParseResult.errors` содержит список ошибок | Ответ API загрузки | Исправить исходные строки и повторить загрузку |
| Ошибка аутентификации | HTTP 401 | Ответ API | Обновить токен через refresh либо выполнить повторный вход |
| Превышение лимита запросов | HTTP 429 | Ответ API, логи DRF | Снизить частоту запросов или скорректировать лимиты |
---
## 7. ПОРЯДОК РАЗВЁРТЫВАНИЯ И ИСПЫТАНИЙ
### 7.1. Подготовка операционной среды
Минимальные системные зависимости:
1. Python 3.11.
2. PostgreSQL 15.
3. Redis 7.
4. Apache / Gunicorn.
Переменные окружения задаются в `.env` (PostgreSQL, Redis, SECRET_KEY, CORS и др.).
### 7.2. Развёртывание и запуск
Рекомендуемый вариант для разработки — Docker Compose:
```bash
docker-compose up -d
```
Для установки в продуктивном контуре предусмотрен скрипт `deploy/scripts/deploy.sh`, выполняющий:
1. установку зависимостей;
2. настройку базы данных;
3. миграции и сбор статических файлов;
4. запуск Gunicorn и Celery сервисов.
### 7.3. Проверка качества и тестирование
В проекте предусмотрены автоматические тесты на уровне моделей, сервисов и API:
```bash
make test
# или
python run_tests.py
```
---
## 8. ЗАКЛЮЧЕНИЕ
Программный комплекс **State Corp Backend** реализует надёжную и масштабируемую архитектуру обработки отчётных данных. Он обеспечивает:
1. стандартизированный приём и валидацию форм Ф1…Ф6;
2. централизованное хранение и нормализацию данных организаций;
3. прозрачный механизм фоновой обработки с контролем прогресса;
4. удобный REST API с единой спецификацией и расширенной документацией;
5. готовность к промышленной эксплуатации и мониторингу.
Таким образом, решение удовлетворяет требованиям заказчика к надёжности, трассируемости и полноте данных, обеспечивая долгосрочную устойчивость и возможность развития функциональности в дальнейшем.
---
## ПРИЛОЖЕНИЕ А (ОБЯЗАТЕЛЬНОЕ). ФОРМАТЫ ВХОДНЫХ EXCEL-ШАБЛОНОВ
Настоящее приложение устанавливает требования к структуре входных Excelфайлов по формам Ф1…Ф6. Указанные требования являются обязательными для корректной загрузки.
### А.1. Общие требования к Excelфайлам
1. Формат файла: `.xlsx`.
2. Используется первый лист рабочей книги (active sheet).
3. Строка заголовков — 1.
4. Данные начинаются со строки 2.
5. Заголовки должны строго соответствовать перечню ниже.
6. Порядок колонок является фиксированным.
7. Пустые строки допускаются и игнорируются.
8. Типы данных:
| Тип | Требование |
|-----|------------|
| `str` | Текстовое значение |
| `int` | Целое число (без дробной части) |
| `decimal` | Дробные числа, допускаются запятая и пробел как разделитель |
| `bool` | Значения: «да», «yes», «1», «true», «+» (регистр не важен) |
| `date` | Ячейка должна иметь тип даты Excel |
### А.2. Шаблон формы Ф1 (Выпуск продукции)
Стандартные колонки организации:
| № | Заголовок | Поле модели | Тип |
|---|-----------|-------------|-----|
| 0 | Наименование организации | `organization_name` | str |
| 1 | ОКПО | `okpo` | str |
| 2 | ОГРН | `ogrn` | str |
| 3 | ИНН | `inn` | str |
Поля формы:
| № | Заголовок | Поле модели | Тип |
|---|-----------|-------------|-----|
| 4 | Выпуск военной продукции (факт.) | `military_output_actual` | decimal |
| 5 | Военная на внутренний рынок (факт.) | `military_domestic_actual` | decimal |
| 6 | Военная на экспорт (факт.) | `military_export_actual` | decimal |
| 7 | Выпуск гражданской продукции (факт.) | `civilian_output_actual` | decimal |
| 8 | Гражданская на внутренний рынок (факт.) | `civilian_domestic_actual` | decimal |
| 9 | Гражданская на экспорт (факт.) | `civilian_export_actual` | decimal |
| 10 | Высокотехнологичная продукция (факт.) | `hightech_output_actual` | decimal |
| 11 | Высокотехнологичная на внутренний рынок (факт.) | `hightech_domestic_actual` | decimal |
| 12 | Высокотехнологичная на экспорт (факт.) | `hightech_export_actual` | decimal |
| 13 | Объём НИОКР (факт.) | `rd_volume_actual` | decimal |
| 14 | НИОКР в интересах обороны (факт.) | `rd_defense_actual` | decimal |
| 15 | Выпуск военной продукции (фикс.) | `military_output_fixed` | decimal |
| 16 | Военная на внутренний рынок (фикс.) | `military_domestic_fixed` | decimal |
| 17 | Военная на экспорт (фикс.) | `military_export_fixed` | decimal |
| 18 | Выпуск гражданской продукции (фикс.) | `civilian_output_fixed` | decimal |
| 19 | Гражданская на внутренний рынок (фикс.) | `civilian_domestic_fixed` | decimal |
| 20 | Гражданская на экспорт (фикс.) | `civilian_export_fixed` | decimal |
| 21 | Высокотехнологичная продукция (фикс.) | `hightech_output_fixed` | decimal |
| 22 | Высокотехнологичная на внутренний рынок (фикс.) | `hightech_domestic_fixed` | decimal |
| 23 | Высокотехнологичная на экспорт (фикс.) | `hightech_export_fixed` | decimal |
| 24 | Объём НИОКР (фикс.) | `rd_volume_fixed` | decimal |
| 25 | НИОКР в интересах обороны (фикс.) | `rd_defense_fixed` | decimal |
| 26 | Средняя численность работников | `avg_employees` | decimal |
| 27 | Среднесписочная численность | `avg_payroll_employees` | decimal |
| 28 | Фонд начисленной зарплаты | `payroll_fund` | decimal |
| 29 | Просроченная задолженность по ЗП | `salary_arrears` | decimal |
### А.3. Шаблон формы Ф2 (Бухгалтерский баланс)
Стандартные колонки организации:
| № | Заголовок | Поле модели | Тип |
|---|-----------|-------------|-----|
| 0 | Наименование организации | `organization_name` | str |
| 1 | ОКПО | `okpo` | str |
| 2 | ОГРН | `ogrn` | str |
| 3 | ИНН | `inn` | str |
Поля формы:
| № | Заголовок | Поле модели | Тип |
|---|-----------|-------------|-----|
| 4 | Нематериальные активы | `intangible_assets` | decimal |
| 5 | Результаты исследований и разработок | `rd_results` | decimal |
| 6 | Нематериальные поисковые активы | `intangible_search_assets` | decimal |
| 7 | Материальные поисковые активы | `tangible_search_assets` | decimal |
| 8 | Основные средства | `fixed_assets` | decimal |
| 9 | Доходные вложения в материальные ценности | `profitable_investments` | decimal |
| 10 | Финансовые вложения (внеоборотные) | `financial_investments_non_current` | decimal |
| 11 | Отложенные налоговые активы | `deferred_tax_assets` | decimal |
| 12 | Прочие внеоборотные активы | `other_non_current_assets` | decimal |
| 13 | Итого внеоборотные активы | `total_non_current_assets` | decimal |
| 14 | Запасы | `inventories` | decimal |
| 15 | НДС по приобретённым ценностям | `vat_on_acquired_assets` | decimal |
| 16 | Дебиторская задолженность | `receivables` | decimal |
| 17 | Финансовые вложения (оборотные) | `financial_investments_current` | decimal |
| 18 | Денежные средства и эквиваленты | `cash_and_equivalents` | decimal |
| 19 | Прочие оборотные активы | `other_current_assets` | decimal |
| 20 | Итого оборотные активы | `total_current_assets` | decimal |
| 21 | Баланс (актив) | `total_assets` | decimal |
| 22 | Уставный капитал | `authorized_capital` | decimal |
| 23 | Собственные акции, выкупленные у акционеров | `own_shares_bought_back` | decimal |
| 24 | Переоценка внеоборотных активов | `revaluation_of_non_current_assets` | decimal |
| 25 | Добавочный капитал | `additional_capital` | decimal |
| 26 | Резервный капитал | `reserve_capital` | decimal |
| 27 | Нераспределённая прибыль | `retained_earnings` | decimal |
| 28 | Итого капитал и резервы | `total_equity` | decimal |
| 29 | Заёмные средства (долгосрочные) | `borrowings_non_current` | decimal |
| 30 | Отложенные налоговые обязательства | `deferred_tax_liabilities` | decimal |
| 31 | Оценочные обязательства (долгосрочные) | `estimated_liabilities_non_current` | decimal |
| 32 | Прочие обязательства (долгосрочные) | `other_liabilities_non_current` | decimal |
| 33 | Итого долгосрочные обязательства | `total_non_current_liabilities` | decimal |
| 34 | Заёмные средства (краткосрочные) | `borrowings_current` | decimal |
| 35 | Кредиторская задолженность | `payables` | decimal |
| 36 | Доходы будущих периодов | `deferred_income` | decimal |
| 37 | Оценочные обязательства (краткосрочные) | `estimated_liabilities_current` | decimal |
| 38 | Прочие обязательства (краткосрочные) | `other_liabilities_current` | decimal |
| 39 | Итого краткосрочные обязательства | `total_current_liabilities` | decimal |
| 40 | Баланс (пассив) | `total_liabilities` | decimal |
| 41 | Выручка | `revenue` | decimal |
| 42 | Себестоимость продаж | `cost_of_sales` | decimal |
| 43 | Валовая прибыль | `gross_profit` | decimal |
| 44 | Коммерческие расходы | `selling_expenses` | decimal |
| 45 | Управленческие расходы | `administrative_expenses` | decimal |
| 46 | Прибыль от продаж | `profit_from_sales` | decimal |
| 47 | Проценты к получению | `interest_receivable` | decimal |
| 48 | Проценты к уплате | `interest_payable` | decimal |
| 49 | Прочие доходы | `other_income` | decimal |
| 50 | Прочие расходы | `other_expenses` | decimal |
| 51 | Прибыль до налогообложения | `profit_before_tax` | decimal |
| 52 | Текущий налог на прибыль | `income_tax` | decimal |
| 53 | Чистая прибыль | `net_profit` | decimal |
| 54 | EBITDA | `ebitda` | decimal |
| 55 | Амортизация | `depreciation` | decimal |
| 56 | Оборотный капитал | `working_capital` | decimal |
| 57 | Чистый долг | `net_debt` | decimal |
| 58 | Баланс (актив) - прошлый период | `total_assets_prev` | decimal |
| 59 | Баланс (пассив) - прошлый период | `total_liabilities_prev` | decimal |
| 60 | Выручка - прошлый период | `revenue_prev` | decimal |
| 61 | Чистая прибыль - прошлый период | `net_profit_prev` | decimal |
### А.4. Шаблон формы Ф3 (Кадры и оборудование)
Стандартные колонки организации:
| № | Заголовок | Поле модели | Тип |
|---|-----------|-------------|-----|
| 0 | Наименование организации | `organization_name` | str |
| 1 | ОКПО | `okpo` | str |
| 2 | ОГРН | `ogrn` | str |
| 3 | ИНН | `inn` | str |
Поля формы:
| № | Заголовок | Поле модели | Тип |
|---|-----------|-------------|-----|
| 4 | Средняя численность работников | `avg_employees` | decimal |
| 5 | Производственный персонал | `production_workers` | decimal |
| 6 | Инженерно‑технические работники | `engineering_workers` | decimal |
| 7 | Административный персонал | `administrative_workers` | decimal |
| 8 | Всего оборудования | `total_equipment` | int |
| 9 | Отечественное оборудование | `domestic_equipment` | int |
| 10 | Импортное оборудование | `imported_equipment` | int |
| 11 | Оборудование до 5 лет | `equipment_age_under_5` | int |
| 12 | Оборудование 510 лет | `equipment_age_5_10` | int |
| 13 | Оборудование 1015 лет | `equipment_age_10_15` | int |
| 14 | Оборудование 1520 лет | `equipment_age_15_20` | int |
| 15 | Оборудование свыше 20 лет | `equipment_age_over_20` | int |
| 16 | Физический износ, % | `physical_wear_percent` | decimal |
| 17 | Коэффициент загрузки | `utilization_rate` | decimal |
| 18 | Средняя сменность работы | `avg_shift_work` | decimal |
| 19 | Потребность в оборудовании | `equipment_needed` | int |
| 20 | Потребность в кадрах | `workers_needed` | int |
### А.5. Шаблон формы Ф4 (Сводные финансовые данные)
Стандартные колонки организации:
| № | Заголовок | Поле модели | Тип |
|---|-----------|-------------|-----|
| 0 | Наименование организации | `organization_name` | str |
| 1 | ОКПО | `okpo` | str |
| 2 | ОГРН | `ogrn` | str |
| 3 | ИНН | `inn` | str |
Поля формы:
| № | Заголовок | Поле модели | Тип |
|---|-----------|-------------|-----|
| 4 | Выручка (РСБУ) | `revenue_rsbu` | decimal |
| 5 | Выручка (МСФО) | `revenue_ifrs` | decimal |
| 6 | Выручка прошлого года (РСБУ) | `revenue_prev_rsbu` | decimal |
| 7 | Выручка прошлого года (МСФО) | `revenue_prev_ifrs` | decimal |
| 8 | Чистая прибыль (РСБУ) | `net_profit_rsbu` | decimal |
| 9 | Чистая прибыль (МСФО) | `net_profit_ifrs` | decimal |
| 10 | Валовая прибыль (РСБУ) | `gross_profit_rsbu` | decimal |
| 11 | Операционная прибыль (РСБУ) | `operating_profit_rsbu` | decimal |
| 12 | EBITDA (РСБУ) | `ebitda_rsbu` | decimal |
| 13 | EBITDA (МСФО) | `ebitda_ifrs` | decimal |
| 14 | Кредиты и займы (РСБУ) | `loans_rsbu` | decimal |
| 15 | Кредиты и займы (МСФО) | `loans_ifrs` | decimal |
| 16 | Чистый долг (РСБУ) | `net_debt_rsbu` | decimal |
| 17 | Чистый долг (МСФО) | `net_debt_ifrs` | decimal |
| 18 | Долг/EBITDA | `debt_to_ebitda` | decimal |
| 19 | Активы (РСБУ) | `total_assets_rsbu` | decimal |
| 20 | Активы (МСФО) | `total_assets_ifrs` | decimal |
| 21 | Собственный капитал (РСБУ) | `equity_rsbu` | decimal |
| 22 | Собственный капитал (МСФО) | `equity_ifrs` | decimal |
| 23 | ROE | `roe` | decimal |
| 24 | ROA | `roa` | decimal |
| 25 | ROS | `ros` | decimal |
| 26 | CAPEX | `capex` | decimal |
| 27 | Затраты на НИОКР | `rd_expenses` | decimal |
| 28 | Выплаченные дивиденды | `dividends_paid` | decimal |
| 29 | Дивидендная доходность | `dividend_yield` | decimal |
### А.6. Шаблон формы Ф5 (Инвентаризация оборудования)
Стандартные колонки организации:
| № | Заголовок | Поле модели | Тип |
|---|-----------|-------------|-----|
| 0 | Наименование организации | `organization_name` | str |
| 1 | ОКПО | `okpo` | str |
| 2 | ОГРН | `ogrn` | str |
| 3 | ИНН | `inn` | str |
Поля формы:
| № | Заголовок | Поле модели | Тип |
|---|-----------|-------------|-----|
| 4 | Идентификационный код | `equipment_id` | str |
| 5 | Инвентарный номер | `inventory_number` | str |
| 6 | Наименование оборудования | `name` | str |
| 7 | Модель | `model` | str |
| 8 | Производитель | `manufacturer` | str |
| 9 | Страна происхождения | `country_origin` | str |
| 10 | Отечественное производство | `is_domestic` | bool |
| 11 | Год выпуска | `year_manufacture` | int |
| 12 | Наличие ЧПУ | `has_cnc` | bool |
| 13 | Тип оборудования | `equipment_type` | str |
| 14 | Категория оборудования | `equipment_category` | str |
| 15 | Дата ввода в эксплуатацию | `commissioning_date` | date |
| 16 | Местонахождение | `location` | str |
| 17 | Производственный участок | `production_site` | str |
| 18 | Коэффициент использования | `utilization_rate` | decimal |
| 19 | Фактический износ, % | `physical_wear_percent` | decimal |
| 20 | В рабочем состоянии | `is_operational` | bool |
| 21 | Требует ремонта | `requires_repair` | bool |
| 22 | Требует замены | `requires_replacement` | bool |
| 23 | Первоначальная стоимость | `initial_cost` | decimal |
| 24 | Остаточная стоимость | `residual_value` | decimal |
| 25 | Примечания | `notes` | str |
### А.7. Шаблон формы Ф6 (Возрастная структура оборудования)
Стандартные колонки организации:
| № | Заголовок | Поле модели | Тип |
|---|-----------|-------------|-----|
| 0 | Наименование организации | `organization_name` | str |
| 1 | ОКПО | `okpo` | str |
| 2 | ОГРН | `ogrn` | str |
| 3 | ИНН | `inn` | str |
Поля формы:
| № | Заголовок | Поле модели | Тип |
|---|-----------|-------------|-----|
| 4 | Код строки | `row_code` | str |
| 5 | Категория оборудования | `category` | str |
| 6 | Всего оборудования | `total_equipment` | int |
| 7 | Отечественное оборудование | `domestic_equipment` | int |
| 8 | Импортное оборудование | `imported_equipment` | int |
| 9 | До 5 лет | `age_under_5` | int |
| 10 | 510 лет | `age_5_10` | int |
| 11 | 1015 лет | `age_10_15` | int |
| 12 | 1520 лет | `age_15_20` | int |
| 13 | Свыше 20 лет | `age_over_20` | int |
| 14 | С ЧПУ всего | `cnc_total` | int |
| 15 | С ЧПУ до 5 лет | `cnc_under_5` | int |
| 16 | С ЧПУ 510 лет | `cnc_5_10` | int |
| 17 | С ЧПУ 1015 лет | `cnc_10_15` | int |
| 18 | С ЧПУ 1520 лет | `cnc_15_20` | int |
| 19 | С ЧПУ свыше 20 лет | `cnc_over_20` | int |
| 20 | Средняя сменность работы | `avg_shift_work` | decimal |
| 21 | Коэффициент загрузки | `utilization_rate` | decimal |
| 22 | Физический износ, % | `physical_wear_percent` | decimal |
| 23 | Рабочие места без оборудования | `workplaces_without_equipment` | int |
| 24 | Оборудование к замене | `equipment_to_replace` | int |
---
## ПРИЛОЖЕНИЕ Б (РЕКОМЕНДУЕМОЕ). ПРИМЕРЫ ВХОДНЫХ ФАЙЛОВ
### Б.1. Общие указания к примерам
Примеры приведены для ориентира. Значения условные и должны соответствовать фактическим данным отчётности. Порядок колонок обязателен и соответствует приложению А.
### Б.2. Пример заполнения формы Ф-1 (Выпуск продукции)
| № | Заголовок | Тип | Пример значения |
|---|-----------|-----|-----------------|
| 0 | Наименование организации | str | АО "Пример" |
| 1 | ОКПО | str | 12345678 |
| 2 | ОГРН | str | 1027700132195 |
| 3 | ИНН | str | 7701234567 |
| 4 | Выпуск военной продукции (факт.) | decimal | 1000.00 |
| 5 | Военная на внутренний рынок (факт.) | decimal | 1000.00 |
| 6 | Военная на экспорт (факт.) | decimal | 1000.00 |
| 7 | Выпуск гражданской продукции (факт.) | decimal | 1000.00 |
| 8 | Гражданская на внутренний рынок (факт.) | decimal | 1000.00 |
| 9 | Гражданская на экспорт (факт.) | decimal | 1000.00 |
| 10 | Высокотехнологичная продукция (факт.) | decimal | 1000.00 |
| 11 | Высокотехнологичная на внутренний рынок (факт.) | decimal | 1000.00 |
| 12 | Высокотехнологичная на экспорт (факт.) | decimal | 1000.00 |
| 13 | Объём НИОКР (факт.) | decimal | 1000.00 |
| 14 | НИОКР в интересах обороны (факт.) | decimal | 1000.00 |
| 15 | Выпуск военной продукции (фикс.) | decimal | 1000.00 |
| 16 | Военная на внутренний рынок (фикс.) | decimal | 1000.00 |
| 17 | Военная на экспорт (фикс.) | decimal | 1000.00 |
| 18 | Выпуск гражданской продукции (фикс.) | decimal | 1000.00 |
| 19 | Гражданская на внутренний рынок (фикс.) | decimal | 1000.00 |
| 20 | Гражданская на экспорт (фикс.) | decimal | 1000.00 |
| 21 | Высокотехнологичная продукция (фикс.) | decimal | 1000.00 |
| 22 | Высокотехнологичная на внутренний рынок (фикс.) | decimal | 1000.00 |
| 23 | Высокотехнологичная на экспорт (фикс.) | decimal | 1000.00 |
| 24 | Объём НИОКР (фикс.) | decimal | 1000.00 |
| 25 | НИОКР в интересах обороны (фикс.) | decimal | 1000.00 |
| 26 | Средняя численность работников | decimal | 1000.00 |
| 27 | Среднесписочная численность | decimal | 1000.00 |
| 28 | Фонд начисленной зарплаты | decimal | 1000.00 |
| 29 | Просроченная задолженность по ЗП | decimal | 1000.00 |
### Б.3. Пример заполнения формы Ф-2 (Бухгалтерский баланс)
| № | Заголовок | Тип | Пример значения |
|---|-----------|-----|-----------------|
| 0 | Наименование организации | str | АО "Пример" |
| 1 | ОКПО | str | 12345678 |
| 2 | ОГРН | str | 1027700132195 |
| 3 | ИНН | str | 7701234567 |
| 4 | Нематериальные активы | decimal | 1000.00 |
| 5 | Результаты исследований и разработок | decimal | 1000.00 |
| 6 | Нематериальные поисковые активы | decimal | 1000.00 |
| 7 | Материальные поисковые активы | decimal | 1000.00 |
| 8 | Основные средства | decimal | 1000.00 |
| 9 | Доходные вложения в материальные ценности | decimal | 1000.00 |
| 10 | Финансовые вложения (внеоборотные) | decimal | 1000.00 |
| 11 | Отложенные налоговые активы | decimal | 1000.00 |
| 12 | Прочие внеоборотные активы | decimal | 1000.00 |
| 13 | Итого внеоборотные активы | decimal | 1000.00 |
| 14 | Запасы | decimal | 1000.00 |
| 15 | НДС по приобретённым ценностям | decimal | 1000.00 |
| 16 | Дебиторская задолженность | decimal | 1000.00 |
| 17 | Финансовые вложения (оборотные) | decimal | 1000.00 |
| 18 | Денежные средства и эквиваленты | decimal | 1000.00 |
| 19 | Прочие оборотные активы | decimal | 1000.00 |
| 20 | Итого оборотные активы | decimal | 1000.00 |
| 21 | Баланс (актив) | decimal | 1000.00 |
| 22 | Уставный капитал | decimal | 1000.00 |
| 23 | Собственные акции, выкупленные у акционеров | decimal | 1000.00 |
| 24 | Переоценка внеоборотных активов | decimal | 1000.00 |
| 25 | Добавочный капитал | decimal | 1000.00 |
| 26 | Резервный капитал | decimal | 1000.00 |
| 27 | Нераспределённая прибыль | decimal | 1000.00 |
| 28 | Итого капитал и резервы | decimal | 1000.00 |
| 29 | Заёмные средства (долгосрочные) | decimal | 1000.00 |
| 30 | Отложенные налоговые обязательства | decimal | 1000.00 |
| 31 | Оценочные обязательства (долгосрочные) | decimal | 1000.00 |
| 32 | Прочие обязательства (долгосрочные) | decimal | 1000.00 |
| 33 | Итого долгосрочные обязательства | decimal | 1000.00 |
| 34 | Заёмные средства (краткосрочные) | decimal | 1000.00 |
| 35 | Кредиторская задолженность | decimal | 1000.00 |
| 36 | Доходы будущих периодов | decimal | 1000.00 |
| 37 | Оценочные обязательства (краткосрочные) | decimal | 1000.00 |
| 38 | Прочие обязательства (краткосрочные) | decimal | 1000.00 |
| 39 | Итого краткосрочные обязательства | decimal | 1000.00 |
| 40 | Баланс (пассив) | decimal | 1000.00 |
| 41 | Выручка | decimal | 1000.00 |
| 42 | Себестоимость продаж | decimal | 1000.00 |
| 43 | Валовая прибыль | decimal | 1000.00 |
| 44 | Коммерческие расходы | decimal | 1000.00 |
| 45 | Управленческие расходы | decimal | 1000.00 |
| 46 | Прибыль от продаж | decimal | 1000.00 |
| 47 | Проценты к получению | decimal | 1000.00 |
| 48 | Проценты к уплате | decimal | 1000.00 |
| 49 | Прочие доходы | decimal | 1000.00 |
| 50 | Прочие расходы | decimal | 1000.00 |
| 51 | Прибыль до налогообложения | decimal | 1000.00 |
| 52 | Текущий налог на прибыль | decimal | 1000.00 |
| 53 | Чистая прибыль | decimal | 1000.00 |
| 54 | EBITDA | decimal | 1000.00 |
| 55 | Амортизация | decimal | 1000.00 |
| 56 | Оборотный капитал | decimal | 1000.00 |
| 57 | Чистый долг | decimal | 1000.00 |
| 58 | Баланс (актив) - прошлый период | decimal | 1000.00 |
| 59 | Баланс (пассив) - прошлый период | decimal | 1000.00 |
| 60 | Выручка - прошлый период | decimal | 1000.00 |
| 61 | Чистая прибыль - прошлый период | decimal | 1000.00 |
### Б.4. Пример заполнения формы Ф-3 (Кадры и оборудование)
| № | Заголовок | Тип | Пример значения |
|---|-----------|-----|-----------------|
| 0 | Наименование организации | str | АО "Пример" |
| 1 | ОКПО | str | 12345678 |
| 2 | ОГРН | str | 1027700132195 |
| 3 | ИНН | str | 7701234567 |
| 4 | Средняя численность работников | decimal | 1000.00 |
| 5 | Производственный персонал | decimal | 1000.00 |
| 6 | Инженерно-технические работники | decimal | 1000.00 |
| 7 | Административный персонал | decimal | 1000.00 |
| 8 | Всего оборудования | int | 120 |
| 9 | Отечественное оборудование | int | 90 |
| 10 | Импортное оборудование | int | 30 |
| 11 | Оборудование до 5 лет | int | 25 |
| 12 | Оборудование 5-10 лет | int | 40 |
| 13 | Оборудование 10-15 лет | int | 30 |
| 14 | Оборудование 15-20 лет | int | 15 |
| 15 | Оборудование свыше 20 лет | int | 10 |
| 16 | Физический износ, % | decimal | 0.85 |
| 17 | Коэффициент загрузки | decimal | 0.85 |
| 18 | Средняя сменность работы | decimal | 0.85 |
| 19 | Потребность в оборудовании | int | 10 |
| 20 | Потребность в кадрах | int | 10 |
### Б.5. Пример заполнения формы Ф-4 (Сводные финансовые данные)
| № | Заголовок | Тип | Пример значения |
|---|-----------|-----|-----------------|
| 0 | Наименование организации | str | АО "Пример" |
| 1 | ОКПО | str | 12345678 |
| 2 | ОГРН | str | 1027700132195 |
| 3 | ИНН | str | 7701234567 |
| 4 | Выручка (РСБУ) | decimal | 1000.00 |
| 5 | Выручка (МСФО) | decimal | 1000.00 |
| 6 | Выручка прошлого года (РСБУ) | decimal | 1000.00 |
| 7 | Выручка прошлого года (МСФО) | decimal | 1000.00 |
| 8 | Чистая прибыль (РСБУ) | decimal | 1000.00 |
| 9 | Чистая прибыль (МСФО) | decimal | 1000.00 |
| 10 | Валовая прибыль (РСБУ) | decimal | 1000.00 |
| 11 | Операционная прибыль (РСБУ) | decimal | 1000.00 |
| 12 | EBITDA (РСБУ) | decimal | 1000.00 |
| 13 | EBITDA (МСФО) | decimal | 1000.00 |
| 14 | Кредиты и займы (РСБУ) | decimal | 1000.00 |
| 15 | Кредиты и займы (МСФО) | decimal | 1000.00 |
| 16 | Чистый долг (РСБУ) | decimal | 1000.00 |
| 17 | Чистый долг (МСФО) | decimal | 1000.00 |
| 18 | Долг/EBITDA | decimal | 1000.00 |
| 19 | Активы (РСБУ) | decimal | 1000.00 |
| 20 | Активы (МСФО) | decimal | 1000.00 |
| 21 | Собственный капитал (РСБУ) | decimal | 1000.00 |
| 22 | Собственный капитал (МСФО) | decimal | 1000.00 |
| 23 | ROE | decimal | 1000.00 |
| 24 | ROA | decimal | 1000.00 |
| 25 | ROS | decimal | 1000.00 |
| 26 | CAPEX | decimal | 1000.00 |
| 27 | Затраты на НИОКР | decimal | 1000.00 |
| 28 | Выплаченные дивиденды | decimal | 1000.00 |
| 29 | Дивидендная доходность | decimal | 1000.00 |
### Б.6. Пример заполнения формы Ф-5 (Инвентаризация оборудования)
| № | Заголовок | Тип | Пример значения |
|---|-----------|-----|-----------------|
| 0 | Наименование организации | str | АО "Пример" |
| 1 | ОКПО | str | 12345678 |
| 2 | ОГРН | str | 1027700132195 |
| 3 | ИНН | str | 7701234567 |
| 4 | Идентификационный код | str | Пример |
| 5 | Инвентарный номер | str | Пример |
| 6 | Наименование оборудования | str | Станок токарный |
| 7 | Модель | str | СТ-16К20 |
| 8 | Производитель | str | АО "Машзавод" |
| 9 | Страна происхождения | str | Россия |
| 10 | Отечественное производство | bool | да |
| 11 | Год выпуска | int | 2018 |
| 12 | Наличие ЧПУ | bool | да |
| 13 | Тип оборудования | str | Токарное |
| 14 | Категория оборудования | str | Металлообработка |
| 15 | Дата ввода в эксплуатацию | date | 2020-06-01 |
| 16 | Местонахождение | str | Цех №1 |
| 17 | Производственный участок | str | Участок обработки |
| 18 | Коэффициент использования | decimal | 0.85 |
| 19 | Фактический износ, % | decimal | 1000.00 |
| 20 | В рабочем состоянии | bool | да |
| 21 | Требует ремонта | bool | да |
| 22 | Требует замены | bool | да |
| 23 | Первоначальная стоимость | decimal | 1000.00 |
| 24 | Остаточная стоимость | decimal | 1000.00 |
| 25 | Примечания | str | Без замечаний |
### Б.7. Пример заполнения формы Ф-6 (Возрастная структура оборудования)
| № | Заголовок | Тип | Пример значения |
|---|-----------|-----|-----------------|
| 0 | Наименование организации | str | АО "Пример" |
| 1 | ОКПО | str | 12345678 |
| 2 | ОГРН | str | 1027700132195 |
| 3 | ИНН | str | 7701234567 |
| 4 | Код строки | str | 010 |
| 5 | Категория оборудования | str | Металлообработка |
| 6 | Всего оборудования | int | 120 |
| 7 | Отечественное оборудование | int | 90 |
| 8 | Импортное оборудование | int | 30 |
| 9 | До 5 лет | int | 25 |
| 10 | 5-10 лет | int | 40 |
| 11 | 10-15 лет | int | 30 |
| 12 | 15-20 лет | int | 15 |
| 13 | Свыше 20 лет | int | 10 |
| 14 | С ЧПУ всего | int | 60 |
| 15 | С ЧПУ до 5 лет | int | 15 |
| 16 | С ЧПУ 5-10 лет | int | 20 |
| 17 | С ЧПУ 10-15 лет | int | 15 |
| 18 | С ЧПУ 15-20 лет | int | 7 |
| 19 | С ЧПУ свыше 20 лет | int | 3 |
| 20 | Средняя сменность работы | decimal | 0.85 |
| 21 | Коэффициент загрузки | decimal | 0.85 |
| 22 | Физический износ, % | decimal | 0.85 |
| 23 | Рабочие места без оборудования | int | 10 |
| 24 | Оборудование к замене | int | 10 |
---
## ПРИЛОЖЕНИЕ В (СПРАВОЧНОЕ). СПРАВОЧНИК ПОКАЗАТЕЛЕЙ
### В.1. Общие положения
Справочник показателей предназначен для унифицированной интерпретации полей базы данных и отчётных колонок. Для каждого показателя приведено наименование и краткое пояснение.
### В.2. Показатели формы Ф-1 (Выпуск продукции)
| Поле модели | Показатель | Пояснение |
|------------|-----------|----------|
| `organization_name` | Наименование организации | Полное наименование организации в соответствии с отчётной формой. |
| `okpo` | ОКПО | Код организации по ОКПО, используется для идентификации в отчётности. |
| `ogrn` | ОГРН | Основной государственный регистрационный номер организации. |
| `inn` | ИНН | Идентификационный номер налогоплательщика организации. |
| `military_output_actual` | Выпуск военной продукции (факт.) | Значение показателя «Выпуск военной продукции (факт.)», передаваемое в форме Ф-1. |
| `military_domestic_actual` | Военная на внутренний рынок (факт.) | Значение показателя «Военная на внутренний рынок (факт.)», передаваемое в форме Ф-1. |
| `military_export_actual` | Военная на экспорт (факт.) | Значение показателя «Военная на экспорт (факт.)», передаваемое в форме Ф-1. |
| `civilian_output_actual` | Выпуск гражданской продукции (факт.) | Значение показателя «Выпуск гражданской продукции (факт.)», передаваемое в форме Ф-1. |
| `civilian_domestic_actual` | Гражданская на внутренний рынок (факт.) | Значение показателя «Гражданская на внутренний рынок (факт.)», передаваемое в форме Ф-1. |
| `civilian_export_actual` | Гражданская на экспорт (факт.) | Значение показателя «Гражданская на экспорт (факт.)», передаваемое в форме Ф-1. |
| `hightech_output_actual` | Высокотехнологичная продукция (факт.) | Значение показателя «Высокотехнологичная продукция (факт.)», передаваемое в форме Ф-1. |
| `hightech_domestic_actual` | Высокотехнологичная на внутренний рынок (факт.) | Значение показателя «Высокотехнологичная на внутренний рынок (факт.)», передаваемое в форме Ф-1. |
| `hightech_export_actual` | Высокотехнологичная на экспорт (факт.) | Значение показателя «Высокотехнологичная на экспорт (факт.)», передаваемое в форме Ф-1. |
| `rd_volume_actual` | Объём НИОКР (факт.) | Значение показателя «Объём НИОКР (факт.)», передаваемое в форме Ф-1. |
| `rd_defense_actual` | НИОКР в интересах обороны (факт.) | Значение показателя «НИОКР в интересах обороны (факт.)», передаваемое в форме Ф-1. |
| `military_output_fixed` | Выпуск военной продукции (фикс.) | Значение показателя «Выпуск военной продукции (фикс.)», передаваемое в форме Ф-1. |
| `military_domestic_fixed` | Военная на внутренний рынок (фикс.) | Значение показателя «Военная на внутренний рынок (фикс.)», передаваемое в форме Ф-1. |
| `military_export_fixed` | Военная на экспорт (фикс.) | Значение показателя «Военная на экспорт (фикс.)», передаваемое в форме Ф-1. |
| `civilian_output_fixed` | Выпуск гражданской продукции (фикс.) | Значение показателя «Выпуск гражданской продукции (фикс.)», передаваемое в форме Ф-1. |
| `civilian_domestic_fixed` | Гражданская на внутренний рынок (фикс.) | Значение показателя «Гражданская на внутренний рынок (фикс.)», передаваемое в форме Ф-1. |
| `civilian_export_fixed` | Гражданская на экспорт (фикс.) | Значение показателя «Гражданская на экспорт (фикс.)», передаваемое в форме Ф-1. |
| `hightech_output_fixed` | Высокотехнологичная продукция (фикс.) | Значение показателя «Высокотехнологичная продукция (фикс.)», передаваемое в форме Ф-1. |
| `hightech_domestic_fixed` | Высокотехнологичная на внутренний рынок (фикс.) | Значение показателя «Высокотехнологичная на внутренний рынок (фикс.)», передаваемое в форме Ф-1. |
| `hightech_export_fixed` | Высокотехнологичная на экспорт (фикс.) | Значение показателя «Высокотехнологичная на экспорт (фикс.)», передаваемое в форме Ф-1. |
| `rd_volume_fixed` | Объём НИОКР (фикс.) | Значение показателя «Объём НИОКР (фикс.)», передаваемое в форме Ф-1. |
| `rd_defense_fixed` | НИОКР в интересах обороны (фикс.) | Значение показателя «НИОКР в интересах обороны (фикс.)», передаваемое в форме Ф-1. |
| `avg_employees` | Средняя численность работников | Значение показателя «Средняя численность работников», передаваемое в форме Ф-1. |
| `avg_payroll_employees` | Среднесписочная численность | Значение показателя «Среднесписочная численность», передаваемое в форме Ф-1. |
| `payroll_fund` | Фонд начисленной зарплаты | Значение показателя «Фонд начисленной зарплаты», передаваемое в форме Ф-1. |
| `salary_arrears` | Просроченная задолженность по ЗП | Значение показателя «Просроченная задолженность по ЗП», передаваемое в форме Ф-1. |
### В.3. Показатели формы Ф-2 (Бухгалтерский баланс)
| Поле модели | Показатель | Пояснение |
|------------|-----------|----------|
| `organization_name` | Наименование организации | Полное наименование организации в соответствии с отчётной формой. |
| `okpo` | ОКПО | Код организации по ОКПО, используется для идентификации в отчётности. |
| `ogrn` | ОГРН | Основной государственный регистрационный номер организации. |
| `inn` | ИНН | Идентификационный номер налогоплательщика организации. |
| `intangible_assets` | Нематериальные активы | Значение показателя «Нематериальные активы», передаваемое в форме Ф-2. |
| `rd_results` | Результаты исследований и разработок | Значение показателя «Результаты исследований и разработок», передаваемое в форме Ф-2. |
| `intangible_search_assets` | Нематериальные поисковые активы | Значение показателя «Нематериальные поисковые активы», передаваемое в форме Ф-2. |
| `tangible_search_assets` | Материальные поисковые активы | Значение показателя «Материальные поисковые активы», передаваемое в форме Ф-2. |
| `fixed_assets` | Основные средства | Значение показателя «Основные средства», передаваемое в форме Ф-2. |
| `profitable_investments` | Доходные вложения в материальные ценности | Значение показателя «Доходные вложения в материальные ценности», передаваемое в форме Ф-2. |
| `financial_investments_non_current` | Финансовые вложения (внеоборотные) | Значение показателя «Финансовые вложения (внеоборотные)», передаваемое в форме Ф-2. |
| `deferred_tax_assets` | Отложенные налоговые активы | Значение показателя «Отложенные налоговые активы», передаваемое в форме Ф-2. |
| `other_non_current_assets` | Прочие внеоборотные активы | Значение показателя «Прочие внеоборотные активы», передаваемое в форме Ф-2. |
| `total_non_current_assets` | Итого внеоборотные активы | Значение показателя «Итого внеоборотные активы», передаваемое в форме Ф-2. |
| `inventories` | Запасы | Значение показателя «Запасы», передаваемое в форме Ф-2. |
| `vat_on_acquired_assets` | НДС по приобретённым ценностям | Значение показателя «НДС по приобретённым ценностям», передаваемое в форме Ф-2. |
| `receivables` | Дебиторская задолженность | Значение показателя «Дебиторская задолженность», передаваемое в форме Ф-2. |
| `financial_investments_current` | Финансовые вложения (оборотные) | Значение показателя «Финансовые вложения (оборотные)», передаваемое в форме Ф-2. |
| `cash_and_equivalents` | Денежные средства и эквиваленты | Значение показателя «Денежные средства и эквиваленты», передаваемое в форме Ф-2. |
| `other_current_assets` | Прочие оборотные активы | Значение показателя «Прочие оборотные активы», передаваемое в форме Ф-2. |
| `total_current_assets` | Итого оборотные активы | Значение показателя «Итого оборотные активы», передаваемое в форме Ф-2. |
| `total_assets` | Баланс (актив) | Значение показателя «Баланс (актив)», передаваемое в форме Ф-2. |
| `authorized_capital` | Уставный капитал | Значение показателя «Уставный капитал», передаваемое в форме Ф-2. |
| `own_shares_bought_back` | Собственные акции, выкупленные у акционеров | Значение показателя «Собственные акции, выкупленные у акционеров», передаваемое в форме Ф-2. |
| `revaluation_of_non_current_assets` | Переоценка внеоборотных активов | Значение показателя «Переоценка внеоборотных активов», передаваемое в форме Ф-2. |
| `additional_capital` | Добавочный капитал | Значение показателя «Добавочный капитал», передаваемое в форме Ф-2. |
| `reserve_capital` | Резервный капитал | Значение показателя «Резервный капитал», передаваемое в форме Ф-2. |
| `retained_earnings` | Нераспределённая прибыль | Значение показателя «Нераспределённая прибыль», передаваемое в форме Ф-2. |
| `total_equity` | Итого капитал и резервы | Значение показателя «Итого капитал и резервы», передаваемое в форме Ф-2. |
| `borrowings_non_current` | Заёмные средства (долгосрочные) | Значение показателя «Заёмные средства (долгосрочные)», передаваемое в форме Ф-2. |
| `deferred_tax_liabilities` | Отложенные налоговые обязательства | Значение показателя «Отложенные налоговые обязательства», передаваемое в форме Ф-2. |
| `estimated_liabilities_non_current` | Оценочные обязательства (долгосрочные) | Значение показателя «Оценочные обязательства (долгосрочные)», передаваемое в форме Ф-2. |
| `other_liabilities_non_current` | Прочие обязательства (долгосрочные) | Значение показателя «Прочие обязательства (долгосрочные)», передаваемое в форме Ф-2. |
| `total_non_current_liabilities` | Итого долгосрочные обязательства | Значение показателя «Итого долгосрочные обязательства», передаваемое в форме Ф-2. |
| `borrowings_current` | Заёмные средства (краткосрочные) | Значение показателя «Заёмные средства (краткосрочные)», передаваемое в форме Ф-2. |
| `payables` | Кредиторская задолженность | Значение показателя «Кредиторская задолженность», передаваемое в форме Ф-2. |
| `deferred_income` | Доходы будущих периодов | Значение показателя «Доходы будущих периодов», передаваемое в форме Ф-2. |
| `estimated_liabilities_current` | Оценочные обязательства (краткосрочные) | Значение показателя «Оценочные обязательства (краткосрочные)», передаваемое в форме Ф-2. |
| `other_liabilities_current` | Прочие обязательства (краткосрочные) | Значение показателя «Прочие обязательства (краткосрочные)», передаваемое в форме Ф-2. |
| `total_current_liabilities` | Итого краткосрочные обязательства | Значение показателя «Итого краткосрочные обязательства», передаваемое в форме Ф-2. |
| `total_liabilities` | Баланс (пассив) | Значение показателя «Баланс (пассив)», передаваемое в форме Ф-2. |
| `revenue` | Выручка | Значение показателя «Выручка», передаваемое в форме Ф-2. |
| `cost_of_sales` | Себестоимость продаж | Значение показателя «Себестоимость продаж», передаваемое в форме Ф-2. |
| `gross_profit` | Валовая прибыль | Значение показателя «Валовая прибыль», передаваемое в форме Ф-2. |
| `selling_expenses` | Коммерческие расходы | Значение показателя «Коммерческие расходы», передаваемое в форме Ф-2. |
| `administrative_expenses` | Управленческие расходы | Значение показателя «Управленческие расходы», передаваемое в форме Ф-2. |
| `profit_from_sales` | Прибыль от продаж | Значение показателя «Прибыль от продаж», передаваемое в форме Ф-2. |
| `interest_receivable` | Проценты к получению | Значение показателя «Проценты к получению», передаваемое в форме Ф-2. |
| `interest_payable` | Проценты к уплате | Значение показателя «Проценты к уплате», передаваемое в форме Ф-2. |
| `other_income` | Прочие доходы | Значение показателя «Прочие доходы», передаваемое в форме Ф-2. |
| `other_expenses` | Прочие расходы | Значение показателя «Прочие расходы», передаваемое в форме Ф-2. |
| `profit_before_tax` | Прибыль до налогообложения | Значение показателя «Прибыль до налогообложения», передаваемое в форме Ф-2. |
| `income_tax` | Текущий налог на прибыль | Значение показателя «Текущий налог на прибыль», передаваемое в форме Ф-2. |
| `net_profit` | Чистая прибыль | Значение показателя «Чистая прибыль», передаваемое в форме Ф-2. |
| `ebitda` | EBITDA | Значение показателя «EBITDA», передаваемое в форме Ф-2. |
| `depreciation` | Амортизация | Значение показателя «Амортизация», передаваемое в форме Ф-2. |
| `working_capital` | Оборотный капитал | Значение показателя «Оборотный капитал», передаваемое в форме Ф-2. |
| `net_debt` | Чистый долг | Значение показателя «Чистый долг», передаваемое в форме Ф-2. |
| `total_assets_prev` | Баланс (актив) - прошлый период | Значение показателя «Баланс (актив) - прошлый период», передаваемое в форме Ф-2. |
| `total_liabilities_prev` | Баланс (пассив) - прошлый период | Значение показателя «Баланс (пассив) - прошлый период», передаваемое в форме Ф-2. |
| `revenue_prev` | Выручка - прошлый период | Значение показателя «Выручка - прошлый период», передаваемое в форме Ф-2. |
| `net_profit_prev` | Чистая прибыль - прошлый период | Значение показателя «Чистая прибыль - прошлый период», передаваемое в форме Ф-2. |
### В.4. Показатели формы Ф-3 (Кадры и оборудование)
| Поле модели | Показатель | Пояснение |
|------------|-----------|----------|
| `organization_name` | Наименование организации | Полное наименование организации в соответствии с отчётной формой. |
| `okpo` | ОКПО | Код организации по ОКПО, используется для идентификации в отчётности. |
| `ogrn` | ОГРН | Основной государственный регистрационный номер организации. |
| `inn` | ИНН | Идентификационный номер налогоплательщика организации. |
| `avg_employees` | Средняя численность работников | Значение показателя «Средняя численность работников», передаваемое в форме Ф-3. |
| `production_workers` | Производственный персонал | Значение показателя «Производственный персонал», передаваемое в форме Ф-3. |
| `engineering_workers` | Инженерно-технические работники | Значение показателя «Инженерно-технические работники», передаваемое в форме Ф-3. |
| `administrative_workers` | Административный персонал | Значение показателя «Административный персонал», передаваемое в форме Ф-3. |
| `total_equipment` | Всего оборудования | Значение показателя «Всего оборудования», передаваемое в форме Ф-3. |
| `domestic_equipment` | Отечественное оборудование | Значение показателя «Отечественное оборудование», передаваемое в форме Ф-3. |
| `imported_equipment` | Импортное оборудование | Значение показателя «Импортное оборудование», передаваемое в форме Ф-3. |
| `equipment_age_under_5` | Оборудование до 5 лет | Значение показателя «Оборудование до 5 лет», передаваемое в форме Ф-3. |
| `equipment_age_5_10` | Оборудование 5-10 лет | Значение показателя «Оборудование 5-10 лет», передаваемое в форме Ф-3. |
| `equipment_age_10_15` | Оборудование 10-15 лет | Значение показателя «Оборудование 10-15 лет», передаваемое в форме Ф-3. |
| `equipment_age_15_20` | Оборудование 15-20 лет | Значение показателя «Оборудование 15-20 лет», передаваемое в форме Ф-3. |
| `equipment_age_over_20` | Оборудование свыше 20 лет | Значение показателя «Оборудование свыше 20 лет», передаваемое в форме Ф-3. |
| `physical_wear_percent` | Физический износ, % | Значение показателя «Физический износ, %», передаваемое в форме Ф-3. |
| `utilization_rate` | Коэффициент загрузки | Значение показателя «Коэффициент загрузки», передаваемое в форме Ф-3. |
| `avg_shift_work` | Средняя сменность работы | Значение показателя «Средняя сменность работы», передаваемое в форме Ф-3. |
| `equipment_needed` | Потребность в оборудовании | Значение показателя «Потребность в оборудовании», передаваемое в форме Ф-3. |
| `workers_needed` | Потребность в кадрах | Значение показателя «Потребность в кадрах», передаваемое в форме Ф-3. |
### В.5. Показатели формы Ф-4 (Сводные финансовые данные)
| Поле модели | Показатель | Пояснение |
|------------|-----------|----------|
| `organization_name` | Наименование организации | Полное наименование организации в соответствии с отчётной формой. |
| `okpo` | ОКПО | Код организации по ОКПО, используется для идентификации в отчётности. |
| `ogrn` | ОГРН | Основной государственный регистрационный номер организации. |
| `inn` | ИНН | Идентификационный номер налогоплательщика организации. |
| `revenue_rsbu` | Выручка (РСБУ) | Значение показателя «Выручка (РСБУ)», передаваемое в форме Ф-4. |
| `revenue_ifrs` | Выручка (МСФО) | Значение показателя «Выручка (МСФО)», передаваемое в форме Ф-4. |
| `revenue_prev_rsbu` | Выручка прошлого года (РСБУ) | Значение показателя «Выручка прошлого года (РСБУ)», передаваемое в форме Ф-4. |
| `revenue_prev_ifrs` | Выручка прошлого года (МСФО) | Значение показателя «Выручка прошлого года (МСФО)», передаваемое в форме Ф-4. |
| `net_profit_rsbu` | Чистая прибыль (РСБУ) | Значение показателя «Чистая прибыль (РСБУ)», передаваемое в форме Ф-4. |
| `net_profit_ifrs` | Чистая прибыль (МСФО) | Значение показателя «Чистая прибыль (МСФО)», передаваемое в форме Ф-4. |
| `gross_profit_rsbu` | Валовая прибыль (РСБУ) | Значение показателя «Валовая прибыль (РСБУ)», передаваемое в форме Ф-4. |
| `operating_profit_rsbu` | Операционная прибыль (РСБУ) | Значение показателя «Операционная прибыль (РСБУ)», передаваемое в форме Ф-4. |
| `ebitda_rsbu` | EBITDA (РСБУ) | Значение показателя «EBITDA (РСБУ)», передаваемое в форме Ф-4. |
| `ebitda_ifrs` | EBITDA (МСФО) | Значение показателя «EBITDA (МСФО)», передаваемое в форме Ф-4. |
| `loans_rsbu` | Кредиты и займы (РСБУ) | Значение показателя «Кредиты и займы (РСБУ)», передаваемое в форме Ф-4. |
| `loans_ifrs` | Кредиты и займы (МСФО) | Значение показателя «Кредиты и займы (МСФО)», передаваемое в форме Ф-4. |
| `net_debt_rsbu` | Чистый долг (РСБУ) | Значение показателя «Чистый долг (РСБУ)», передаваемое в форме Ф-4. |
| `net_debt_ifrs` | Чистый долг (МСФО) | Значение показателя «Чистый долг (МСФО)», передаваемое в форме Ф-4. |
| `debt_to_ebitda` | Долг/EBITDA | Значение показателя «Долг/EBITDA», передаваемое в форме Ф-4. |
| `total_assets_rsbu` | Активы (РСБУ) | Значение показателя «Активы (РСБУ)», передаваемое в форме Ф-4. |
| `total_assets_ifrs` | Активы (МСФО) | Значение показателя «Активы (МСФО)», передаваемое в форме Ф-4. |
| `equity_rsbu` | Собственный капитал (РСБУ) | Значение показателя «Собственный капитал (РСБУ)», передаваемое в форме Ф-4. |
| `equity_ifrs` | Собственный капитал (МСФО) | Значение показателя «Собственный капитал (МСФО)», передаваемое в форме Ф-4. |
| `roe` | ROE | Значение показателя «ROE», передаваемое в форме Ф-4. |
| `roa` | ROA | Значение показателя «ROA», передаваемое в форме Ф-4. |
| `ros` | ROS | Значение показателя «ROS», передаваемое в форме Ф-4. |
| `capex` | CAPEX | Значение показателя «CAPEX», передаваемое в форме Ф-4. |
| `rd_expenses` | Затраты на НИОКР | Значение показателя «Затраты на НИОКР», передаваемое в форме Ф-4. |
| `dividends_paid` | Выплаченные дивиденды | Значение показателя «Выплаченные дивиденды», передаваемое в форме Ф-4. |
| `dividend_yield` | Дивидендная доходность | Значение показателя «Дивидендная доходность», передаваемое в форме Ф-4. |
### В.6. Показатели формы Ф-5 (Инвентаризация оборудования)
| Поле модели | Показатель | Пояснение |
|------------|-----------|----------|
| `organization_name` | Наименование организации | Полное наименование организации в соответствии с отчётной формой. |
| `okpo` | ОКПО | Код организации по ОКПО, используется для идентификации в отчётности. |
| `ogrn` | ОГРН | Основной государственный регистрационный номер организации. |
| `inn` | ИНН | Идентификационный номер налогоплательщика организации. |
| `equipment_id` | Идентификационный код | Значение показателя «Идентификационный код», передаваемое в форме Ф-5. |
| `inventory_number` | Инвентарный номер | Значение показателя «Инвентарный номер», передаваемое в форме Ф-5. |
| `name` | Наименование оборудования | Значение показателя «Наименование оборудования», передаваемое в форме Ф-5. |
| `model` | Модель | Значение показателя «Модель», передаваемое в форме Ф-5. |
| `manufacturer` | Производитель | Значение показателя «Производитель», передаваемое в форме Ф-5. |
| `country_origin` | Страна происхождения | Значение показателя «Страна происхождения», передаваемое в форме Ф-5. |
| `is_domestic` | Отечественное производство | Значение показателя «Отечественное производство», передаваемое в форме Ф-5. |
| `year_manufacture` | Год выпуска | Значение показателя «Год выпуска», передаваемое в форме Ф-5. |
| `has_cnc` | Наличие ЧПУ | Значение показателя «Наличие ЧПУ», передаваемое в форме Ф-5. |
| `equipment_type` | Тип оборудования | Значение показателя «Тип оборудования», передаваемое в форме Ф-5. |
| `equipment_category` | Категория оборудования | Значение показателя «Категория оборудования», передаваемое в форме Ф-5. |
| `commissioning_date` | Дата ввода в эксплуатацию | Значение показателя «Дата ввода в эксплуатацию», передаваемое в форме Ф-5. |
| `location` | Местонахождение | Значение показателя «Местонахождение», передаваемое в форме Ф-5. |
| `production_site` | Производственный участок | Значение показателя «Производственный участок», передаваемое в форме Ф-5. |
| `utilization_rate` | Коэффициент использования | Значение показателя «Коэффициент использования», передаваемое в форме Ф-5. |
| `physical_wear_percent` | Фактический износ, % | Значение показателя «Фактический износ, %», передаваемое в форме Ф-5. |
| `is_operational` | В рабочем состоянии | Значение показателя «В рабочем состоянии», передаваемое в форме Ф-5. |
| `requires_repair` | Требует ремонта | Значение показателя «Требует ремонта», передаваемое в форме Ф-5. |
| `requires_replacement` | Требует замены | Значение показателя «Требует замены», передаваемое в форме Ф-5. |
| `initial_cost` | Первоначальная стоимость | Значение показателя «Первоначальная стоимость», передаваемое в форме Ф-5. |
| `residual_value` | Остаточная стоимость | Значение показателя «Остаточная стоимость», передаваемое в форме Ф-5. |
| `notes` | Примечания | Значение показателя «Примечания», передаваемое в форме Ф-5. |
### В.7. Показатели формы Ф-6 (Возрастная структура оборудования)
| Поле модели | Показатель | Пояснение |
|------------|-----------|----------|
| `organization_name` | Наименование организации | Полное наименование организации в соответствии с отчётной формой. |
| `okpo` | ОКПО | Код организации по ОКПО, используется для идентификации в отчётности. |
| `ogrn` | ОГРН | Основной государственный регистрационный номер организации. |
| `inn` | ИНН | Идентификационный номер налогоплательщика организации. |
| `row_code` | Код строки | Значение показателя «Код строки», передаваемое в форме Ф-6. |
| `category` | Категория оборудования | Значение показателя «Категория оборудования», передаваемое в форме Ф-6. |
| `total_equipment` | Всего оборудования | Значение показателя «Всего оборудования», передаваемое в форме Ф-6. |
| `domestic_equipment` | Отечественное оборудование | Значение показателя «Отечественное оборудование», передаваемое в форме Ф-6. |
| `imported_equipment` | Импортное оборудование | Значение показателя «Импортное оборудование», передаваемое в форме Ф-6. |
| `age_under_5` | До 5 лет | Значение показателя «До 5 лет», передаваемое в форме Ф-6. |
| `age_5_10` | 5-10 лет | Значение показателя «5-10 лет», передаваемое в форме Ф-6. |
| `age_10_15` | 10-15 лет | Значение показателя «10-15 лет», передаваемое в форме Ф-6. |
| `age_15_20` | 15-20 лет | Значение показателя «15-20 лет», передаваемое в форме Ф-6. |
| `age_over_20` | Свыше 20 лет | Значение показателя «Свыше 20 лет», передаваемое в форме Ф-6. |
| `cnc_total` | С ЧПУ всего | Значение показателя «С ЧПУ всего», передаваемое в форме Ф-6. |
| `cnc_under_5` | С ЧПУ до 5 лет | Значение показателя «С ЧПУ до 5 лет», передаваемое в форме Ф-6. |
| `cnc_5_10` | С ЧПУ 5-10 лет | Значение показателя «С ЧПУ 5-10 лет», передаваемое в форме Ф-6. |
| `cnc_10_15` | С ЧПУ 10-15 лет | Значение показателя «С ЧПУ 10-15 лет», передаваемое в форме Ф-6. |
| `cnc_15_20` | С ЧПУ 15-20 лет | Значение показателя «С ЧПУ 15-20 лет», передаваемое в форме Ф-6. |
| `cnc_over_20` | С ЧПУ свыше 20 лет | Значение показателя «С ЧПУ свыше 20 лет», передаваемое в форме Ф-6. |
| `avg_shift_work` | Средняя сменность работы | Значение показателя «Средняя сменность работы», передаваемое в форме Ф-6. |
| `utilization_rate` | Коэффициент загрузки | Значение показателя «Коэффициент загрузки», передаваемое в форме Ф-6. |
| `physical_wear_percent` | Физический износ, % | Значение показателя «Физический износ, %», передаваемое в форме Ф-6. |
| `workplaces_without_equipment` | Рабочие места без оборудования | Значение показателя «Рабочие места без оборудования», передаваемое в форме Ф-6. |
| `equipment_to_replace` | Оборудование к замене | Значение показателя «Оборудование к замене», передаваемое в форме Ф-6. |