Revert "Update SQL schema from mag_pbi"

This reverts commit f2289ab231.
This commit is contained in:
Basoff 2026-02-22 14:05:58 +03:00
parent ad169a0db9
commit eed2ac23e7
2 changed files with 0 additions and 314 deletions

View File

@ -1,314 +0,0 @@
# База знаний: полная структура SQL (mag_pbi) и Power BI
> Извлечено из `analytics/sql_db_mag_pbi/mag_pbi_schema.sql` и `analytics/pbi/`. Независимый справочник для трассировки метрик и работы с данными.
---
## 1. Схемы базы данных mag_pbi
| Схема | Назначение |
|-------|------------|
| `pbi` | Основные таблицы и представления для Power BI |
| `analytics` | Дефицит, прогноз, аналитика за 365 дней |
| `pbiProd` | Сводная себестоимость, производство |
| `ostatki` | Резервы, очереди сборок, склад |
| `sebest` | Себестоимость до 2022 |
| `stg` | Staging (загрузка прогноза) |
| `artem` | Дополнительные данные |
| `dbo` | Стандартные таблицы |
---
## 2. Таблицы (CREATE TABLE)
### 2.1 Схема pbi
| Таблица | Ключевые колонки |
|--------|------------------|
| `pbi.pricelist` | Цена, Вид цены, 1c_id, artic_id, Дата, _Period |
| `pbi.Себестоимость` | id, Период, Статья, Вид операции, artic_id, Количество, Сумма, Закупка, Учетная цена, Номер заказа |
| `pbi.СебестоимостьПродажи` | id, 1c_id, artic_id, Количество, Закупка, sebes_id |
| `pbi.ostatki_short` | artic_id, 1c_id, Code, sklad, Категория склада, upakovok, quantity, date |
| `pbi.enums` | — |
| `pbi.nomenclature` | artic_id, 1c_id, code, description, group_id, Цена учетная руб/usd, minAvailableQty |
| `pbi.groups` | group_id, path, 1c_id |
| `pbi.w_ostatok_da_net` | dt, _IDRREF, artic_id, quantity, upakovok, ostatok, sellable_stock |
| `pbi.content_rating` | — |
| `pbi.direct_adv_costs` | — |
| `pbi.direct_orders` | — |
| `pbi.nomenclatureVolumeStorehouse` | — |
| `pbi.ostatki` | Остатки полные |
| `pbi.ostatki_mp` | Остатки МП |
| `pbi.Turnover` | — |
| `pbi.Себестоимость2023`, `Себестоимость2024` | — |
| `pbi.СебестоимостьДо2022Тест` | — |
| `pbi.СебестоимостьСводныйОт2022Тестовый` | — |
| `pbi.СебестоимостьПродажиОт2022` | — |
| `pbi.СебестоимостьПродажиТест`, `СебестоимостьТест` | — |
### 2.2 Схема analytics
| Таблица | Ключевые колонки |
|---------|------------------|
| `analytics.forecast` | id, scenario_id, 1c_id, code, month, value |
| `analytics.forecast_scenarios` | scenario_id, name |
| `analytics.deficit_proposal` | scenario_id, 1c_id, code, place_month, arrival_month, order_qty, projected_stock_at_T |
| `analytics.stock_plan_by_arrival` | — |
| `analytics.аналитика за 365 дн.` | Агрегаты ROIC, ТН, средний остаток |
| `analytics.manufacturers` | — |
| `analytics.manufacturer_payment_stage` | — |
| `analytics.manufacturer_counterparty_map` | — |
| `analytics.deficit_money_request` | scenario_id, manufacturer_id, contractor_1c_id, arrival_month, amount_rub/usd |
| `analytics.forecast_history` | — |
| `analytics.load_log_w_ostatok_da_net` | — |
| `analytics.sales_weekly_features` | — |
| `analytics.seasonality_groups` | — |
| `analytics.seasonality_groups_summ_1` | — |
| `analytics.stock_balance` | — |
| `analytics.прогноз из excel` | — |
| `analytics.срез учетных цен` | — |
### 2.3 Схема pbiProd
| Таблица | Назначение |
|---------|------------|
| `pbiProd.СебестоимостьСводныйОт2022` | Сводная себестоимость |
| `pbiProd.СебестоимостьОт2022` | Себестоимость от 2022 |
| `pbiProd.СебестоимостьДо2022` | До 2022 |
| `pbiProd.СебестоимостьПроизводствоОт2022` | Производство |
| `pbiProd.СебестоимостьИтогиДо2022` | — |
| `pbiProd.УчетнаяЦенаПоСебестоимости` | — |
| `pbiProd.GroupsOfNomenclature` | — |
| `pbiProd.НоменклатураВПроизводствеПоУровням` | — |
### 2.4 Схема stg
| Таблица | Назначение |
|---------|------------|
| `stg.forecast_load` | Staging загрузки прогноза из Excel |
### 2.5 Схема dbo
| Таблица | Назначение |
|--------|------------|
| `dbo.content_rating`, `grades_quartal` | — |
| `dbo.lineage_edges`, `lineage_objects` | — |
| `dbo.order_source`, `site_product` | — |
| `dbo.Turnover` | — |
| `dbo.yandex_direct_criteria_stats` | — |
---
## 3. Представления (CREATE VIEW)
### 3.1 Схема pbi
| View | Источник / логика |
|------|-------------------|
| `pbi.[Себестоимость+СебестоимостьПродаж]` | pbi.Себестоимость + СебестоимостьПродажи, подстановка цен из pricelist |
| `pbi.ОстаткиTotal` | ostatki_short, накопительный итог по складу/artic_id |
| `pbi.БазоваяУпаковка` | Габариты из MAG_2019 |
| `pbi.Заказы_тех` | Заказы поставщику |
| `pbi.РекламаМаркетплейсы` | Реклама МП |
| `pbi.Стоимость обработки заказа` | Стоимость МП |
| `pbi.Резервы` | Резервы |
| `pbi.Заказы` | Заказы |
| `pbi.Заявки_на_оплату` | Заявки |
| `pbi.Внешние остатки` | Внешние остатки |
| `pbi.Расходы по годам` | Расходы |
| `pbi.node_mp` | Узлы МП |
| `pbi.Внешние продажи` | Продажи МП |
| `pbi.nomeclature_for_pbi` | Номенклатура для PBI |
| `pbi.Заказы в заявках` | — |
| `pbi.[Себестоимость+СебестоимостьПродажОт2022]` | — |
| `pbi.Сборки`, `Сборки_комплекты` | — |
| `pbi.значения доп реквизитов номенклатуры` | — |
| `pbi.Сохраненные настройки 1С для PowerBI` | — |
### 3.2 Схема analytics
| View | Назначение |
|------|------------|
| `analytics.get_forecast_by_group` | Прогноз по группе (forecast + nomenclature + groups) |
| `analytics.get_forecast_scenarios` | Сценарии |
| `analytics.get_orders_list` | Список заказов |
| `analytics.get_analytics_by_group` | Аналитика по группе |
| `analytics.get_orders_by_group` | Заказы по группе (входящие) |
| `analytics.deficit_orders` | deficit_proposal + nomenclature (цена, сумма) |
| `analytics.nomenclature` | — |
| `analytics.Внешние остатки` | — |
| `analytics.Остатки МП` | — |
| `analytics.Где товар` | — |
| `analytics.Заявки_на_оплату` | — |
| `analytics.Заявки_без_проектаеоплачено` | — |
| `analytics.Ожидаемый расход` | — |
| `analytics.Ожидаемое_поступление` | — |
| `analytics.ForecastBasesKs` | Базы прогноза |
| `analytics.doprekvizit`, `doprekvizitvalues` | — |
| `analytics.images` | — |
| `analytics.Курсы валют на сегодня` | — |
| `analytics.Проекты` | — |
| `analytics.v_manufacturers_roi_compat` | — |
| `analytics.v_contractors`, `v_producers` | — |
| `analytics.v_manufacturer_counterparty_mapping` | — |
### 3.3 Схема pbiProd
| View | Назначение |
|------|------------|
| `pbiProd.[СводныйСебестоимость Для PBI]` | **Основной источник Себестоимости в PBI** |
| `pbiProd.СводныйСебестоимость` | — |
| `pbiProd.ИтогСебестоимостьПродажОт2022` | — |
### 3.4 Схема ostatki
| View | Назначение |
|------|------------|
| `ostatki.РезервыМПиОПТ` | Резервы МП и ОПТ |
| `ostatki.OstatkiMarketSklad` | — |
| `ostatki.МаркировкаОчередьВРАботе` | — |
| `ostatki.НаСогласовании` | — |
| `ostatki.ОчередьНаСборкуРазборку` | — |
| `ostatki.СборкиРазборкиВРаботе` | — |
| `ostatki.СобираетсяИКСборке` | — |
| `ostatki.СобраноНеОплачено` | — |
| `ostatki.ТоварыВПеремещении` | — |
---
## 4. Хранимые процедуры
### 4.1 analytics — дефицит и прогноз
| Процедура | Назначение |
|-----------|------------|
| `analytics.sp_build_deficit_proposal` | Расчёт дефицита и рекомендаций к заказу |
| `analytics.sp_fill_deficit_money_request` | Заполнение заявок на оплату по дефициту (manufacturers + contractor) |
| `analytics.sp_rebuild_stock_plan_by_arrival` | План остатков по месяцам прихода |
| `analytics.sp_run_deficit_all_skus` | Пересчёт дефицита по всем SKU |
| `analytics.sp_build_forecast_s4_by_group` | Прогноз по группе |
| `analytics.sp_загрузка_прогнозаакупки` | Загрузка прогноза из Excel |
| `analytics.create_seasonality_groups` | Сезонность по группам |
| `analytics.sp_create_analytics_365` | Аналитика за 365 дней |
| `analytics.sp_load_koef_groups` | Коэффициенты групп |
| `analytics.sp_recalc_roic` | Пересчёт ROIC |
| `analytics.sp_report_ROI` | Отчёт ROI |
| `analytics.Подготовка таблицы продаж к прогнозу` | Подготовка продаж |
### 4.2 pbi — миграция
| Процедура | Назначение |
|-----------|------------|
| `pbi.migrate_ostatki` | Миграция остатков |
| `pbi.migrate_nomenclature` | Миграция номенклатуры |
| `pbi.migrate_groups` | Миграция групп |
| `pbi.migrate_pricelist` | Миграция прайс-листа |
| `pbi.migrate_stock_balance` | — |
| `pbi.migrate_max_year_quantity` | — |
| `pbi.migrate_uchet_summa` | — |
| `pbi.создание среза учетных цен` | Срез учётных цен |
| `pbi.[Заполнить себестоимостьОт2022(закупки+продажи)]` | — |
| `pbi.[Заполнить себестоимостьОт2022(СкладХранение)]` | — |
| `pbi.РасчетСебестоимостиОт2022` | — |
### 4.3 pbiProd — себестоимость
| Процедура | Назначение |
|-----------|------------|
| `pbiProd.ЗаполнитьСебестоимостьСводныйОт2022` | — |
| `pbiProd.[Пакетное: ...]` | Различные этапы заполнения себестоимости |
| `pbiProd.[Подготовка Производство: ...]` | Подготовка производства |
### 4.4 sebest — себестоимость до 2022
| Процедура | Назначение |
|-----------|------------|
| `sebest.Заполнить себестоимость до 2022` | — |
| `sebest.Заполнить себестоимость закупкой/продажей` | — |
| `sebest.Расчет себестомисти` | — |
---
## 5. Power BI — таблицы и источники
### 5.1 Таблицы модели (из TMDL)
| Таблица PBI | Режим | SQL источник |
|-------------|-------|--------------|
| Номенклатура | import | pbi.nomeclature_for_pbi |
| Партнер | import | pbi.Партнеры |
| Стоимость МП | import | pbi.[Стоимость обработки заказа] |
| Себестоимость | import | **pbiProd.[СводныйСебестоимость Для PBI]** |
| Основной отчет | import | Calculated (placeholder) |
| Группы | import | pbi.groups |
| Остатки | import | **pbi.ostatki_short** |
| Заявки на оплату | import | pbi.Заявки_на_оплату |
| План продаж менеджеров | import | pbi.ПланПродажМенеджеров |
| План продаж по группам | import | pbi.ПланыПродажПоГруппам |
| Менеджеры | import | pbi.users_1C |
| mp остатки | import | pbi.Внешние остатки |
| mp аналитика продаж | import | pbi.[Внешние продажи] |
| ПРАЙСлист | import | pbi.pricelist |
| Упущенные продажи | import | pbi.w_ostatok_da_net (+ трансформации) |
| Заказы все | import | pbi.Заказы |
| mp реклама | import | pbi.РекламаМаркетплейсы |
| План маркеты | import | — |
| Резервы | import | pbi.Резервы |
| Расходы по годам | import | pbi.[Расходы по годам] |
| Я.Директ расходы | import | pbi.direct_adv_costs |
| Я.Директ заказы | import | pbi.direct_orders |
| mp узел | import | pbi.node_mp |
| mp оборот | import | pbi.[Внешний оборот] |
| .Календарь | calculated | Calendar |
| LocalDateTable_* | calculated | Calendar по диапазону полей |
| Организация | calculated | VALUES(Себестоимость[Организация]) |
| Закупки | calculated | — |
| Параметр цена продажи, % | calculated | GENERATESERIES(-20, 20, 0.5) |
### 5.2 Сервер
- **Sql.Database("prdsql", "mag_pbi")** — основной источник
- **Sql.Databases("prdsql")** → mag_pbi — альтернативный доступ
### 5.3 Связи (relationships.tmdl)
- artic_id → Номенклатура._artic_id (Себестоимость, Остатки, mp остатки, Заказы все и др.)
- Период/Дата → .Календарь.Дата
- Номенклатура._group_id → Группы.group_id (bothDirections)
- Остатки.Дата → LocalDateTable (variation)
---
## 6. Цепочка дефицита и прогноза
```
forecast (analytics.forecast)
sp_build_deficit_proposal → deficit_proposal
sp_fill_deficit_money_request → deficit_money_request (заявки на оплату по производителям)
sp_rebuild_stock_plan_by_arrival → stock_plan_by_arrival
Формула: closing = opening + inbound_confirmed + inbound_deficit - forecast_demand
```
**Источники:**
- opening_qty — pbi.w_ostatok_da_net (остаток на дату)
- Входящие заказы — статусы: В пути, В производстве, Выгружен на складе, Согласован
- Stock quantity — только `quantity` (не sellable_stock)
---
## 7. Ключевые таблицы для остатков
| Объект | Роль |
|--------|------|
| `pbi.ostatki_short` | Остатки для PBI (date, sklad, artic_id, quantity, upakovok) |
| `pbi.w_ostatok_da_net` | Остаток на дату, opening_qty, availability (ostatok) |
| `pbi.ostatki` | Полные остатки (накопительная) |
| Фильтр | `[Категория склада] <> 'Виртуальный'` — исключение МП из складского остатка |
---
*Справочник сформирован по mag_pbi_schema.sql и analytics/pbi.*

0
23.txt
View File