2039 lines
98 KiB
Transact-SQL
2039 lines
98 KiB
Transact-SQL
USE [mag_pbi]
|
||
GO
|
||
|
||
/****** Object: View [analytics].[deficit_orders] Script Date: 2026-02-22 17:45:27 ******/
|
||
SET ANSI_NULLS ON
|
||
GO
|
||
SET QUOTED_IDENTIFIER ON
|
||
GO
|
||
CREATE VIEW [analytics].[deficit_orders] AS
|
||
|
||
SELECT
|
||
[scenario_id] as [scenario_id]
|
||
, 'Дефицит' as [status]
|
||
, d.[1c_id]
|
||
, [place_month] as [order_date]
|
||
, 'руб.' as [currency]
|
||
, d.[code]
|
||
, [order_qty]
|
||
, n.[Цена учетная, руб] as [price]
|
||
, d.order_qty * n.[Цена учетная, руб] as [sum]
|
||
, [arrival_month]
|
||
FROM [mag_pbi].[analytics].[deficit_proposal] d
|
||
INNER JOIN pbi.nomenclature n ON n.[1c_id] = d.[1c_id]
|
||
GO
|
||
|
||
/****** Object: View [analytics].[doprekvizit] Script Date: 2026-02-22 17:45:27 ******/
|
||
SET ANSI_NULLS ON
|
||
GO
|
||
SET QUOTED_IDENTIFIER ON
|
||
GO
|
||
CREATE VIEW [analytics].[doprekvizit]
|
||
AS
|
||
SELECT
|
||
CASE WHEN i._Marked = 0x00 THEN 0 ELSE 1 END AS [ПометкаУдаления],
|
||
i._Type AS [ТипЗначения],
|
||
i._Fld28453 AS [ТипЗначенияВнешнейСистемы],
|
||
i._Fld17721 AS [description],
|
||
LOWER(
|
||
CONCAT(
|
||
SUBSTRING(h.hex, 25, 8), '-',
|
||
SUBSTRING(h.hex, 21, 4), '-',
|
||
SUBSTRING(h.hex, 17, 4), '-',
|
||
SUBSTRING(h.hex, 1, 4), '-',
|
||
SUBSTRING(h.hex, 5, 12)
|
||
)
|
||
) AS [uid],
|
||
i._Fld28554 AS [ИмяВоВнешнейСистеме],
|
||
CASE i._Fld28553 WHEN 0x01 THEN 1 ELSE 0 END AS [ВыгружатьВоВнешниеСистемы],
|
||
CASE i._Fld33511 WHEN 0x01 THEN 1 ELSE 0 END AS [ВыгружатьНаСайт],
|
||
CASE i._Fld28529 WHEN 0x01 THEN 1 ELSE 0 END AS [ФильтрНаСайте],
|
||
CASE i._Fld28530 WHEN 0x01 THEN 1 ELSE 0 END AS [ОтображатьНаСайте],
|
||
CASE i._Fld27792 WHEN 0x01 THEN 1 ELSE 0 END AS [АТС_НеПроверять],
|
||
CASE i._Fld17724 WHEN 0x01 THEN 1 ELSE 0 END AS [ЗаполнятьОбязательно]
|
||
FROM MAG_2019.dbo._Chrc1109 AS i
|
||
CROSS APPLY (SELECT CONVERT(varchar(36), i._IDRRef, 2) AS hex) AS h;
|
||
GO
|
||
|
||
/****** Object: View [analytics].[doprekvizitvalues] Script Date: 2026-02-22 17:45:27 ******/
|
||
SET ANSI_NULLS ON
|
||
GO
|
||
SET QUOTED_IDENTIFIER ON
|
||
GO
|
||
CREATE VIEW [analytics].[doprekvizitvalues]
|
||
AS
|
||
SELECT
|
||
n._Code AS [code],
|
||
'DopRekvizit' AS [type],
|
||
|
||
-- GUID r._Reference188_IDRRef в текстовом виде (uid)
|
||
LOWER(
|
||
SUBSTRING(h.hex_ref,25,8) + '-' +
|
||
SUBSTRING(h.hex_ref,21,4) + '-' +
|
||
SUBSTRING(h.hex_ref,17,4) + '-' +
|
||
SUBSTRING(h.hex_ref, 1,4) + '-' +
|
||
SUBSTRING(h.hex_ref, 5,12)
|
||
) AS [uid],
|
||
|
||
r._Reference188_IDRRef AS [uid_bin],
|
||
r._Fld21137RRef AS [value_bin],
|
||
r._Fld21137RRef AS [name_uid_bin],
|
||
|
||
-- GUID r._Fld21137RRef в текстовом виде (name_uid)
|
||
LOWER(
|
||
SUBSTRING(h.hex_name,25,8) + '-' +
|
||
SUBSTRING(h.hex_name,21,4) + '-' +
|
||
SUBSTRING(h.hex_name,17,4) + '-' +
|
||
SUBSTRING(h.hex_name, 1,4) + '-' +
|
||
SUBSTRING(h.hex_name, 5,12)
|
||
) AS [name_uid],
|
||
|
||
c._Fld17721 AS [name],
|
||
|
||
pbi.get_rekvizit_value(
|
||
r._Reference188_IDRRef,
|
||
r._Fld21137RRef,
|
||
r._Fld21138_TYPE,
|
||
r._Fld21138_L,
|
||
r._Fld21138_N,
|
||
r._Fld21138_T,
|
||
r._Fld21138_S,
|
||
r._Fld21138_RTRef,
|
||
r._Fld21138_RRRef
|
||
) AS [value]
|
||
FROM MAG_2019.dbo._Reference188_VT21135X1 AS r
|
||
INNER JOIN MAG_2019.dbo._Reference188X1 AS n ON r._Reference188_IDRRef = n._IDRRef
|
||
INNER JOIN MAG_2019.dbo._Chrc1109 AS c ON c._IDRRef = r._Fld21137RRef
|
||
CROSS APPLY (
|
||
SELECT
|
||
CONVERT(varchar(36), r._Reference188_IDRRef, 2) AS hex_ref,
|
||
CONVERT(varchar(36), r._Fld21137RRef, 2) AS hex_name
|
||
) AS h;
|
||
GO
|
||
|
||
/****** Object: View [analytics].[ForecastBasesKs] Script Date: 2026-02-22 17:45:27 ******/
|
||
SET ANSI_NULLS ON
|
||
GO
|
||
SET QUOTED_IDENTIFIER ON
|
||
GO
|
||
CREATE VIEW [analytics].[ForecastBasesKs] AS
|
||
WITH MaxDate AS (
|
||
SELECT MAX(Период) AS max_date
|
||
FROM [pbiProd].[СводныйСебестоимость Для PBI]
|
||
WHERE Статья = 'реализация'
|
||
),
|
||
LastFullMonth AS (
|
||
SELECT
|
||
YEAR(DATEADD(MONTH, -1, max_date)) AS last_year,
|
||
MONTH(DATEADD(MONTH, -1, max_date)) AS last_month
|
||
FROM MaxDate
|
||
),
|
||
|
||
-- 1. Продажи по SKU × месяц
|
||
Sales AS (
|
||
SELECT
|
||
artic_id,
|
||
YEAR(Период) AS Год,
|
||
MONTH(Период) AS Месяц,
|
||
SUM(Количество) AS total_sales
|
||
FROM [pbiProd].[СводныйСебестоимость Для PBI]
|
||
WHERE Статья = 'реализация'
|
||
GROUP BY artic_id, YEAR(Период), MONTH(Период)
|
||
),
|
||
|
||
-- 2. Дни в продаже (по флагу ostatok_all)
|
||
Stock AS (
|
||
SELECT
|
||
artic_id,
|
||
YEAR(dt) AS Год,
|
||
MONTH(dt) AS Месяц,
|
||
SUM(CASE WHEN ostatok_all = 1 THEN 1 ELSE 0 END) AS days_available
|
||
FROM [pbi].[w_ostatok_da_net]
|
||
GROUP BY artic_id, YEAR(dt), MONTH(dt)
|
||
),
|
||
|
||
-- 3. База: нормализованные продажи (только Основной + Маркетплейс)
|
||
Base AS (
|
||
SELECT
|
||
s.artic_id,
|
||
n.code,
|
||
n.description,
|
||
s.Год,
|
||
s.Месяц,
|
||
s.total_sales,
|
||
st.days_available,
|
||
-- сезонность: либо родная, либо общая (по группе 0)
|
||
COALESCE(sg_main.seasonal_koef, sg_def.seasonal_koef) AS seasonal_koef,
|
||
s.total_sales / NULLIF(COALESCE(sg_main.seasonal_koef, sg_def.seasonal_koef), 0) AS Normalized_sales,
|
||
CASE WHEN st.days_available > 19 THEN 1 ELSE 0 END AS valid_month,
|
||
CASE WHEN st.days_available > 19
|
||
THEN s.total_sales / NULLIF(COALESCE(sg_main.seasonal_koef, sg_def.seasonal_koef), 0)
|
||
ELSE NULL
|
||
END AS normalized_valid_sales
|
||
FROM Sales s
|
||
LEFT JOIN Stock st
|
||
ON s.artic_id = st.artic_id
|
||
AND s.Год = st.Год
|
||
AND s.Месяц = st.Месяц
|
||
JOIN [pbi].[nomenclature] n
|
||
ON s.artic_id = n.artic_id
|
||
LEFT JOIN [analytics].[seasonality_groups] sg_main
|
||
ON n.[1c_group] = sg_main.group_1c_id
|
||
AND s.Месяц = sg_main.[month]
|
||
LEFT JOIN [analytics].[seasonality_groups] sg_def
|
||
ON sg_def.group_1c_id = 0x00000000000000000000000000000000
|
||
AND sg_def.[month] = s.Месяц
|
||
WHERE n.Статус IN ('Основной', 'Маркетплейс')
|
||
),
|
||
|
||
-- 4. Пронумеровка месяцев (только до последнего полного месяца)
|
||
Windowed AS (
|
||
SELECT
|
||
b.*,
|
||
ROW_NUMBER() OVER (
|
||
PARTITION BY b.artic_id
|
||
ORDER BY (b.Год*100 + b.Месяц) DESC
|
||
) AS rn_desc
|
||
FROM Base b
|
||
CROSS JOIN LastFullMonth lm
|
||
WHERE (b.Год*100 + b.Месяц) <= (lm.last_year*100 + lm.last_month)
|
||
),
|
||
|
||
-- 4b. Последний валидный месяц (строгий, для контроля)
|
||
LastValid AS (
|
||
SELECT artic_id, normalized_valid_sales AS Base_LastMonth
|
||
FROM (
|
||
SELECT
|
||
artic_id,
|
||
normalized_valid_sales,
|
||
ROW_NUMBER() OVER (
|
||
PARTITION BY artic_id
|
||
ORDER BY (Год*100 + Месяц) DESC
|
||
) AS rn
|
||
FROM Windowed
|
||
WHERE valid_month = 1
|
||
AND normalized_valid_sales IS NOT NULL
|
||
) x
|
||
WHERE rn = 1
|
||
),
|
||
|
||
-- 5. Строгие базы (12M, 3M) – только по валидным месяцам
|
||
StrictAggregates AS (
|
||
SELECT
|
||
w.artic_id,
|
||
AVG(CASE WHEN rn_desc <= 12 AND valid_month = 1 THEN normalized_valid_sales END) AS Base_12M,
|
||
CASE
|
||
WHEN MIN(CASE WHEN rn_desc <= 3 THEN valid_month END) = 1
|
||
THEN AVG(CASE WHEN rn_desc <= 3 THEN normalized_valid_sales END)
|
||
ELSE NULL
|
||
END AS Base_3M
|
||
FROM Windowed w
|
||
GROUP BY w.artic_id
|
||
),
|
||
|
||
-- 6. Irregular-база: средняя нормализованная продажа за последние 12 календарных месяцев,
|
||
-- только по месяцам с total_sales > 0
|
||
IrregularBase AS (
|
||
SELECT
|
||
w.artic_id,
|
||
AVG(w.Normalized_sales) AS Base_Irregular
|
||
FROM Windowed w
|
||
CROSS JOIN LastFullMonth lm
|
||
WHERE (w.Год * 12 + w.Месяц) > (lm.last_year * 12 + lm.last_month - 12) -- последние 12 месяцев
|
||
AND (w.Год * 12 + w.Месяц) <= (lm.last_year * 12 + lm.last_month)
|
||
AND w.total_sales > 0
|
||
AND w.Normalized_sales IS NOT NULL
|
||
GROUP BY w.artic_id
|
||
),
|
||
|
||
-- 7. TREND (регрессия по ln(sales), окно ~24 мес по валидным)
|
||
TrendData AS (
|
||
SELECT
|
||
w.artic_id,
|
||
ROW_NUMBER() OVER (
|
||
PARTITION BY w.artic_id
|
||
ORDER BY (w.Год*100 + w.Месяц)
|
||
) - 1 AS t,
|
||
LOG(w.normalized_valid_sales) AS ln_sales
|
||
FROM Windowed w
|
||
CROSS JOIN LastFullMonth lm
|
||
WHERE (w.Год*100 + w.Месяц) > (lm.last_year*100 + lm.last_month - 200)
|
||
AND (w.Год*100 + w.Месяц) <= (lm.last_year*100 + lm.last_month)
|
||
AND w.normalized_valid_sales > 0
|
||
),
|
||
TrendAgg AS (
|
||
SELECT
|
||
artic_id,
|
||
COUNT(*) AS n_obs,
|
||
EXP(
|
||
(AVG(t*ln_sales) - AVG(t)*AVG(ln_sales))
|
||
/ NULLIF(AVG(t*t) - AVG(t)*AVG(t), 0)
|
||
) AS g_raw
|
||
FROM TrendData
|
||
GROUP BY artic_id
|
||
HAVING COUNT(*) >= 6
|
||
),
|
||
TrendFinal AS (
|
||
SELECT
|
||
artic_id,
|
||
POWER(
|
||
CASE
|
||
WHEN POWER(g_raw, 12) < 0.7 THEN 0.7
|
||
WHEN POWER(g_raw, 12) > 1.5 THEN 1.5
|
||
ELSE POWER(g_raw, 12)
|
||
END,
|
||
1.0/12
|
||
) AS Ktrend
|
||
FROM TrendAgg
|
||
)
|
||
|
||
-- === ФИНАЛ (одна строка на активный SKU) ===
|
||
SELECT
|
||
n.artic_id,
|
||
n.code,
|
||
n.description,
|
||
-- строгие базы
|
||
sa.Base_12M,
|
||
sa.Base_3M,
|
||
ib.Base_Irregular,
|
||
-- единая выбранная база
|
||
CASE
|
||
WHEN sa.Base_3M IS NOT NULL THEN sa.Base_3M
|
||
WHEN sa.Base_12M IS NOT NULL THEN sa.Base_12M
|
||
ELSE ib.Base_Irregular
|
||
END AS Base_Selected,
|
||
lv.Base_LastMonth,
|
||
tf.Ktrend
|
||
FROM pbi.nomenclature n
|
||
LEFT JOIN StrictAggregates sa ON n.artic_id = sa.artic_id
|
||
LEFT JOIN IrregularBase ib ON n.artic_id = ib.artic_id
|
||
LEFT JOIN LastValid lv ON n.artic_id = lv.artic_id
|
||
LEFT JOIN TrendFinal tf ON n.artic_id = tf.artic_id
|
||
WHERE n.Статус IN ('Основной', 'Маркетплейс');
|
||
GO
|
||
|
||
/****** Object: View [analytics].[get_analytics_by_group] Script Date: 2026-02-22 17:45:27 ******/
|
||
SET ANSI_NULLS ON
|
||
GO
|
||
SET QUOTED_IDENTIFIER ON
|
||
GO
|
||
/****** Script for SelectTopNRows command from SSMS ******/
|
||
CREATE VIEW [analytics].[get_analytics_by_group]
|
||
AS
|
||
SELECT
|
||
n.code
|
||
, a.[Остаток дней продаж]
|
||
, a.[Дней в продаже / год]
|
||
, a.[Дней в продаже / квартал]
|
||
, a.[Продажи шт / день]
|
||
, a.[ТН / год, руб.]
|
||
, a.[ТН / квартал, руб.]
|
||
, a.[ТН / месяц, руб.]
|
||
, a.[Стоимость МП год, руб.]
|
||
, a.[%ТН год, руб.]
|
||
, a.[учетная сумма / год, руб.]
|
||
, a.[Оплаченный остаток]
|
||
, a.[Рентабельность / год]
|
||
, a.[Рентабельность / квартал]
|
||
, a.[Рентабельность / будущий год]
|
||
, [Рентабельность по остатку / год]
|
||
, [Рентабельность по остатку / квартал]
|
||
, [Рентабельность по остатку / будущий год]
|
||
FROM
|
||
analytics.[аналитика за 365 дн.] AS a
|
||
INNER JOIN pbi.nomenclature AS n ON n.[1c_id] = a.[1c_id]
|
||
INNER JOIN pbi.groups AS g ON n.[1c_group] = g.[1c_id]
|
||
WHERE (g.g NOT LIKE '*%')
|
||
GO
|
||
|
||
/****** Object: View [analytics].[get_forecast_by_group] Script Date: 2026-02-22 17:45:27 ******/
|
||
SET ANSI_NULLS ON
|
||
GO
|
||
SET QUOTED_IDENTIFIER ON
|
||
GO
|
||
/****** Script for SelectTopNRows command from SSMS ******/
|
||
CREATE VIEW [analytics].[get_forecast_by_group] as
|
||
SELECT
|
||
n.code as code
|
||
,f.[scenario_id]
|
||
,FORMAT(f.[month], 'yyyy-MM-01') AS [month]
|
||
,f.[value] as quantity_base
|
||
,g.path
|
||
FROM [mag_pbi].[analytics].forecast f
|
||
INNER JOIN mag_pbi.pbi.nomenclature n /*номенклатура*/
|
||
ON n.[1c_id] = f.[1c_id]
|
||
INNER JOIN mag_pbi.pbi.groups g
|
||
ON n.[1c_group] = g.[1c_id]
|
||
WHERE g.g not like '*%' AND [value] > 0
|
||
GO
|
||
|
||
/****** Object: View [analytics].[get_forecast_scenarios] Script Date: 2026-02-22 17:45:27 ******/
|
||
SET ANSI_NULLS ON
|
||
GO
|
||
SET QUOTED_IDENTIFIER ON
|
||
GO
|
||
/****** Script for SelectTopNRows command from SSMS ******/
|
||
CREATE VIEW [analytics].[get_forecast_scenarios] as
|
||
SELECT [scenario_id]
|
||
,[name]
|
||
,[description]
|
||
,[created_by]
|
||
FROM [mag_pbi].[analytics].[forecast_scenarios]
|
||
WHERE active = 1
|
||
GO
|
||
|
||
/****** Object: View [analytics].[get_mp_quantity_by_group] Script Date: 2026-02-22 17:45:27 ******/
|
||
SET ANSI_NULLS ON
|
||
GO
|
||
SET QUOTED_IDENTIFIER ON
|
||
GO
|
||
/****** Script for SelectTopNRows command from SSMS ******/
|
||
CREATE view [analytics].[get_mp_quantity_by_group] as
|
||
|
||
|
||
|
||
SELECT
|
||
t.code
|
||
, [Узел]
|
||
, [Склад]
|
||
, g.path
|
||
, [Доступное кол-во] as quantity
|
||
, [Доступное кол-во]
|
||
*
|
||
(case
|
||
(SELECT TOP 1 upakovka FROM pbi.[БазоваяУпаковка] up WHERE t.[1c_id] = up._OwnerID_RRRef)
|
||
when 0 then 1
|
||
when null then 1
|
||
else (SELECT TOP 1 upakovka FROM pbi.[БазоваяУпаковка] up WHERE t.[1c_id] = up._OwnerID_RRRef)
|
||
end)
|
||
as quantity_base
|
||
|
||
--, (SELECT TOP 1 [Доступное кол-во] FROM [mag_pbi].[analytics].[Внешние остатки] v WHERE v.[code]=t.[code] AND v.[Узел]=t.[Узел] AND v.[Склад]=t.[Склад] ORDER BY [Дата обновления] DESC) as quantity
|
||
FROM [mag_pbi].[analytics].[Внешние остатки] as t
|
||
INNER JOIN [mag_pbi].[pbi].[groups] g ON t.group_id = g.[1c_id]
|
||
WHERE t.[Дата обновления] >= FORMAT(GETDATE(), 'yyyy-MM-dd')
|
||
GO
|
||
|
||
/****** Object: View [analytics].[get_mpcosts_monthly_by_group] Script Date: 2026-02-22 17:45:27 ******/
|
||
SET ANSI_NULLS ON
|
||
GO
|
||
SET QUOTED_IDENTIFIER ON
|
||
GO
|
||
CREATE view [analytics].[get_mpcosts_monthly_by_group] as
|
||
SELECT
|
||
sales.date
|
||
, n.code as code
|
||
, g.path
|
||
, sum(sales.sum) as sum
|
||
FROM
|
||
(
|
||
select
|
||
FORMAT([date], 'yyyy-MM') as date
|
||
, s.Сумма as sum
|
||
, s.[1c_id]
|
||
|
||
FROM [mag_pbi].[pbi].[Стоимость обработки заказа] s
|
||
|
||
) as sales
|
||
INNER JOIN [mag_pbi].[pbi].nomenclature n
|
||
ON n.[1c_id] = sales.[1c_id]
|
||
INNER JOIN [mag_pbi].[pbi].[groups] g ON n.[1c_group] = g.[1c_id]
|
||
|
||
GROUP BY sales.date, n.code, g.path
|
||
GO
|
||
|
||
/****** Object: View [analytics].[get_nomenclature_by_group] Script Date: 2026-02-22 17:45:27 ******/
|
||
SET ANSI_NULLS ON
|
||
GO
|
||
SET QUOTED_IDENTIFIER ON
|
||
GO
|
||
/****** Script for SelectTopNRows command from SSMS ******/
|
||
CREATE view [analytics].[get_nomenclature_by_group] as
|
||
SELECT
|
||
n.code as code,
|
||
n.description as 'description',
|
||
n.artic as artic,
|
||
g.path,
|
||
--concat('https://media.magok.ru/', f._Fld21201) as 'photo',
|
||
n.photo,
|
||
n.Производитель as 'manufacturer',
|
||
n.Бренд as 'brand',
|
||
n.[1c_id] as [1C_id],
|
||
n.[Статус] as status,
|
||
n.[АБС статус] as ABC
|
||
, wb._Fld28246 as [WB]
|
||
, wbip._Fld28246 as [WBIP]
|
||
, ozon._Fld28246 as [OZON]
|
||
, ozonip._Fld28246 as [OZONIP]
|
||
--, factory.Количество as factoryQuantity
|
||
--, way.Количество as onwayQuantity
|
||
, n.[max_year_quantity]
|
||
, n.[max_quarter_quantity]
|
||
, n.[Цена учетная, руб]
|
||
, n.[Цена учетная, usd]
|
||
, n.[СКО_МесячныхПродаж]
|
||
, n.cenovaya_gruppa
|
||
from [mag_pbi].[pbi].nomenclature n /*номенклатура*/
|
||
--INNER JOIN [mag_reports].[sales].[w_groups] g
|
||
INNER JOIN mag_pbi.pbi.groups g
|
||
ON n.[1c_group] = g.[1c_id]
|
||
/*LEFT JOIN [mag_2019].[dbo]._Reference191X1 f /*номенклатураПрисоедФайлы*/
|
||
ON f._IDRRef = n._Fld21086RRef*/
|
||
LEFT JOIN [MAG_2019].[dbo].[_InfoRg28243X1] wbip -- идентификаторы объектов во внешних системах
|
||
ON wbip.[_Fld28244_RRRef] = n.[1c_id] AND wbip._Fld28245RRef = 0x997FB49691D57EFD11ED51180696FB46
|
||
|
||
LEFT JOIN [MAG_2019].[dbo].[_InfoRg28243X1] ozonip -- идентификаторы объектов во внешних системах
|
||
ON ozonip.[_Fld28244_RRRef] = n.[1c_id] AND ozonip._Fld28245RRef = 0x9987B49691D57EFD11EED582B1EEAA3C
|
||
|
||
LEFT JOIN [MAG_2019].[dbo].[_InfoRg28243X1] ozon -- идентификаторы объектов во внешних системах
|
||
ON ozon.[_Fld28244_RRRef] = n.[1c_id] AND ozon._Fld28245RRef = 0xAEC3B496910DCFD611EC0EF79C3B458F
|
||
|
||
LEFT JOIN [MAG_2019].[dbo].[_InfoRg28243X1] wb -- идентификаторы объектов во внешних системах
|
||
ON wb.[_Fld28244_RRRef] = n.[1c_id] AND wb._Fld28245RRef = 0xAEC3B496910DCFD611EC000B54C819F4
|
||
/*
|
||
LEFT JOIN [mag_pbi].[pbi].[Заказо_в_производстве] factory
|
||
ON factory.[1C_id] = n.[1c_id]
|
||
LEFT JOIN [mag_pbi].[pbi].[Заказо_в_пути] way
|
||
ON way.[1C_id] = n.[1c_id]
|
||
*/
|
||
--WHERE n._Folder = 1
|
||
--AND g.path like 'Игрушки%'
|
||
/*
|
||
SELECT
|
||
n.code
|
||
, n.description
|
||
, n.artic
|
||
, g.path
|
||
, n.photo
|
||
FROM [mag_pbi].[pbi].[nomenclature] n
|
||
INNER JOIN [mag_reports].[sales].[w_groups] g
|
||
ON n.group_id = g.group_id
|
||
*/
|
||
GO
|
||
|
||
/****** Object: View [analytics].[get_orders_by_group] Script Date: 2026-02-22 17:45:27 ******/
|
||
SET ANSI_NULLS ON
|
||
GO
|
||
SET QUOTED_IDENTIFIER ON
|
||
GO
|
||
/****** Script for SelectTopNRows command from SSMS ******/
|
||
CREATE view [analytics].[get_orders_by_group] as
|
||
SELECT
|
||
z.[Статус] as status
|
||
,z.[Номер заказа поставщику] as order_number
|
||
,z.[1C_id]
|
||
,z.[Дата заказа поставщику] as order_date
|
||
,z.Валюта as currency
|
||
, n._code as 'code'
|
||
,[Кол. упаковок] as packages
|
||
,z.Количество as units
|
||
,[Цена] as price
|
||
,[Сумма в руб.] as 'sum'
|
||
, z.Сумма as amount
|
||
,FORMAT([Желаемая дата], 'yyyy-MM') as 'month'
|
||
,g.path
|
||
FROM [mag_pbi].[analytics].[Заказы] z
|
||
INNER JOIN [mag_2019].[dbo]._Reference188X1 n /*номенклатура*/ ON n._IDRRef = z.[1c_id]
|
||
INNER JOIN [mag_pbi].[pbi].[groups] g ON n._ParentIDRRef = g.[1c_id]
|
||
--WHERE [Статус]='В пути' OR [Статус] = 'В производстве' OR [Статус] = 'Выгружен на складе'
|
||
WHERE
|
||
z.Статус NOT IN ('Тех. заказ', 'Подтвержден' ,'Закрыт')
|
||
GO
|
||
|
||
/****** Object: View [analytics].[get_orders_list] Script Date: 2026-02-22 17:45:27 ******/
|
||
SET ANSI_NULLS ON
|
||
GO
|
||
SET QUOTED_IDENTIFIER ON
|
||
GO
|
||
CREATE VIEW [analytics].[get_orders_list] AS
|
||
SELECT
|
||
DATEADD(YEAR, -2000, z._Date_Time) AS [Дата заказа поставщику],
|
||
CAST(DATEADD(YEAR, -2000, z._Fld3420) AS DATE) AS [Желаемая дата поступления],
|
||
z._Number AS [Номер заказа поставщику],
|
||
|
||
p._Description AS [Партнер],
|
||
r._Description AS [Контрагент],
|
||
|
||
CASE z._Fld3417RRef
|
||
WHEN 0xB9440E49408A17534955319EBF0DAE60 THEN N'Согласован'
|
||
WHEN 0x99FD3E66AA3EFB074984044D5A69CFD5 THEN N'В производстве'
|
||
WHEN 0x973A5675AC6A17F64DA37EC6C22FC12C THEN N'Частично отгружен'
|
||
WHEN 0xA55F81415BA33BC24A053ED26C6EC02E THEN N'Заказ отменён'
|
||
WHEN 0xA87A8B13710A30B447DFF1614E84D167 THEN N'В пути и произв.'
|
||
WHEN 0x8542BD023FE7B70E4613087D853F26E4 THEN N'Полностью отгружен'
|
||
WHEN 0xB38AD6232E2D17D44287D9924E5E6DF2 THEN N'Нет в заявке на оплату'
|
||
WHEN 0xB2A33CF1C728AF3463F20D54AE5A0BC THEN N'Заявка в процессе'
|
||
ELSE N'Неизвестно'
|
||
END AS [Статус],
|
||
|
||
v._Description AS [Валюта],
|
||
z._Fld3418 AS [Сумма],
|
||
|
||
CASE v._Description
|
||
WHEN 'USD' THEN z._Fld3418 * (SELECT rate FROM [analytics].[Курсы валют на сегодня] WHERE currency='USD2')
|
||
ELSE z._Fld3418 * (SELECT rate FROM [analytics].[Курсы валют на сегодня] WHERE currency=v._Description)
|
||
END AS [Сумма в руб],
|
||
|
||
ISNULL(man.[manufacturer], N'Не найдено') AS manufacturer,
|
||
ISNULL(man.[ROI_norm], 136) / 100 AS roi_year_normalized,
|
||
man.[n_percent],
|
||
man.[n_days],
|
||
man.[m_percent],
|
||
man.[m_days],
|
||
|
||
CASE WHEN z._Fld3418 = 0 THEN 0
|
||
ELSE (
|
||
SELECT SUM(zak.[Сумма] * a.[%ТН год, руб.])
|
||
FROM [analytics].[Заказы] zak
|
||
INNER JOIN [analytics].[аналитика за 365 дн.] a ON a.[1c_id] = zak.[1C_id]
|
||
WHERE zak.[Номер заказа поставщику] = z._Number
|
||
) / z._Fld3418
|
||
END AS [average_year_turnover],
|
||
|
||
z._Fld3432 AS comment
|
||
|
||
FROM MAG_2019.dbo._Document408X1 AS z
|
||
LEFT JOIN MAG_2019.dbo._Reference215X1 AS p ON p._IDRRef = z._Fld3409RRef -- Партнёр
|
||
LEFT JOIN MAG_2019.dbo._Reference168 AS r ON r._IDRRef = z._Fld3410RRef -- Контрагент
|
||
LEFT JOIN MAG_2019.dbo._Reference50 AS v ON v._IDRRef = z._Fld3414RRef -- Валюта
|
||
LEFT JOIN [analytics].[manufacturer_counterparty_map] map ON map.contractor_1c_id = r._IDRRef
|
||
LEFT JOIN [analytics].[v_manufacturers_roi_compat] man ON man.id = map.manufacturer_id
|
||
|
||
WHERE z._Posted = 1
|
||
AND z._Marked = 0
|
||
AND z._Fld3417RRef <> 0xA55F81415BA33BC24A053ED26C6EC02E -- не «Заказ отменён»
|
||
AND z._Fld3417RRef <> 0x8542BD023FE7B70E4613087D853F26E4 -- не «Полностью отгружен»
|
||
AND z._Fld3417RRef <> 0x973A5675AC6A17F64DA37EC6C22FC12C; -- не «Частично отгружен»
|
||
GO
|
||
|
||
/****** Object: View [analytics].[get_quantity_by_group] Script Date: 2026-02-22 17:45:27 ******/
|
||
SET ANSI_NULLS ON
|
||
GO
|
||
SET QUOTED_IDENTIFIER ON
|
||
GO
|
||
/****** Script for SelectTopNRows command from SSMS ******/
|
||
CREATE view [analytics].[get_quantity_by_group] as
|
||
SELECT
|
||
n.Code as code
|
||
, s._Description as sklad
|
||
, s.[Категория] as [Категория склада]
|
||
--, sum( [_Fld17491]*(case _RecordKind when 0 then 1 when 1 then -1 end) ) as quantity
|
||
, convert( decimal(10,2), sum( [_Fld17491]*(case _RecordKind when 0 then 1 when 1 then -1 end) ) ) as quantity_base
|
||
, convert(
|
||
decimal(10,2), sum( [_Fld17491]*(case _RecordKind when 0 then 1 when 1 then -1 end) )
|
||
/
|
||
(case
|
||
(SELECT TOP 1 upakovka FROM pbi.[БазоваяУпаковка] up WHERE n.[1c_id] = up._OwnerID_RRRef)
|
||
when 0 then 1
|
||
when null then 1
|
||
else (SELECT TOP 1 upakovka FROM pbi.[БазоваяУпаковка] up WHERE n.[1c_id] = up._OwnerID_RRRef)
|
||
end)
|
||
) as quantity
|
||
, g.path
|
||
FROM [mag_2019].[dbo].[_AccumRg17484] t /*регистр товары на складах*/
|
||
INNER JOIN [mag_pbi].[pbi].nomenclature n /*номенклатура*/ ON n.[1c_id] = t._Fld17485RRef
|
||
INNER JOIN [mag_pbi].[pbi].[groups] g ON n.[1c_group] = g.[1c_id]
|
||
INNER JOIN [mag_pbi].[pbi].[sklad_2019] s /*склад*/ ON s._IDRRef = t._Fld17488RRef
|
||
WHERE s.[Категория]='Хранение' OR s.[Категория]='Фасовка' OR s.[Категория] = 'Розничная точка' --g.path like 'Игрушки%'
|
||
GROUP BY n.code, s._Description, s.[Категория], g.path, n.[1c_id]
|
||
GO
|
||
|
||
/****** Object: View [analytics].[get_sales_monthly_by_group] Script Date: 2026-02-22 17:45:27 ******/
|
||
SET ANSI_NULLS ON
|
||
GO
|
||
SET QUOTED_IDENTIFIER ON
|
||
GO
|
||
/****** Script for SelectTopNRows command from SSMS ******/
|
||
/*
|
||
select
|
||
sum([Сумма])
|
||
, (SELECT sum([Сумма]) FROM [mag_pbi].[pbi].[Стоимость обработки заказа] obr WHERE obr.[1c_id] = s.[1c_id])
|
||
FROM [mag_pbi].[pbiProd].[СебестоимостьСводныйОт2022] s
|
||
WHERE [Вид операции]='Расход' AND [Статья]='Реализация'
|
||
AND code = 'УТ-00210548'
|
||
GROUP BY s.[1c_id]
|
||
*/
|
||
CREATE view [analytics].[get_sales_monthly_by_group] as
|
||
SELECT
|
||
sales.date
|
||
, n._Code as code
|
||
, g.path
|
||
, sum(sales.sum) as sum
|
||
, sum(sales.quantity) as quantity
|
||
, sum(sales.quantity_base) as quantity_base
|
||
FROM
|
||
(
|
||
select
|
||
FORMAT([Период], 'yyyy-MM') as date
|
||
, s.Сумма as sum
|
||
, s.[1c_id]
|
||
, s.Количество as quantity_base
|
||
, s.КоличествоУпаковок as quantity
|
||
FROM [mag_pbi].[pbiProd].[СебестоимостьСводныйОт2022] s
|
||
WHERE [Вид операции]='Расход' AND [Статья]='Реализация'
|
||
) as sales
|
||
INNER JOIN [mag_2019].[dbo]._Reference188X1 n
|
||
ON n._IDRRef = sales.[1c_id]
|
||
INNER JOIN [mag_pbi].[pbi].[groups] g ON n._ParentIDRRef = g.[1c_id]
|
||
|
||
GROUP BY sales.date, n._Code, g.path
|
||
GO
|
||
|
||
/****** Object: View [analytics].[images] Script Date: 2026-02-22 17:45:27 ******/
|
||
SET ANSI_NULLS ON
|
||
GO
|
||
SET QUOTED_IDENTIFIER ON
|
||
GO
|
||
CREATE VIEW [analytics].[images]
|
||
AS
|
||
SELECT
|
||
n._Code AS [КодУТ],
|
||
|
||
-- GUID r._IDRRef -> текст (КартинкаИД)
|
||
LOWER(
|
||
SUBSTRING(h.hex_r,25,8) + '-' +
|
||
SUBSTRING(h.hex_r,21,4) + '-' +
|
||
SUBSTRING(h.hex_r,17,4) + '-' +
|
||
SUBSTRING(h.hex_r, 1,4) + '-' +
|
||
SUBSTRING(h.hex_r, 5,12)
|
||
) AS [КартинкаИД],
|
||
|
||
-- Путь к файлу
|
||
CONCAT('media.magok.ru/', r._Fld21201) AS [Путь],
|
||
|
||
CASE WHEN r._Fld28532 = 0x01 THEN 1 ELSE 0 END AS [Основное],
|
||
ISNULL(v._Description, N'') AS [ВнешняяСистема],
|
||
CASE WHEN r._Marked = 0x00 THEN 0 ELSE 1 END AS [ПометкаУдаления],
|
||
|
||
-- GUID n._IDRRef -> текст (НоменклатураИД)
|
||
LOWER(
|
||
SUBSTRING(h.hex_n,25,8) + '-' +
|
||
SUBSTRING(h.hex_n,21,4) + '-' +
|
||
SUBSTRING(h.hex_n,17,4) + '-' +
|
||
SUBSTRING(h.hex_n, 1,4) + '-' +
|
||
SUBSTRING(h.hex_n, 5,12)
|
||
) AS [НоменклатураИД]
|
||
FROM MAG_2019.dbo._Reference191X1 AS r
|
||
INNER JOIN MAG_2019.dbo._Reference188X1 AS n
|
||
ON n._IDRRef = r._Fld21192RRef
|
||
LEFT JOIN MAG_2019.dbo._Node28072X1 AS v
|
||
ON v._IDRRef = r._Fld28611RRef
|
||
CROSS APPLY (
|
||
SELECT
|
||
CONVERT(varchar(36), r._IDRRef, 2) AS hex_r,
|
||
CONVERT(varchar(36), n._IDRRef, 2) AS hex_n
|
||
) AS h;
|
||
GO
|
||
|
||
/****** Object: View [analytics].[income_expence] Script Date: 2026-02-22 17:45:27 ******/
|
||
SET ANSI_NULLS ON
|
||
GO
|
||
SET QUOTED_IDENTIFIER ON
|
||
GO
|
||
CREATE view [analytics].[income_expence] as
|
||
SELECT
|
||
t.*,
|
||
CONCAT(t.[Номер документа], ' ', t.[Дата]) as 'Номер_Дата'
|
||
FROM
|
||
-- См. WHERE в самом низу
|
||
-- WHERE g <> 'Прочие перемещения ДС' AND [Статья ДДС] <> 'Закупка_Приобретение валюты'
|
||
(
|
||
SELECT
|
||
'' as 'Получатель'
|
||
, c.[path] as 'path'
|
||
, case WHEN c.g1='Конвертация валюты' THEN 'Закупка' ELSE c.first_group END as g
|
||
, c.g1
|
||
, c.g2
|
||
, c.g3
|
||
, c.g4
|
||
, c._Description as 'Статья ДДС'
|
||
, e.value as 'operation'
|
||
, convert(date, DATEADD(year, -2000, [_Period]), 104) as 'Дата'
|
||
, FORMAT(DATEADD(year, -2000, [_Period]), 'yyyy') as 'Год'
|
||
, FORMAT(DATEADD(year, -2000, [_Period]), 'MM') as 'Месяц'
|
||
,case _RecordKind when 1 then -acc._Fld16165 / 1000 when 0 then acc._Fld16165 / 1000 end as 'Сумма'
|
||
,case _RecordKind when 1 then -acc._Fld16166 / 1000 when 0 then acc._Fld16166 / 1000 end as 'Сумма упр(приход)'
|
||
,case _RecordKind when 1 then -acc._Fld16167 / 1000 when 0 then acc._Fld16167 / 1000 end as 'Сумма регл(приход)'
|
||
, org._Description as 'organization'
|
||
, rs._Description as 'schet'
|
||
, 'Безнал' as 'type'
|
||
, (SELECT _DESCRIPTION FROM [MAG_2019].[dbo].[_Reference50] /*валюты*/ v WHERE v._IDRRef = rs._Fld18073RRef) as 'valuta'
|
||
, case acc._RecorderTRef
|
||
WHEN 0x000001FD THEN
|
||
(SELECT d._Number FROM MAG_2019.dbo._Document509 d WHERE d._IDRRef = acc._RecorderRRef )
|
||
WHEN 0x000001E1 THEN
|
||
(SELECT d._Number FROM MAG_2019.dbo._Document481 d WHERE d._IDRRef = acc._RecorderRRef )
|
||
WHEN 0x000001F1 THEN
|
||
(SELECT d._Number FROM MAG_2019.dbo._Document497 d WHERE d._IDRRef = acc._RecorderRRef )
|
||
WHEN 0x00000181 THEN
|
||
(SELECT d._Number FROM MAG_2019.dbo._Document385 d WHERE d._IDRRef = acc._RecorderRRef )
|
||
END as [Номер документа]
|
||
|
||
FROM [mag_2019].[dbo].[_AccumRg16162] acc /* регистр денежные средства б/н */
|
||
LEFT JOIN [MAG_2019].[dbo].[_Reference198X1] org ON org._IDRRef = acc._Fld16163RRef/*справочник организации*/
|
||
LEFT JOIN [MAG_2019].[dbo].[_Reference47] rs ON rs._IDRRef = acc._Fld16164RRef/* справочник банковские счета */
|
||
LEFT JOIN [mag_reports].[costs].[costs_groups] c ON c._IDRref = acc._Fld16171RRef /* статья ДДС */
|
||
LEFT JOIN mag_reports.dbo.enums e ON e._IDRref = acc._Fld16170RRef AND e.enum = 'Хоз. операции'/*Перечисление хозяйственная операция*/
|
||
WHERE 1=1
|
||
--AND path not like '%Прочие перемещения ДС%'
|
||
-- WHERE path is not null
|
||
/*and path not like '%Сдача денежных средств в банк (в рублях)%'
|
||
and path not like '%Перевод ДС ИП - ЧП%'
|
||
and path not like '%Прочие перемещения ДС %'
|
||
and path not like '%Расходы | расход%'
|
||
*/
|
||
|
||
UNION all
|
||
|
||
SELECT
|
||
( SELECT _Description FROM [MAG_2019].dbo._Reference168 /* контрагенты */ WHERE _IDRRef =
|
||
(SELECT top 1 _Fld3891RRef FROM [MAG_2019].dbo._Document416 /* заявка на расход ДС */ d416 WHERE d416._IDRref = /*ro_tbl._Fld7773RRef*/
|
||
(SELECT top 1 _Document495_IDRRef FROM [MAG_2019].dbo._Document495_VT7759 ro_tbl /* Расходный кассовый ордер табл */ WHERE ro_tbl._Document495_IDRRef = ro._IDRRef )
|
||
)
|
||
)
|
||
as 'Получатель'
|
||
, c.[path] as 'path'
|
||
, case WHEN c.g1='Конвертация валюты' THEN 'Закупка' ELSE c.first_group END as g
|
||
, c.g1
|
||
, c.g2
|
||
, c.g3
|
||
, c.g4
|
||
, c._Description as 'Статья ДДС'
|
||
, e.value as 'operation'
|
||
, convert(date, DATEADD(year, -2000, [_Period]), 104) as 'Дата'
|
||
, FORMAT(DATEADD(year, -2000, [_Period]), 'yyyy') as 'Год'
|
||
, FORMAT(DATEADD(year, -2000, [_Period]), 'MM') as 'Месяц'
|
||
,case _RecordKind when 1 then -_Fld16220 / 1000 when 0 then _Fld16220 / 1000 end as 'Сумма'
|
||
,case _RecordKind when 1 then -acc._Fld16221 / 1000 when 0 then acc._Fld16221 / 1000 end as 'Сумма упр(приход)'
|
||
,case _RecordKind when 1 then -acc._Fld16222 / 1000 when 0 then acc._Fld16222 / 1000 end as 'Сумма регл(приход)'
|
||
, org._Description
|
||
, k._Description
|
||
,'Наличные' as 'type'
|
||
,(SELECT _DESCRIPTION FROM [MAG_2019].[dbo].[_Reference50] /*валюты*/ v WHERE v._IDRRef = k._Fld20385RRef) as 'valuta'
|
||
, case acc._RecorderTRef
|
||
WHEN 0x000001EF THEN
|
||
(SELECT d._Number FROM MAG_2019.dbo._Document495 d WHERE d._IDRRef = acc._RecorderRRef )
|
||
WHEN 0x000001E5 THEN
|
||
(SELECT d._Number FROM MAG_2019.dbo._Document485 d WHERE d._IDRRef = acc._RecorderRRef )
|
||
WHEN 0x000001F1 THEN
|
||
(SELECT d._Number FROM MAG_2019.dbo._Document497 d WHERE d._IDRRef = acc._RecorderRRef )
|
||
WHEN 0x00000181 THEN
|
||
(SELECT d._Number FROM MAG_2019.dbo._Document385 d WHERE d._IDRRef = acc._RecorderRRef )
|
||
END as [Номер документа]
|
||
FROM [mag_2019].[dbo].[_AccumRg16217] acc /* регистр денежные средства нал */
|
||
LEFT JOIN [MAG_2019].[dbo].[_Reference198X1] org ON org._IDRRef = acc._Fld16218RRef/*справочник организации*/
|
||
LEFT JOIN [MAG_2019].[dbo].[_Reference147] k /* кассы */ ON k._IDRRef = acc._Fld16219RRef
|
||
|
||
LEFT JOIN [mag_reports].[costs].[costs_groups] c ON c._IDRref = acc._Fld16224RRef
|
||
LEFT JOIN mag_reports.dbo.enums e ON e._IDRref = acc._Fld16223RRef AND e.enum = 'Хоз. операции'/*Перечисление хозяйственная операция*/
|
||
|
||
LEFT JOIN [MAG_2019].dbo._Document495 ro /* Расходный кассовый ордер */ ON ro._IDRRef = acc._RecorderRRef
|
||
WHERE
|
||
1=1
|
||
--AND path not like '%Прочие перемещения ДС%'
|
||
--path is not null
|
||
/*and path not like '%Сдача денежных средств в банк (в рублях)%'
|
||
and path not like '%Перевод ДС ИП - ЧП%'
|
||
and path not like '%Прочие перемещения ДС %'
|
||
and path not like '%Расходы | расход%'*/
|
||
|
||
/*
|
||
union all
|
||
select '', 'Зарплата|Топы' , 'Зарплата', 'Топы', '', '', '', 'ТОП_Оплата труда', 'Выдача ДС подотчетнику', '2019-01-01', 0, -652685 / 1000 , -652685 / 1000 , '', '', '', 'руб.', ''
|
||
union all
|
||
select '', 'Зарплата|Топы' , 'Зарплата', 'Топы', '', '', '', 'ТОП_Оплата труда', 'Выдача ДС подотчетнику', '2019-02-01', 0, -847900 / 1000 , -847900 / 1000 , '', '', '', 'руб.', ''
|
||
union all
|
||
select '', 'Зарплата|Топы' , 'Зарплата', 'Топы', '', '', '', 'ТОП_Оплата труда', 'Выдача ДС подотчетнику', '2019-03-01', 0, -856435 / 1000 ,- 856435 / 1000 , '', '', '', 'руб.', ''
|
||
union all
|
||
select '', 'Зарплата|Топы' , 'Зарплата', 'Топы', '', '', '', 'ТОП_Оплата труда', 'Выдача ДС подотчетнику', '2019-04-01', 0, -974905 / 1000 , -974905 / 1000 , '', '', '', 'руб.', ''
|
||
union all
|
||
select '', 'Зарплата|Топы' , 'Зарплата', 'Топы', '', '', '', 'ТОП_Оплата труда', 'Выдача ДС подотчетнику', '2019-05-01', 0, -977626 / 1000 , -977626 / 1000 , '', '', '', 'руб.', ''
|
||
union all
|
||
select '', 'Зарплата|Топы' , 'Зарплата', 'Топы', '', '', '', 'ТОП_Оплата труда', 'Выдача ДС подотчетнику', '2019-06-01', 0, -662517 / 1000 , -662517 / 1000 , '', '', '', 'руб.', ''
|
||
union all
|
||
select '', 'Зарплата|Топы' , 'Зарплата', 'Топы', '', '', '', 'ТОП_Оплата труда', 'Выдача ДС подотчетнику', '2019-07-01', 0, -748000 / 1000 , -748000 / 1000 , '', '', '', 'руб.', ''
|
||
union all
|
||
select '', 'Зарплата|Топы' , 'Зарплата', 'Топы', '', '', '', 'ТОП_Оплата труда', 'Выдача ДС подотчетнику', '2019-08-01', 0, -877971 / 1000 , -877971 / 1000 , '', '', '', 'руб.', ''
|
||
union all
|
||
select '', 'Зарплата|Топы' , 'Зарплата', 'Топы', '', '', '', 'ТОП_Оплата труда', 'Выдача ДС подотчетнику', '2019-09-01', 0, -946906 / 1000 , -946906 / 1000 , '', '', '', 'руб.', ''
|
||
union all
|
||
select '', 'Зарплата|Топы' , 'Зарплата', 'Топы', '', '', '', 'ТОП_Оплата труда', 'Выдача ДС подотчетнику', '2019-10-01', 0, -1325939 / 1000 , -1325939 / 1000 , '', '', '', 'руб.', ''
|
||
union all
|
||
select '', 'Зарплата|Топы' , 'Зарплата', 'Топы', '', '', '', 'ТОП_Оплата труда', 'Выдача ДС подотчетнику', '2019-11-01', 0, -1172364 / 1000 , -1172364 / 1000 , '', '', '', 'руб.', ''
|
||
union all
|
||
select '', 'Зарплата|Топы' , 'Зарплата', 'Топы', '', '', '', 'ТОП_Оплата труда', 'Выдача ДС подотчетнику', '2019-12-01', 0, -946108 / 1000 , -946108 / 1000 , '', '', '', 'руб.', ''
|
||
union all
|
||
select '', 'Зарплата|Топы' , 'Зарплата', 'Топы', '', '', '', 'ТОП_Оплата труда', 'Выдача ДС подотчетнику', '2020-01-01', 0, -955189 / 1000 , -955189 / 1000 , '', '', '', 'руб.', ''
|
||
union all
|
||
select '', 'Зарплата|Топы' , 'Зарплата', 'Топы', '', '', '', 'ТОП_Оплата труда', 'Выдача ДС подотчетнику', '2020-02-01', 0, -987967 / 1000 , -987967 / 1000 , '', '', '', 'руб.', ''
|
||
union all
|
||
select '', 'Зарплата|Топы' , 'Зарплата', 'Топы', '', '', '', 'ТОП_Оплата труда', 'Выдача ДС подотчетнику', '2020-03-01', 0, -1092812 / 1000 , -1092812 / 1000 , '', '', '', 'руб.', ''
|
||
union all
|
||
select '', 'Зарплата|Топы' , 'Зарплата', 'Топы', '', '', '', 'ТОП_Оплата труда', 'Выдача ДС подотчетнику', '2020-04-01', 0, -600712 / 1000 , -600712 / 1000 , '', '', '', 'руб.', ''
|
||
union all
|
||
select '', 'Зарплата|Топы' , 'Зарплата', 'Топы', '', '', '', 'ТОП_Оплата труда', 'Выдача ДС подотчетнику', '2020-05-01', 0, -886494 / 1000 , -886494 / 1000 , '', '', '', 'руб.', ''
|
||
union all
|
||
select '', 'Зарплата|Топы' , 'Зарплата', 'Топы', '', '', '', 'ТОП_Оплата труда', 'Выдача ДС подотчетнику', '2020-06-01', 0, -950 , -950 , '', '', '', 'руб.', ''
|
||
union all
|
||
select '', 'Зарплата|Топы' , 'Зарплата', 'Топы', '', '', '', 'ТОП_Оплата труда', 'Выдача ДС подотчетнику', '2020-07-01', 0, -958.5 , -958.5 , '', '', '', 'руб.', ''
|
||
union all
|
||
select '', 'Зарплата|Топы' , 'Зарплата', 'Топы', '', '', '', 'ТОП_Оплата труда', 'Выдача ДС подотчетнику', '2020-08-01', 0, -987.2 , -987.2 , '', '', '', 'руб.', ''
|
||
|
||
union all
|
||
select '', 'Зарплата|Топы' , 'Зарплата', 'Топы', '', '', '', 'ТОП_Оплата труда', 'Выдача ДС подотчетнику', '2020-09-01', 0, -1034 , -1034 , '', '', '', 'руб.', ''
|
||
union all
|
||
select '', 'Зарплата|Топы' , 'Зарплата', 'Топы', '', '', '', 'ТОП_Оплата труда', 'Выдача ДС подотчетнику', '2020-10-01', 0, -1119 , -1119 , '', '', '', 'руб.', ''
|
||
union all
|
||
select '', 'Зарплата|Топы' , 'Зарплата', 'Топы', '', '', '', 'ТОП_Оплата труда', 'Выдача ДС подотчетнику', '2020-11-01', 0, -1291 , -1291 , '', '', '', 'руб.', ''
|
||
union all
|
||
select '', 'Зарплата|Топы' , 'Зарплата', 'Топы', '', '', '', 'ТОП_Оплата труда', 'Выдача ДС подотчетнику', '2020-12-01', 0, -1112 , -1112 , '', '', '', 'руб.', ''
|
||
union all
|
||
select '', 'Зарплата|Топы' , 'Зарплата', 'Топы', '', '', '', 'ТОП_Оплата труда', 'Выдача ДС подотчетнику', '2021-01-01', 0, -1019 , -1019 , '', '', '', 'руб.', ''
|
||
union all
|
||
select '', 'Зарплата|Топы' , 'Зарплата', 'Топы', '', '', '', 'ТОП_Оплата труда', 'Выдача ДС подотчетнику', '2021-02-01', 0, -1188 , -1188 , '', '', '', 'руб.', ''
|
||
union all
|
||
select '', 'Зарплата|Топы' , 'Зарплата', 'Топы', '', '', '', 'ТОП_Оплата труда', 'Выдача ДС подотчетнику', '2021-03-01', 0, -1446 , -1446 , '', '', '', 'руб.', ''
|
||
union all
|
||
select '', 'Зарплата|Топы' , 'Зарплата', 'Топы', '', '', '', 'ТОП_Оплата труда', 'Выдача ДС подотчетнику', '2021-04-01', 0, -1330 , -1330 , '', '', '', 'руб.', ''
|
||
union all
|
||
select '', 'Зарплата|Топы' , 'Зарплата', 'Топы', '', '', '', 'ТОП_Оплата труда', 'Выдача ДС подотчетнику', '2021-05-01', 0, -927 , -927 , '', '', '', 'руб.', ''
|
||
union all
|
||
select '', 'Зарплата|Топы' , 'Зарплата', 'Топы', '', '', '', 'ТОП_Оплата труда', 'Выдача ДС подотчетнику', '2021-06-01', 0, -1140 , -1140 , '', '', '', 'руб.', ''
|
||
union all
|
||
select '', 'Зарплата|Топы' , 'Зарплата', 'Топы', '', '', '', 'ТОП_Оплата труда', 'Выдача ДС подотчетнику', '2021-07-01', 0, -881 , -881 , '', '', '', 'руб.', ''
|
||
union all
|
||
select '', 'Зарплата|Топы' , 'Зарплата', 'Топы', '', '', '', 'ТОП_Оплата труда', 'Выдача ДС подотчетнику', '2021-08-01', 0, -1238 , -1238 , '', '', '', 'руб.', ''
|
||
union all
|
||
select '', 'Зарплата|Топы' , 'Зарплата', 'Топы', '', '', '', 'ТОП_Оплата труда', 'Выдача ДС подотчетнику', '2021-09-01', 0, -1403 , -1403 , '', '', '', 'руб.', ''
|
||
union all
|
||
select '', 'Зарплата|Топы' , 'Зарплата', 'Топы', '', '', '', 'ТОП_Оплата труда', 'Выдача ДС подотчетнику', '2021-10-01', 0, -1495 , -1495 , '', '', '', 'руб.', ''
|
||
union all
|
||
select '', 'Зарплата|Топы' , 'Зарплата', 'Топы', '', '', '', 'ТОП_Оплата труда', 'Выдача ДС подотчетнику', '2021-11-01', 0, -1043 , -1043 , '', '', '', 'руб.', ''
|
||
union all
|
||
select '', 'Зарплата|Топы' , 'Зарплата', 'Топы', '', '', '', 'ТОП_Оплата труда', 'Выдача ДС подотчетнику', '2021-12-01', 0, -1197 , -1197 , '', '', '', 'руб.', ''
|
||
union all
|
||
select '', 'Зарплата|Топы' , 'Зарплата', 'Топы', '', '', '', 'ТОП_Оплата труда', 'Выдача ДС подотчетнику', '2022-01-01', 0, -1405 , -1405 , '', '', '', 'руб.', ''union all
|
||
select '', 'Зарплата|Топы' , 'Зарплата', 'Топы', '', '', '', 'ТОП_Оплата труда', 'Выдача ДС подотчетнику', '2022-02-01', 0, -1418 , -1418 , '', '', '', 'руб.', ''union all
|
||
select '', 'Зарплата|Топы' , 'Зарплата', 'Топы', '', '', '', 'ТОП_Оплата труда', 'Выдача ДС подотчетнику', '2022-03-01', 0, -1254 , -1254 , '', '', '', 'руб.', ''union all
|
||
select '', 'Зарплата|Топы' , 'Зарплата', 'Топы', '', '', '', 'ТОП_Оплата труда', 'Выдача ДС подотчетнику', '2022-04-01', 0, -1461 , -1461 , '', '', '', 'руб.', ''union all
|
||
select '', 'Зарплата|Топы' , 'Зарплата', 'Топы', '', '', '', 'ТОП_Оплата труда', 'Выдача ДС подотчетнику', '2022-05-01', 0, -1275 , -1275 , '', '', '', 'руб.', ''union all
|
||
select '', 'Зарплата|Топы' , 'Зарплата', 'Топы', '', '', '', 'ТОП_Оплата труда', 'Выдача ДС подотчетнику', '2022-06-01', 0, -1502 , -1502 , '', '', '', 'руб.', ''union all
|
||
select '', 'Зарплата|Топы' , 'Зарплата', 'Топы', '', '', '', 'ТОП_Оплата труда', 'Выдача ДС подотчетнику', '2022-07-01', 0, -1524 , -1524 , '', '', '', 'руб.', ''union all
|
||
select '', 'Зарплата|Топы' , 'Зарплата', 'Топы', '', '', '', 'ТОП_Оплата труда', 'Выдача ДС подотчетнику', '2022-08-01', 0, -1384 , -1384 , '', '', '', 'руб.', ''union all
|
||
select '', 'Зарплата|Топы' , 'Зарплата', 'Топы', '', '', '', 'ТОП_Оплата труда', 'Выдача ДС подотчетнику', '2022-09-01', 0, -1623 , -1623 , '', '', '', 'руб.', ''union all
|
||
select '', 'Зарплата|Топы' , 'Зарплата', 'Топы', '', '', '', 'ТОП_Оплата труда', 'Выдача ДС подотчетнику', '2022-10-01', 0, -1699 , -1699 , '', '', '', 'руб.', '' union all
|
||
select '', 'Зарплата|Топы' , 'Зарплата', 'Топы', '', '', '', 'ТОП_Оплата труда', 'Выдача ДС подотчетнику', '2022-11-01', 0, -1963 , -1963 , '', '', '', 'руб.', ''union all
|
||
select '', 'Зарплата|Топы' , 'Зарплата', 'Топы', '', '', '', 'ТОП_Оплата труда', 'Выдача ДС подотчетнику', '2022-12-01', 0, -1743 , -1743 , '', '', '', 'руб.', ''union all
|
||
|
||
select '', 'Зарплата|Топы' , 'Зарплата', 'Топы', '', '', '', 'ТОП_Оплата труда', 'Выдача ДС подотчетнику', '2023-01-01', 0, -1560 , -1560 , '', '', '', 'руб.', ''union all
|
||
select '', 'Зарплата|Топы' , 'Зарплата', 'Топы', '', '', '', 'ТОП_Оплата труда', 'Выдача ДС подотчетнику', '2023-02-01', 0, -1727 , -1727 , '', '', '', 'руб.', ''union all
|
||
select '', 'Зарплата|Топы' , 'Зарплата', 'Топы', '', '', '', 'ТОП_Оплата труда', 'Выдача ДС подотчетнику', '2023-03-01', 0, -2104 , -2104 , '', '', '', 'руб.', ''union all
|
||
select '', 'Зарплата|Топы' , 'Зарплата', 'Топы', '', '', '', 'ТОП_Оплата труда', 'Выдача ДС подотчетнику', '2023-04-01', 0, -1504 , -1504 , '', '', '', 'руб.', ''union all
|
||
select '', 'Зарплата|Топы' , 'Зарплата', 'Топы', '', '', '', 'ТОП_Оплата труда', 'Выдача ДС подотчетнику', '2023-05-01', 0, -1674 , -1674 , '', '', '', 'руб.', ''union all
|
||
select '', 'Зарплата|Топы' , 'Зарплата', 'Топы', '', '', '', 'ТОП_Оплата труда', 'Выдача ДС подотчетнику', '2023-06-01', 0, -1503 , -1503 , '', '', '', 'руб.', ''union all
|
||
select '', 'Зарплата|Топы' , 'Зарплата', 'Топы', '', '', '', 'ТОП_Оплата труда', 'Выдача ДС подотчетнику', '2023-07-01', 0, -1582 , -1582 , '', '', '', 'руб.', ''union all
|
||
select '', 'Зарплата|Топы' , 'Зарплата', 'Топы', '', '', '', 'ТОП_Оплата труда', 'Выдача ДС подотчетнику', '2023-08-01', 0, -1569 , -1569 , '', '', '', 'руб.', ''union all
|
||
select '', 'Зарплата|Топы' , 'Зарплата', 'Топы', '', '', '', 'ТОП_Оплата труда', 'Выдача ДС подотчетнику', '2023-09-01', 0, -2104 , -2104 , '', '', '', 'руб.', ''union all
|
||
select '', 'Зарплата|Топы' , 'Зарплата', 'Топы', '', '', '', 'ТОП_Оплата труда', 'Выдача ДС подотчетнику', '2023-10-01', 0, -2104 , -2104 , '', '', '', 'руб.', '' union all
|
||
select '', 'Зарплата|Топы' , 'Зарплата', 'Топы', '', '', '', 'ТОП_Оплата труда', 'Выдача ДС подотчетнику', '2023-11-01', 0, -2104 , -2104 , '', '', '', 'руб.', '' union all
|
||
select '', 'Зарплата|Топы' , 'Зарплата', 'Топы', '', '', '', 'ТОП_Оплата труда', 'Выдача ДС подотчетнику', '2023-12-01', 0, -2104 , -2104 , '', '', '', 'руб.', ''
|
||
|
||
union all
|
||
select '', 'Зарплата|Топы' , 'Зарплата', 'Топы', '', '', '', 'ТОП_Оплата труда', 'Выдача ДС подотчетнику', '2024-01-01', 0, -1611 , -1611 , '', '', '', 'руб.', ''union all
|
||
select '', 'Зарплата|Топы' , 'Зарплата', 'Топы', '', '', '', 'ТОП_Оплата труда', 'Выдача ДС подотчетнику', '2024-02-01', 0, -1759 , -1759 , '', '', '', 'руб.', ''union all
|
||
select '', 'Зарплата|Топы' , 'Зарплата', 'Топы', '', '', '', 'ТОП_Оплата труда', 'Выдача ДС подотчетнику', '2024-03-01', 0, -1853 , -1853 , '', '', '', 'руб.', ''union all
|
||
select '', 'Зарплата|Топы' , 'Зарплата', 'Топы', '', '', '', 'ТОП_Оплата труда', 'Выдача ДС подотчетнику', '2024-04-01', 0, -1718 , -1718 , '', '', '', 'руб.', ''union all
|
||
select '', 'Зарплата|Топы' , 'Зарплата', 'Топы', '', '', '', 'ТОП_Оплата труда', 'Выдача ДС подотчетнику', '2024-05-01', 0, -1516 , -1516 , '', '', '', 'руб.', ''union all
|
||
select '', 'Зарплата|Топы' , 'Зарплата', 'Топы', '', '', '', 'ТОП_Оплата труда', 'Выдача ДС подотчетнику', '2024-06-01', 0, -1682 , -1682 , '', '', '', 'руб.', ''union all
|
||
select '', 'Зарплата|Топы' , 'Зарплата', 'Топы', '', '', '', 'ТОП_Оплата труда', 'Выдача ДС подотчетнику', '2024-07-01', 0, -1669 , -1669 , '', '', '', 'руб.', ''union all
|
||
|
||
select '', 'Зарплата|Топы' , 'Зарплата', 'Топы', '', '', '', 'ТОП_Оплата труда', 'Выдача ДС подотчетнику', '2024-08-01', 0, -1669 , -1669 , '', '', '', 'руб.', ''union all
|
||
select '', 'Зарплата|Топы' , 'Зарплата', 'Топы', '', '', '', 'ТОП_Оплата труда', 'Выдача ДС подотчетнику', '2024-09-01', 0, -1709 , -1709 , '', '', '', 'руб.', ''union all
|
||
select '', 'Зарплата|Топы' , 'Зарплата', 'Топы', '', '', '', 'ТОП_Оплата труда', 'Выдача ДС подотчетнику', '2024-10-01', 0, -1899 , -1899 , '', '', '', 'руб.', ''union all
|
||
select '', 'Зарплата|Топы' , 'Зарплата', 'Топы', '', '', '', 'ТОП_Оплата труда', 'Выдача ДС подотчетнику', '2024-11-01', 0, -2228 , -2228 , '', '', '', 'руб.', ''union all
|
||
select '', 'Зарплата|Топы' , 'Зарплата', 'Топы', '', '', '', 'ТОП_Оплата труда', 'Выдача ДС подотчетнику', '2024-12-01', 0, -2320 , -2320 , '', '', '', 'руб.', ''
|
||
|
||
union all --2025
|
||
select '', 'Зарплата|Топы' , 'Зарплата', 'Топы', '', '', '', 'ТОП_Оплата труда', 'Выдача ДС подотчетнику', '2025-01-01', 0, -1604 , -1604 , '', '', '', 'руб.', ''--union all
|
||
*/
|
||
) as t
|
||
WHERE g <> 'Прочие перемещения ДС' AND [Статья ДДС] <> 'Закупка_Приобретение валюты'
|
||
GO
|
||
|
||
/****** Object: View [analytics].[nomenclature] Script Date: 2026-02-22 17:45:27 ******/
|
||
SET ANSI_NULLS ON
|
||
GO
|
||
SET QUOTED_IDENTIFIER ON
|
||
GO
|
||
CREATE VIEW analytics.nomenclature as
|
||
SELECT
|
||
LOWER(CONCAT(SUBSTRING ( convert(nvarchar(36), n._IDRRef, 2), 25,8),'-',SUBSTRING ( convert(nvarchar(36), n._IDRRef, 2),21,4),'-',SUBSTRING ( convert(nvarchar(36), n._IDRRef, 2),17,4),'-',SUBSTRING ( convert(nvarchar(36), n._IDRRef, 2),1,4),'-',SUBSTRING ( convert(nvarchar(36), n._IDRRef, 2),5,12) ))as artic_id
|
||
, n._IDRRef as '1c_id'
|
||
, n._Code as code
|
||
, CASE
|
||
WHEN n._Fld21101RRef=0x80C5305A3A00E12B11E5845202CA01FB THEN 'Рублевая'
|
||
WHEN n._Fld21101RRef=0x80C5305A3A00E12B11E584520AEC30EC THEN 'Валютная'
|
||
ELSE 'Неопределено'
|
||
END as cenovaya_gruppa
|
||
|
||
, n._Description as description /*Наименование*/
|
||
, n._Fld21043 as artic /*Артикул*/
|
||
, n._Fld21053RRef as vid_nomen
|
||
, cast( (SELECT _Description FROM [MAG_2019].[dbo].[_Reference260] pr WHERE pr._IDRRef = n._Fld21079RRef) as nvarchar(max)) as 'Производитель'
|
||
, LOWER(CONCAT(SUBSTRING ( convert(nvarchar(36), n._ParentIDRRef, 2), 25,8),'-',SUBSTRING ( convert(nvarchar(36), n._ParentIDRRef, 2),21,4),'-',SUBSTRING ( convert(nvarchar(36), n._ParentIDRRef, 2),17,4),'-',SUBSTRING ( convert(nvarchar(36), n._ParentIDRRef, 2),1,4),'-',SUBSTRING ( convert(nvarchar(36), n._ParentIDRRef, 2),5,12) ))as group_id
|
||
|
||
, n._ParentIDRRef as '1c_group'
|
||
--, isnull(us._Description, 'Менеджер') as [manager]
|
||
|
||
, qr._Fld27045 as 'card'
|
||
, concat('https://media.magok.ru/', f._Fld21201) as 'photo'
|
||
, 2019 as base
|
||
, n._Fld21046 as [Знаменатель веса]
|
||
, n._Fld21049 as [Числитель веса]
|
||
|
||
, n._Fld21089 as [Знаменатель объема]
|
||
, n._Fld21092 as [Числитель объема]
|
||
, n._Fld33413 as [id magok]
|
||
|
||
|
||
, (SELECT TOP 1 upakovka FROM pbi.[БазоваяУпаковка] up WHERE n._IDRRef = up._OwnerID_RRRef) as 'Базовая упаковка'
|
||
, (select r._Description from [MAG_2019].[dbo].[_Reference69] /*виды ном*/ r WHERE r._IDRRef = n._Fld21053RRef) as [Вид номенклатуры]
|
||
|
||
from
|
||
[mag_2019].[dbo]._Reference188X1 n /*номенклатура*/
|
||
LEFT JOIN [mag_2019].[dbo].[_InfoRg27043X1] /* Регистр сведений QR коды */ qr ON qr._Fld27044RRef = n._IDRRef
|
||
LEFT JOIN [mag_2019].[dbo]._Reference191X1 f /*номенклатураПрисоедФайлы*/
|
||
ON f._IDRRef = n._Fld21086RRef
|
||
WHERE n._Folder = 1
|
||
GO
|
||
|
||
/****** Object: View [analytics].[v_contractors] Script Date: 2026-02-22 17:45:27 ******/
|
||
SET ANSI_NULLS ON
|
||
GO
|
||
SET QUOTED_IDENTIFIER ON
|
||
GO
|
||
-- -----------------------------------------------------------------------------
|
||
-- 1. Представления для списков из 1С
|
||
-- -----------------------------------------------------------------------------
|
||
|
||
-- Контрагенты: [pbi].[ПартнерыКонтрагенты] уже существует (из _Reference168)
|
||
-- Для удобства создаём представление analytics.v_contractors с search-friendly полями
|
||
|
||
CREATE VIEW [analytics].[v_contractors] AS
|
||
|
||
SELECT
|
||
c._IDRRef AS contractor_1c_id, -- бинарный ключ 1С
|
||
LOWER(CONCAT(
|
||
SUBSTRING(CONVERT(nvarchar(36), c._IDRRef, 2), 25, 8), '-',
|
||
SUBSTRING(CONVERT(nvarchar(36), c._IDRRef, 2), 21, 4), '-',
|
||
SUBSTRING(CONVERT(nvarchar(36), c._IDRRef, 2), 17, 4), '-',
|
||
SUBSTRING(CONVERT(nvarchar(36), c._IDRRef, 2), 1, 4), '-',
|
||
SUBSTRING(CONVERT(nvarchar(36), c._IDRRef, 2), 5, 12)
|
||
)) AS contractor_id, -- строковый id для API/поиска
|
||
c._Description AS contractor_name
|
||
FROM [MAG_2019].[dbo].[_Reference168] c
|
||
WHERE c._Marked = 0;
|
||
GO
|
||
|
||
/****** Object: View [analytics].[v_manufacturer_counterparty_mapping] Script Date: 2026-02-22 17:45:27 ******/
|
||
SET ANSI_NULLS ON
|
||
GO
|
||
SET QUOTED_IDENTIFIER ON
|
||
GO
|
||
-- Представление для API: map + manufacturer + contractor/producer (из 1С)
|
||
CREATE VIEW [analytics].[v_manufacturer_counterparty_mapping] AS
|
||
SELECT
|
||
mcm.id,
|
||
mcm.manufacturer_id,
|
||
p.producer_id,
|
||
man.manufacturer AS manufacturer_name,
|
||
mcm.contractor_1c_id,
|
||
c.contractor_id,
|
||
c.contractor_name AS contractor_name,
|
||
man.days_of_sales,
|
||
man.logistics_days,
|
||
man.roic_norm
|
||
FROM [analytics].[manufacturer_counterparty_map] mcm
|
||
LEFT JOIN [analytics].[manufacturers] man ON man.id = mcm.manufacturer_id
|
||
LEFT JOIN [analytics].[v_contractors] c ON c.contractor_1c_id = mcm.contractor_1c_id
|
||
LEFT JOIN [analytics].[v_producers] p ON LTRIM(RTRIM(p.producer_name)) = LTRIM(RTRIM(man.manufacturer));
|
||
GO
|
||
|
||
/****** Object: View [analytics].[v_manufacturers_roi_compat] Script Date: 2026-02-22 17:45:27 ******/
|
||
SET ANSI_NULLS ON
|
||
GO
|
||
SET QUOTED_IDENTIFIER ON
|
||
GO
|
||
CREATE VIEW [analytics].[v_manufacturers_roi_compat] AS
|
||
SELECT
|
||
man.id,
|
||
man.manufacturer,
|
||
man.roic_norm AS ROI_norm,
|
||
n_stage.[percent] / 100.0 AS n_percent,
|
||
n_stage.[days] AS n_days,
|
||
m_stage.[percent] / 100.0 AS m_percent,
|
||
m_stage.[days] AS m_days
|
||
FROM [analytics].[manufacturers] man
|
||
LEFT JOIN (
|
||
SELECT manufacturer_id, [percent], [days],
|
||
ROW_NUMBER() OVER (PARTITION BY manufacturer_id ORDER BY sort_order, [days]) AS rn
|
||
FROM [analytics].[manufacturer_payment_stage]
|
||
) n_stage ON n_stage.manufacturer_id = man.id AND n_stage.rn = 1
|
||
LEFT JOIN (
|
||
SELECT manufacturer_id, [percent], [days],
|
||
ROW_NUMBER() OVER (PARTITION BY manufacturer_id ORDER BY sort_order, [days]) AS rn
|
||
FROM [analytics].[manufacturer_payment_stage]
|
||
) m_stage ON m_stage.manufacturer_id = man.id AND m_stage.rn = 2;
|
||
GO
|
||
|
||
/****** Object: View [analytics].[v_producers] Script Date: 2026-02-22 17:45:27 ******/
|
||
SET ANSI_NULLS ON
|
||
GO
|
||
SET QUOTED_IDENTIFIER ON
|
||
GO
|
||
-- Производители из справочника 1С _Reference260
|
||
CREATE VIEW [analytics].[v_producers] AS
|
||
SELECT
|
||
pr._IDRRef AS producer_1c_id, -- бинарный ключ 1С
|
||
LOWER(CONCAT(
|
||
SUBSTRING(CONVERT(nvarchar(36), pr._IDRRef, 2), 25, 8), '-',
|
||
SUBSTRING(CONVERT(nvarchar(36), pr._IDRRef, 2), 21, 4), '-',
|
||
SUBSTRING(CONVERT(nvarchar(36), pr._IDRRef, 2), 17, 4), '-',
|
||
SUBSTRING(CONVERT(nvarchar(36), pr._IDRRef, 2), 1, 4), '-',
|
||
SUBSTRING(CONVERT(nvarchar(36), pr._IDRRef, 2), 5, 12)
|
||
)) AS producer_id, -- строковый id для API/поиска
|
||
pr._Description AS producer_name
|
||
FROM [MAG_2019].[dbo].[_Reference260] pr
|
||
WHERE pr._Marked = 0;
|
||
GO
|
||
|
||
/****** Object: View [analytics].[Бюджет ДДС] Script Date: 2026-02-22 17:45:27 ******/
|
||
SET ANSI_NULLS ON
|
||
GO
|
||
SET QUOTED_IDENTIFIER ON
|
||
GO
|
||
/****** Script for SelectTopNRows command from SSMS ******/
|
||
CREATE VIEW [analytics].[Бюджет ДДС] as
|
||
|
||
SELECT
|
||
DATEADD(year, -2000,[_Period]) as 'Месяц план'
|
||
, [_Fld28390RRef] as '1c_project_id'
|
||
--, CONVERT(VARCHAR(64), [_Fld28390RRef], 1)
|
||
, LOWER(CONCAT(SUBSTRING ( convert(nvarchar(36), [_Fld28390RRef], 2), 25,8),'-',SUBSTRING ( convert(nvarchar(36), [_Fld28390RRef], 2),21,4),'-',SUBSTRING ( convert(nvarchar(36), [_Fld28390RRef], 2),17,4),'-',SUBSTRING ( convert(nvarchar(36), [_Fld28390RRef], 2),1,4),'-',SUBSTRING ( convert(nvarchar(36), [_Fld28390RRef], 2),5,12) )) as 'project id'
|
||
,[_Fld28391] as 'Сумма'
|
||
, dds._Description as 'Статья ДДС'
|
||
, dds._IDRRef as '1c_dds_id'
|
||
, LOWER(CONCAT(SUBSTRING ( convert(nvarchar(36), dds._IDRRef, 2), 25,8),'-',SUBSTRING ( convert(nvarchar(36), dds._IDRRef, 2),21,4),'-',SUBSTRING ( convert(nvarchar(36), dds._IDRRef, 2),17,4),'-',SUBSTRING ( convert(nvarchar(36), dds._IDRRef, 2),1,4),'-',SUBSTRING ( convert(nvarchar(36), dds._IDRRef, 2),5,12) )) as 'dds id'
|
||
, CASE budget._Fld33808Rref
|
||
WHEN 0xB3F668344C8DBA57427B6BC0D450CEA1 THEN 'Наличные'
|
||
WHEN 0xB5530D030E40BC264A41E266D1E84B1A THEN 'Безнал'
|
||
END as [Форма оплаты]
|
||
FROM [MAG_2019].[dbo].[_InfoRg28389] budget /* РегистрСведений.БюджетДДС */
|
||
LEFT JOIN [MAG_2019].[dbo].[_Reference316] dds /*Справочник.СтатьиДвиженияДенежныхСредств*/ ON dds._IDRRef = budget.[_Fld33803RRef]
|
||
|
||
--WHERE _Active = 1
|
||
GO
|
||
|
||
/****** Object: View [analytics].[Внешние остатки] Script Date: 2026-02-22 17:45:27 ******/
|
||
SET ANSI_NULLS ON
|
||
GO
|
||
SET QUOTED_IDENTIFIER ON
|
||
GO
|
||
CREATE VIEW [analytics].[Внешние остатки] as
|
||
SELECT nod._Description AS [Узел]
|
||
, ost._Fld33601 AS [Тип]
|
||
, ost._Fld33595 AS [Склад]
|
||
, DATEADD(YEAR, -2000, ost._Fld33596) AS [Дата обновления]
|
||
, [_Fld28683RRef] as [1c_id]
|
||
, LOWER(CONCAT(SUBSTRING ( convert(nvarchar(36), [_Fld28683RRef], 2), 25,8),'-',SUBSTRING ( convert(nvarchar(36), [_Fld28683RRef], 2),21,4),'-',SUBSTRING ( convert(nvarchar(36), [_Fld28683RRef], 2),17,4),'-',SUBSTRING ( convert(nvarchar(36), [_Fld28683RRef], 2),1,4),'-',SUBSTRING ( convert(nvarchar(36),[_Fld28683RRef], 2),5,12) ))
|
||
as [artic_id]
|
||
, n.code AS [code]
|
||
, n.[1c_group] as [group_id]
|
||
, ost._Fld33599 AS [id_внешний]
|
||
, ost._Fld33602 AS [Количество]
|
||
, ost._Fld33603 AS [Доступное кол-во]
|
||
|
||
FROM [MAG_2019].[dbo].[_InfoRg28682X1] AS ost /* РегистрСведений.ОстаткиТоваровВоВнешнихСистемах */
|
||
LEFT JOIN [mag_pbi].[pbi].[nomenclature] n ON n.[1c_id] = ost._Fld28683RRef /* Справочник.Номенклатура */
|
||
LEFT JOIN [MAG_2019].[dbo].[_Node28072X1] nod ON nod._IDRRef = ost._Fld28684RRef /* ПланОбмена.ВнешниеСистемы */
|
||
GO
|
||
|
||
/****** Object: View [analytics].[Где товар] Script Date: 2026-02-22 17:45:27 ******/
|
||
SET ANSI_NULLS ON
|
||
GO
|
||
SET QUOTED_IDENTIFIER ON
|
||
GO
|
||
CREATE VIEW [analytics].[Где товар] as
|
||
SELECT
|
||
[1c_id]
|
||
, [artic_id]
|
||
, [Где товар]
|
||
, quantity
|
||
FROM [analytics].[Товары на складах]
|
||
UNION ALL
|
||
SELECT
|
||
[1c_id]
|
||
, [artic_id]
|
||
, [Где товар]
|
||
, quantity
|
||
FROM [analytics].[Остатки МП]
|
||
UNION ALL
|
||
SELECT
|
||
[1c_id]
|
||
, [artic_id]
|
||
, [Где товар]
|
||
, Резерв as quantity
|
||
FROM [ostatki].[РезервыМПиОПТ]
|
||
|
||
UNION ALL
|
||
|
||
SELECT
|
||
[1c_id]
|
||
, [artic_id]
|
||
, [Где товар]
|
||
, Количество as quantity
|
||
FROM [pbi].[Заказо_в_пути]-- where [Номер заказа поставщику] = 'АНУТ-003313'
|
||
|
||
UNION ALL
|
||
|
||
SELECT
|
||
[1c_id]
|
||
, [artic_id]
|
||
, [Где товар]
|
||
, Количество as quantity
|
||
FROM [pbi].[Заказо_в_производстве]
|
||
GO
|
||
|
||
/****** Object: View [analytics].[Где товар с упаковками] Script Date: 2026-02-22 17:45:27 ******/
|
||
SET ANSI_NULLS ON
|
||
GO
|
||
SET QUOTED_IDENTIFIER ON
|
||
GO
|
||
/****** Script for SelectTopNRows command from SSMS ******/
|
||
CREATE view analytics.[Где товар с упаковками] as
|
||
SELECT [1c_id]
|
||
,t.[artic_id]
|
||
,[Где товар]
|
||
,[quantity] as Штук
|
||
, case WHEN upak.upakovka <>0 then t.quantity / upak.upakovka
|
||
else 0 END as Упаковок
|
||
, upak.вес
|
||
, Высота
|
||
, Глубина
|
||
, Ширина
|
||
, Объем
|
||
FROM [mag_pbi].[analytics].[Где товар] t
|
||
INNER JOIN [mag_pbi].[pbi].[БазоваяУпаковка] upak
|
||
ON t.[1c_id] = upak.[_IDRRef]
|
||
GO
|
||
|
||
/****** Object: View [analytics].[Группы_статей_ДДС] Script Date: 2026-02-22 17:45:27 ******/
|
||
SET ANSI_NULLS ON
|
||
GO
|
||
SET QUOTED_IDENTIFIER ON
|
||
GO
|
||
CREATE view [analytics].[Группы_статей_ДДС] as
|
||
WITH DirectReports([Статья ддс], g, g1,g2,g3,g4,[1c_id],[id], [_ParentIDRRef], lvl, [path]/*Name, Title, EmployeeID, EmployeeLevel, Sort*/)
|
||
AS (SELECT
|
||
CONVERT(varchar(255), e.[_Description]),
|
||
CONVERT(varchar(255),e.[_Description]), --g
|
||
CONVERT(varchar(255),''), --g1
|
||
CONVERT(varchar(255),''), --g2
|
||
CONVERT(varchar(255),''), --g3
|
||
CONVERT(varchar(255),''), --g4
|
||
|
||
e._IDRRef,
|
||
LOWER(CONCAT(SUBSTRING ( convert(nvarchar(36), _IDRRef, 2), 25,8),'-',SUBSTRING ( convert(nvarchar(36), _IDRRef, 2),21,4),'-',SUBSTRING ( convert(nvarchar(36), _IDRRef, 2),17,4),'-',SUBSTRING ( convert(nvarchar(36), _IDRRef, 2),1,4),'-',SUBSTRING ( convert(nvarchar(36), _IDRRef, 2),5,12) )),
|
||
e._ParentIDRRef,
|
||
1,
|
||
CONVERT(varchar(255), e.[_Description])
|
||
FROM [mag_2019].[dbo].[_Reference316] AS e
|
||
WHERE e._ParentIDRRef = 0x00000000000000000000000000000000 AND e._Marked = 0
|
||
UNION ALL
|
||
SELECT CONVERT(varchar(255), /*REPLICATE ('| ' , lvl) +*/ e._Description),
|
||
CONVERT(varchar(255),d.g),
|
||
/*g1*/ CASE lvl + 1 WHEN 2 THEN CONVERT(varchar(255),e._Description) ELSE CONVERT(varchar(255),d.g1) END,
|
||
/*g2*/ CASE lvl + 1 WHEN 3 THEN CONVERT(varchar(255),e._Description) ELSE CONVERT(varchar(255),d.g2) END,
|
||
/*g3*/ CASE lvl + 1 WHEN 4 THEN CONVERT(varchar(255),e._Description) ELSE CONVERT(varchar(255),d.g3) END,
|
||
/*g4*/ CASE lvl + 1 WHEN 5 THEN CONVERT(varchar(255),e._Description) ELSE CONVERT(varchar(255),d.g4) END,
|
||
|
||
e._IDRRef,
|
||
LOWER(CONCAT(SUBSTRING ( convert(nvarchar(36), _IDRRef, 2), 25,8),'-',SUBSTRING ( convert(nvarchar(36), _IDRRef, 2),21,4),'-',SUBSTRING ( convert(nvarchar(36), _IDRRef, 2),17,4),'-',SUBSTRING ( convert(nvarchar(36), _IDRRef, 2),1,4),'-',SUBSTRING ( convert(nvarchar(36), _IDRRef, 2),5,12) )),
|
||
e._ParentIDRRef,
|
||
lvl + 1,
|
||
CONVERT (varchar(255), RTRIM(path) + ' | ' + e._Description)
|
||
FROM [mag_2019].[dbo].[_Reference316] AS e
|
||
INNER JOIN DirectReports AS d ON e._ParentIDRRef = d.[1c_id]
|
||
WHERE e._Marked = 0
|
||
)
|
||
SELECT *
|
||
FROM DirectReports
|
||
--ORDER BY Sort
|
||
GO
|
||
|
||
/****** Object: View [analytics].[Заказы] Script Date: 2026-02-22 17:45:27 ******/
|
||
SET ANSI_NULLS ON
|
||
GO
|
||
SET QUOTED_IDENTIFIER ON
|
||
GO
|
||
CREATE VIEW [analytics].[Заказы]
|
||
AS
|
||
SELECT
|
||
DATEADD(YEAR, -2000, z._Date_Time) AS [Дата заказа поставщику],
|
||
z._Number AS [Номер заказа поставщику],
|
||
t._Fld3473RRef AS [1C_id],
|
||
|
||
LOWER(
|
||
SUBSTRING(CONVERT(nvarchar(36), p._IDRRef, 2), 25, 8) + '-' +
|
||
SUBSTRING(CONVERT(nvarchar(36), p._IDRRef, 2), 21, 4) + '-' +
|
||
SUBSTRING(CONVERT(nvarchar(36), p._IDRRef, 2), 17, 4) + '-' +
|
||
SUBSTRING(CONVERT(nvarchar(36), p._IDRRef, 2), 1, 4) + '-' +
|
||
SUBSTRING(CONVERT(nvarchar(36), p._IDRRef, 2), 5, 12)
|
||
) AS partner_id,
|
||
|
||
r._Description AS Контрагент,
|
||
|
||
CASE z._Fld3417RRef
|
||
WHEN 0xB9440E49408A17534955319EBF0DAE60 THEN 'Согласован'
|
||
WHEN 0x99FD3E66AA3EFB074984044D5A69CFD5 THEN 'В пути'
|
||
WHEN 0x973A5675AC6A17F64DA37EC6C22FC12C THEN 'Подтвержден'
|
||
WHEN 0xA55F81415BA33BC24A053ED26C6EC02E THEN 'Закрыт'
|
||
WHEN 0xA87A8B13710A30B447DFF1614E84D167 THEN 'В производстве'
|
||
WHEN 0x8542BD023FE7B70E4613087D853F26E4 THEN 'Тех. заказ'
|
||
WHEN 0xB38AD6232E2D17D44287D9924E5E6DF2 THEN 'На согласовании'
|
||
WHEN 0xB2A33CF1C7286AF3463F20D54AE5A0BC THEN 'Выгружен на складе'
|
||
ELSE 'Неизвестно'
|
||
END AS Статус,
|
||
|
||
t._Fld3473RRef AS nom_1c_id,
|
||
n._Description AS Наименование,
|
||
n._Code AS code,
|
||
n._Fld21043 AS Артикул,
|
||
|
||
LOWER(
|
||
SUBSTRING(CONVERT(nvarchar(36), t._Fld3473RRef, 2), 25, 8) + '-' +
|
||
SUBSTRING(CONVERT(nvarchar(36), t._Fld3473RRef, 2), 21, 4) + '-' +
|
||
SUBSTRING(CONVERT(nvarchar(36), t._Fld3473RRef, 2), 17, 4) + '-' +
|
||
SUBSTRING(CONVERT(nvarchar(36), t._Fld3473RRef, 2), 1, 4) + '-' +
|
||
SUBSTRING(CONVERT(nvarchar(36), t._Fld3473RRef, 2), 5, 12)
|
||
) AS artic_id,
|
||
|
||
t._Fld3477 AS Количество,
|
||
CONVERT(decimal(10, 2), t._Fld3477 / pack.base_pack) AS [Кол. упаковок],
|
||
|
||
t._Fld3480 AS Цена,
|
||
t._Fld3481 AS Сумма,
|
||
|
||
g.g,
|
||
g.path,
|
||
|
||
v._Description AS Валюта,
|
||
CASE v._Description
|
||
WHEN 'USD' THEN _Fld3481 * (SELECT rate FROM [mag_pbi].[analytics].[Курсы валют на сегодня] WHERE currency='USD2')
|
||
ELSE _Fld3481 * (SELECT rate FROM [mag_pbi].[analytics].[Курсы валют на сегодня] WHERE currency=v._Description)
|
||
END AS 'Сумма в руб.',
|
||
|
||
CASE
|
||
WHEN z._Fld3420 < '4000' THEN DATEADD(MONTH, 4, GETDATE())
|
||
ELSE DATEADD(YEAR, -2000, z._Fld3420)
|
||
END
|
||
as 'Желаемая дата',
|
||
z._Fld3432 as 'Комментарий'
|
||
|
||
FROM MAG_2019.dbo._Document408X1 AS z -- Документ заказ поставщику
|
||
INNER JOIN MAG_2019.dbo._Document408_VT3470X1 AS t ON t._Document408_IDRRef = z._IDRRef -- табличная часть
|
||
LEFT JOIN MAG_2019.dbo._Reference215X1 AS p ON p._IDRRef = z._Fld3409RRef -- Справочник.Партнеры
|
||
LEFT JOIN MAG_2019.dbo._Reference168 AS r ON r._IDRRef = z._Fld3410RRef -- Справочник.Контрагенты
|
||
INNER JOIN MAG_2019.dbo._Reference188X1 AS n ON n._IDRRef = t._Fld3473RRef -- Номенклатура
|
||
LEFT JOIN MAG_2019.dbo._Reference50 AS v ON v._IDRRef = z._Fld3414RRef -- Справочник.Валюты
|
||
INNER JOIN pbi.groups AS g ON n._ParentIDRRef = g.[1c_id] -- группы
|
||
|
||
OUTER APPLY (
|
||
SELECT TOP 1
|
||
ISNULL(NULLIF(up.upakovka, 0), 1) AS base_pack
|
||
FROM pbi.БазоваяУпаковка up
|
||
WHERE up._OwnerID_RRRef = t._Fld3473RRef
|
||
) AS pack
|
||
|
||
WHERE
|
||
z._Posted = 1
|
||
AND z._Marked = 0
|
||
AND t._Fld3491RRef = 0
|
||
--AND g NOT LIKE '*Внутр%'
|
||
--AND z._Fld3417RRef <> 0xA55F81415BA33BC24A053ED26C6EC02E /* Не закрыт */
|
||
--AND z._Fld3417RRef <> 0x8542BD023FE7B70E4613087D853F26E4 /* Не Тех. заказ */
|
||
--AND z._Fld3417RRef <> 0x973A5675AC6A17F64DA37EC6C22FC12C /* Не Подтвержден */
|
||
GO
|
||
|
||
/****** Object: View [analytics].[ЗаказыВЗаявках] Script Date: 2026-02-22 17:45:27 ******/
|
||
SET ANSI_NULLS ON
|
||
GO
|
||
SET QUOTED_IDENTIFIER ON
|
||
GO
|
||
CREATE VIEW [analytics].[ЗаказыВЗаявках]
|
||
AS
|
||
SELECT
|
||
CONVERT(date, DATEADD(YEAR, -2000, z._Date_Time)) AS [Дата заказа поставщику],
|
||
z._Number AS [Номер заказа поставщику],
|
||
|
||
/* заявка из ТЧ */
|
||
CASE WHEN za._IDRRef IS NOT NULL THEN t._Fld34117RRef END AS [Заявка_1c_id],
|
||
ISNULL(za._Number, N'Без заявки') AS [Номер заявки],
|
||
CASE
|
||
WHEN za._IDRRef IS NOT NULL THEN CONVERT(date, DATEADD(YEAR, -2000, za._Date_Time))
|
||
END AS [Дата заявки],
|
||
|
||
/* Контрагент (текст) */
|
||
r._Description AS [Контрагент],
|
||
|
||
/* cagent_id (строка GUID) из 1С-ссылки контрагента */
|
||
LOWER(
|
||
SUBSTRING(CONVERT(nvarchar(36), r._IDRRef, 2), 25, 8) + '-' +
|
||
SUBSTRING(CONVERT(nvarchar(36), r._IDRRef, 2), 21, 4) + '-' +
|
||
SUBSTRING(CONVERT(nvarchar(36), r._IDRRef, 2), 17, 4) + '-' +
|
||
SUBSTRING(CONVERT(nvarchar(36), r._IDRRef, 2), 1, 4) + '-' +
|
||
SUBSTRING(CONVERT(nvarchar(36), r._IDRRef, 2), 5, 12)
|
||
) AS cagent_id,
|
||
|
||
pc.partner_1cid,
|
||
pc.partner_id,
|
||
|
||
CASE z._Fld3417RRef
|
||
WHEN 0xB9440E49408A17534955319EBF0DAE60 THEN N'Согласован'
|
||
WHEN 0x99FD3E66AA3EFB074984044D5A69CFD5 THEN N'В пути'
|
||
WHEN 0x973A5675AC6A17F64DA37EC6C22FC12C THEN N'Подтвержден'
|
||
WHEN 0xA55F81415BA33BC24A053ED26C6EC02E THEN N'Закрыт'
|
||
WHEN 0xA87A8B13710A30B447DFF1614E84D167 THEN N'В производстве'
|
||
WHEN 0x8542BD023FE7B70E4613087D853F26E4 THEN N'Тех. заказ'
|
||
WHEN 0xB38AD6232E2D17D44287D9924E5E6DF2 THEN N'На согласовании'
|
||
WHEN 0xB2A33CF1C7286AF3463F20D54AE5A0BC THEN N'Выгружен на складе'
|
||
ELSE N'Неизвестно'
|
||
END AS [Статус],
|
||
|
||
/* номенклатура */
|
||
t._Fld3473RRef AS nom_1c_id,
|
||
|
||
/* nom_1c_id в нужном формате */
|
||
LOWER(
|
||
SUBSTRING(CONVERT(nvarchar(36), t._Fld3473RRef, 2), 25, 8) + '-' +
|
||
SUBSTRING(CONVERT(nvarchar(36), t._Fld3473RRef, 2), 21, 4) + '-' +
|
||
SUBSTRING(CONVERT(nvarchar(36), t._Fld3473RRef, 2), 17, 4) + '-' +
|
||
SUBSTRING(CONVERT(nvarchar(36), t._Fld3473RRef, 2), 1, 4) + '-' +
|
||
SUBSTRING(CONVERT(nvarchar(36), t._Fld3473RRef, 2), 5, 12)
|
||
) AS artic_id,
|
||
|
||
n._Description AS [Наименование],
|
||
n._Code AS code,
|
||
n._Fld21043 AS [Артикул],
|
||
|
||
t._Fld3477 AS [Количество],
|
||
CONVERT(decimal(10, 2), t._Fld3477 / pack.base_pack) AS [Кол. упаковок],
|
||
|
||
t._Fld3480 AS [Цена],
|
||
t._Fld3481 AS [Сумма],
|
||
|
||
g.g,
|
||
g.path,
|
||
|
||
/* Валюта + Сумма в руб. */
|
||
v._Description AS [Валюта],
|
||
z._Fld3414RRef AS currency_id,
|
||
CASE v._Description
|
||
WHEN 'USD' THEN t._Fld3481 * (
|
||
SELECT rate
|
||
FROM [analytics].[Курсы валют на сегодня]
|
||
WHERE currency = 'USD2'
|
||
)
|
||
ELSE t._Fld3481 * (
|
||
SELECT rate
|
||
FROM [analytics].[Курсы валют на сегодня]
|
||
WHERE currency = v._Description
|
||
)
|
||
END AS [Сумма в руб.]
|
||
|
||
FROM [MAG_2019].dbo._Document408X1 z
|
||
JOIN [MAG_2019].dbo._Document408_VT3470X1 t
|
||
ON t._Document408_IDRRef = z._IDRRef
|
||
|
||
LEFT JOIN [MAG_2019].dbo._Document34036 za
|
||
ON za._IDRRef = t._Fld34117RRef
|
||
|
||
LEFT JOIN [MAG_2019].dbo._Reference168 r
|
||
ON r._IDRRef = z._Fld3410RRef
|
||
|
||
LEFT JOIN [pbi].[ПартнерыКонтрагенты] pc
|
||
ON pc.cagent_id = LOWER(
|
||
SUBSTRING(CONVERT(nvarchar(36), r._IDRRef, 2), 25, 8) + '-' +
|
||
SUBSTRING(CONVERT(nvarchar(36), r._IDRRef, 2), 21, 4) + '-' +
|
||
SUBSTRING(CONVERT(nvarchar(36), r._IDRRef, 2), 17, 4) + '-' +
|
||
SUBSTRING(CONVERT(nvarchar(36), r._IDRRef, 2), 1, 4) + '-' +
|
||
SUBSTRING(CONVERT(nvarchar(36), r._IDRRef, 2), 5, 12)
|
||
)
|
||
|
||
JOIN [MAG_2019].dbo._Reference188X1 n
|
||
ON n._IDRRef = t._Fld3473RRef
|
||
|
||
LEFT JOIN [MAG_2019].dbo._Reference50 v
|
||
ON v._IDRRef = z._Fld3414RRef
|
||
|
||
LEFT JOIN [pbi].[groups] g
|
||
ON n._ParentIDRRef = g.[1c_id]
|
||
|
||
OUTER APPLY (
|
||
SELECT TOP 1
|
||
ISNULL(NULLIF(up.upakovka, 0), 1) AS base_pack
|
||
FROM [pbi].[БазоваяУпаковка] up
|
||
WHERE up._OwnerID_RRRef = t._Fld3473RRef
|
||
) AS pack
|
||
|
||
WHERE
|
||
z._Posted = 1
|
||
AND z._Marked = 0
|
||
AND t._Fld3491RRef = 0;
|
||
GO
|
||
|
||
/****** Object: View [analytics].[Заявки_без_проекта_неоплачено] Script Date: 2026-02-22 17:45:27 ******/
|
||
SET ANSI_NULLS ON
|
||
GO
|
||
SET QUOTED_IDENTIFIER ON
|
||
GO
|
||
/****** Script for SelectTopNRows command from SSMS ******/
|
||
CREATE VIEW [analytics].[Заявки_без_проекта_неоплачено] as
|
||
SELECT [Номер заявки]
|
||
,[Дата создания]
|
||
,[Дата оплаты план]
|
||
,[Статус]
|
||
,[Валюта]
|
||
,[Статья ДДС]
|
||
,[1c_dds_id]
|
||
,[dds id]
|
||
,[Сумма]
|
||
,[Сумма в руб.]
|
||
,[Оплачено]
|
||
,[Хоз. операция]
|
||
,[Комментарий заявки]
|
||
,[Комментарий расшифровки]
|
||
,[Партнер]
|
||
,[Получатель]
|
||
,[Форма оплаты]
|
||
,[organization]
|
||
,[project id]
|
||
,[1c_project_id]
|
||
FROM [mag_pbi].[analytics].[Заявки_на_оплату_по_табличной_части]
|
||
WHERE [Оплачено]=0 AND [project id] is null AND [Дата оплаты план] >= '2024-06-01'
|
||
GO
|
||
|
||
/****** Object: View [analytics].[Заявки_на_оплату] Script Date: 2026-02-22 17:45:27 ******/
|
||
SET ANSI_NULLS ON
|
||
GO
|
||
SET QUOTED_IDENTIFIER ON
|
||
GO
|
||
CREATE VIEW [analytics].[Заявки_на_оплату]
|
||
AS SELECT
|
||
[_Number] as 'Номер заявки'
|
||
, _Document416_IDRRef
|
||
,DATEADD(year, -2000, [_Fld3902]) as 'Дата оплаты план'
|
||
, CASE
|
||
WHEN [_Fld3880RRef]= 0x96388D3803D0E2B243682753FD602008 THEN 'Согласована'
|
||
WHEN [_Fld3880RRef] = 0xA53B783FB8E84C2D4A977FB197BB9B6A THEN 'Не согласована'
|
||
WHEN [_Fld3880RRef] = 0xB22A4A3C82F7B70D452E0F89A2703597 THEN 'К оплате'
|
||
WHEN [_Fld3880RRef] = 0x9EB3FD405C68C64C42B491437EDE1CAB THEN 'Отклонена'
|
||
END as 'Статус'
|
||
, [_Fld3882] as 'Сумма'
|
||
, case spv._Description
|
||
WHEN 'USD' THEN [_Fld3882] * (SELECT rate FROM [mag_pbi].[analytics].[Курсы валют на сегодня] WHERE currency='USD2')
|
||
ELSE [_Fld3882] * (SELECT rate FROM [mag_pbi].[analytics].[Курсы валют на сегодня] WHERE currency=spv._Description)
|
||
END
|
||
as 'Сумма в руб.'
|
||
, CASE WHEN (SELECT
|
||
SUM(CASE WHEN [_RecordKind] = 0 THEN [_Fld16211] ELSE -[_Fld16211] END) AS summ
|
||
FROM [MAG_2019].[dbo].[_AccumRg16206] -- РегистрНакопления.ДенежныеСредстваКВыплате
|
||
WHERE [_Fld16207_RRRef] = _Document416_IDRRef
|
||
) = 0 THEN 1 ELSE 0 END as 'Оплачено'
|
||
, spv._Description as 'Валюта документа'
|
||
,DATEADD(year, -2000, [_Date_Time]) as [Дата создания]
|
||
--,DATEADD(year, -2000, [_Fld3890]) as 'Дата оплаты желат'
|
||
, LOWER(CONCAT(SUBSTRING ( convert(nvarchar(36), dr._Fld3957RRef, 2), 25,8),'-',SUBSTRING ( convert(nvarchar(36), dr._Fld3957RRef, 2),21,4),'-',SUBSTRING ( convert(nvarchar(36), dr._Fld3957RRef, 2),17,4),'-',SUBSTRING ( convert(nvarchar(36), dr._Fld3957RRef, 2),1,4),'-',SUBSTRING ( convert(nvarchar(36), dr._Fld3957RRef, 2),5,12) ))as partner_id
|
||
, (SELECT _description FROM [mag_2019].[dbo]._Reference215X1 prt /*партнеры*/ WHERE prt._IDRRef = dr._Fld3957RRef) as 'Партнер'
|
||
, (SELECT _Description FROM [mag_2019].[dbo]._Reference168 kt /*контрагенты*/ WHERE kt._IDRRef = r._Fld3891RRef)as 'Получатель'
|
||
,[_Fld3900] as 'Комментарий'
|
||
, (SELECT _Description FROM [MAG_2019].[dbo].[_Reference316] dds /*Справочник.СтатьиДвиженияДенежныхСредств*/ WHERE dds._IDRRef = r._Fld3904RRef) as 'Статья ДДС'
|
||
, e.value as 'Хоз. операция'
|
||
FROM [MAG_2019].[dbo].[_Document416] r /*ЗаявкаНаРасходованиеДенежныхСредств */
|
||
LEFT JOIN [MAG_2019].[dbo].[_Document416_VT3955] dr /*Документ.ЗаявкаНаРасходованиеДенежныхСредств.ТабличнаяЧасть.РасшифровкаПлатежа*/ ON r._IDRRef = dr._Document416_IDRRef
|
||
LEFT JOIN mag_pbi.pbi.enums e ON e._IDRref = r.[_Fld3881RRef] AND e.enum = 'Хоз. операции'/*Перечисление хозяйственная операция*/
|
||
LEFT JOIN [MAG_2019].[dbo].[_Reference50] spv ON spv._IDRRef = r.[_Fld3883RRef] /*Справочник.Валюты */
|
||
|
||
|
||
--LEFT JOIN [MAG_2019].[dbo].[_AccumRg16206]
|
||
WHERE /*[_Fld3881RRef]=0xB96DB293C2F88D8C46DF79811923F574 AND */ r.[_Posted] = 0x01 AND r._Marked = 0x00
|
||
GO
|
||
|
||
/****** Object: View [analytics].[Заявки_на_оплату_по_табличной_части] Script Date: 2026-02-22 17:45:27 ******/
|
||
SET ANSI_NULLS ON
|
||
GO
|
||
SET QUOTED_IDENTIFIER ON
|
||
GO
|
||
CREATE view [analytics].[Заявки_на_оплату_по_табличной_части] as
|
||
SELECT
|
||
z._Number as 'Номер заявки'
|
||
--, z._Posted, z_t._Fld3964RRef, z._IDRRef
|
||
, DATEADD(year, -2000, z.[_Date_Time]) as [Дата создания]
|
||
--, DATEADD(year, -2000,z.[_Fld3902]) as 'Дата оплаты план'
|
||
--, CONVERT(datetime2, FORMAT(DATEADD(year, -2000, [_Fld3902]),'yyyy-MM-dd'), 120) as 'Дата оплаты план'
|
||
,DATEADD(year, -2000, [_Fld3902]) as 'Дата оплаты план'
|
||
, CASE
|
||
WHEN z.[_Fld3880RRef]= 0x96388D3803D0E2B243682753FD602008 THEN 'Согласована'
|
||
WHEN z.[_Fld3880RRef] = 0xA53B783FB8E84C2D4A977FB197BB9B6A THEN 'Не согласована'
|
||
WHEN z.[_Fld3880RRef] = 0xB22A4A3C82F7B70D452E0F89A2703597 THEN 'К оплате'
|
||
WHEN z.[_Fld3880RRef] = 0x9EB3FD405C68C64C42B491437EDE1CAB THEN 'Отклонена'
|
||
END as 'Статус'
|
||
, spv._Description as 'Валюта'
|
||
, dds._Description as 'Статья ДДС'
|
||
, dds._IDRRef as '1c_dds_id'
|
||
, LOWER(CONCAT(SUBSTRING ( convert(nvarchar(36), dds._IDRRef, 2), 25,8),'-',SUBSTRING ( convert(nvarchar(36), dds._IDRRef, 2),21,4),'-',SUBSTRING ( convert(nvarchar(36), dds._IDRRef, 2),17,4),'-',SUBSTRING ( convert(nvarchar(36), dds._IDRRef, 2),1,4),'-',SUBSTRING ( convert(nvarchar(36), dds._IDRRef, 2),5,12) ))as 'dds id'
|
||
, z_t._Fld3959 as 'Сумма'
|
||
, case spv._Description
|
||
WHEN 'USD' THEN _Fld3959 * (SELECT rate FROM [mag_pbi].[analytics].[Курсы валют на сегодня] WHERE currency='USD2')
|
||
ELSE _Fld3959 * (SELECT rate FROM [mag_pbi].[analytics].[Курсы валют на сегодня] WHERE currency=spv._Description)
|
||
END
|
||
as 'Сумма в руб.'
|
||
, CASE WHEN (SELECT
|
||
SUM(CASE WHEN [_RecordKind] = 0 THEN [_Fld16211] ELSE -[_Fld16211] END) AS summ
|
||
FROM [MAG_2019].[dbo].[_AccumRg16206] -- РегистрНакопления.ДенежныеСредстваКВыплате
|
||
WHERE [_Fld16207_RRRef] = _Document416_IDRRef
|
||
) = 0 THEN 1 ELSE 0 END as 'Оплачено'
|
||
, e.value as 'Хоз. операция'
|
||
, z.[_Fld3900] as 'Комментарий заявки'
|
||
, z_t.[_Fld3968] as 'Комментарий расшифровки'
|
||
, (SELECT _description FROM [mag_2019].[dbo]._Reference215X1 prt /*партнеры*/ WHERE prt._IDRRef = z_t._Fld3957RRef) as 'Партнер'
|
||
, (SELECT _Description FROM [mag_2019].[dbo]._Reference168 kt /*контрагенты*/ WHERE kt._IDRRef = z._Fld3891RRef)as 'Получатель'
|
||
, case when org._Description = 'АНТУРАЖ ЛТД ООО' then 'Безнал' ELSE 'Наличные' END as 'Форма оплаты'
|
||
, org._Description as 'organization'
|
||
, p.id as 'project id'
|
||
, p.[1c_id] as '1c_project_id'
|
||
FROM [MAG_2019].[dbo].[_Document416_VT3955] z_t /*Документ.ЗаявкаНаРасходованиеДенежныхСредств.ТабличнаяЧасть.РасшифровкаПлатежа*/
|
||
INNER JOIN [MAG_2019].[dbo].[_Document416] z /* Документ.ЗаявкаНаРасходованиеДенежныхСредств */
|
||
ON z._IDRRef = z_t._Document416_IDRRef
|
||
LEFT JOIN mag_pbi.pbi.enums e ON e._IDRref = z.[_Fld3881RRef] AND e.enum = 'Хоз. операции'/*Перечисление хозяйственная операция*/
|
||
LEFT JOIN [MAG_2019].[dbo].[_Reference50] spv ON spv._IDRRef = z.[_Fld3883RRef] /*Справочник.Валюты */
|
||
LEFT JOIN [MAG_2019].[dbo].[_Reference316] dds /*Справочник.СтатьиДвиженияДенежныхСредств*/ ON dds._IDRRef = z_t._Fld3964RRef
|
||
LEFT JOIN [MAG_2019].[dbo].[_Reference198X1] org ON org._IDRRef = z._Fld3879RRef/*справочник организации*/
|
||
LEFT JOIN [mag_pbi].[analytics].[Проекты] p
|
||
ON p.[1c_id] = [_Fld28407RRef]
|
||
WHERE z._Posted = 1 AND z._Marked = 0x00
|
||
AND z.[_Fld3880RRef] <> 0x9EB3FD405C68C64C42B491437EDE1CAB
|
||
GO
|
||
|
||
/****** Object: View [analytics].[ЗаявкиТовары] Script Date: 2026-02-22 17:45:27 ******/
|
||
SET ANSI_NULLS ON
|
||
GO
|
||
SET QUOTED_IDENTIFIER ON
|
||
GO
|
||
CREATE VIEW [analytics].[ЗаявкиТовары] AS
|
||
|
||
WITH req AS (
|
||
SELECT
|
||
z._IDRRef AS zayavka_id,
|
||
CONVERT(date, DATEADD(YEAR, -2000, z._Date_Time)) AS zayavka_date,
|
||
z._Number AS zayavka_number,
|
||
z._Fld34044RRef AS zayavka_status_ref,
|
||
z._Fld34039RRef AS partner_1c_id,
|
||
z._Fld34040RRef AS contractor_1c_id,
|
||
CONVERT(decimal(18, 2), z._Fld34051) AS summa_doc,
|
||
z._Fld34045RRef AS valuta_ref,
|
||
CASE
|
||
WHEN z._Fld34118 = '00010101' THEN NULL
|
||
ELSE CONVERT(date, DATEADD(YEAR, -2000, z._Fld34118))
|
||
END AS data_postupleniya,
|
||
t._LineNo34053 AS line_no,
|
||
t._Fld34054RRef AS nom_1c_id,
|
||
CONVERT(decimal(18, 3), t._Fld34056) AS qty_initial,
|
||
CONVERT(decimal(18, 2), t._Fld34059) AS summa_line
|
||
FROM MAG_2019.dbo._Document34036 z
|
||
JOIN MAG_2019.dbo._Document34036_VT34052 t ON t._Document34036_IDRRef = z._IDRRef
|
||
WHERE z._Posted = 1 AND z._Marked = 0
|
||
),
|
||
deduct AS (
|
||
SELECT
|
||
tpo._Fld34117RRef AS zayavka_id,
|
||
tpo._Fld3473RRef AS nom_1c_id,
|
||
SUM(CONVERT(decimal(18, 3), tpo._Fld3477)) AS qty_deduct
|
||
FROM MAG_2019.dbo._Document408X1 po
|
||
JOIN MAG_2019.dbo._Document408_VT3470X1 tpo ON tpo._Document408_IDRRef = po._IDRRef
|
||
WHERE
|
||
po._Posted = 1
|
||
AND po._Marked = 0
|
||
AND tpo._Fld3491RRef = 0
|
||
AND po._Fld3417RRef IN (
|
||
0x99FD3E66AA3EFB074984044D5A69CFD5, /* В пути */
|
||
0xA55F81415BA33BC24A053ED26C6EC02E, /* Закрыт */
|
||
0xB2A33CF1C7286AF3463F20D54AE5A0BC, /* Выгружен на складе */
|
||
0x97B9E76E7BCACEF3450504B1FAFC3230 /* Принят */
|
||
)
|
||
GROUP BY tpo._Fld34117RRef, tpo._Fld3473RRef
|
||
)
|
||
|
||
SELECT
|
||
r.zayavka_date AS [Дата заявки],
|
||
r.zayavka_number AS [Номер заявки],
|
||
CASE r.zayavka_status_ref
|
||
WHEN 0xB9D8F6098E165A4945FD453A8394D9A6 THEN N'Планируется'
|
||
WHEN 0x89144CF303169EA446E30A9CFAC257D1 THEN N'На согласовании'
|
||
WHEN 0x8734648F71AB3BE645DCAC11CF62F9AE THEN N'Выполнено'
|
||
WHEN 0xA6CC3F7ADAD37C7D473BFD1D132A96E8 THEN N'В производстве'
|
||
ELSE N'Неизвестно'
|
||
END AS [Статус заявки],
|
||
prt._Description AS [Партнер],
|
||
ctg._Description AS [Контрагент],
|
||
val._Description AS [Валюта],
|
||
|
||
/* ── Сумма документа ── */
|
||
r.summa_doc AS [Сумма документа],
|
||
CASE val._Description
|
||
WHEN 'USD' THEN r.summa_doc *
|
||
(SELECT rate FROM [analytics].[Курсы валют на сегодня] WHERE currency = 'USD2')
|
||
ELSE r.summa_doc *
|
||
(SELECT rate FROM [analytics].[Курсы валют на сегодня] WHERE currency = val._Description)
|
||
END AS [Сумма документа в руб],
|
||
|
||
r.data_postupleniya AS [Дата поступления],
|
||
ISNULL(man.manufacturer, N'Не найдено') AS manufacturer,
|
||
ISNULL(man.ROI_norm, 136) / 100.0 AS roi_year_normalized,
|
||
man.n_percent,
|
||
man.n_days,
|
||
man.m_percent,
|
||
man.m_days,
|
||
r.line_no AS line_no,
|
||
r.nom_1c_id AS nom_1c_id,
|
||
LOWER(
|
||
SUBSTRING(CONVERT(nvarchar(36), r.nom_1c_id, 2), 25, 8) + '-' +
|
||
SUBSTRING(CONVERT(nvarchar(36), r.nom_1c_id, 2), 21, 4) + '-' +
|
||
SUBSTRING(CONVERT(nvarchar(36), r.nom_1c_id, 2), 17, 4) + '-' +
|
||
SUBSTRING(CONVERT(nvarchar(36), r.nom_1c_id, 2), 1, 4) + '-' +
|
||
SUBSTRING(CONVERT(nvarchar(36), r.nom_1c_id, 2), 5, 12)
|
||
) AS artic_id,
|
||
n._Description AS [Номенклатура],
|
||
n._Code AS code,
|
||
n._Fld21043 AS [Артикул],
|
||
g.g,
|
||
g.path,
|
||
|
||
/* ── Количество начальное ── */
|
||
r.qty_initial AS [Количество начальное],
|
||
CONVERT(decimal(18, 3), r.qty_initial / pack.base_pack)
|
||
AS [Кол. упаковок начальное],
|
||
|
||
/* ── Количество заказано (вычет) ── */
|
||
ISNULL(d.qty_deduct, 0) AS [Количество заказано (вычет)],
|
||
CONVERT(decimal(18, 3), ISNULL(d.qty_deduct, 0) / pack.base_pack)
|
||
AS [Кол. упаковок заказано (вычет)],
|
||
|
||
/* ── Количество текущее ── */
|
||
CONVERT(decimal(18, 3), r.qty_initial - ISNULL(d.qty_deduct, 0))
|
||
AS [Количество текущее],
|
||
CONVERT(decimal(18, 3), (r.qty_initial - ISNULL(d.qty_deduct, 0)) / pack.base_pack)
|
||
AS [Кол. упаковок текущее],
|
||
|
||
/* ── Сумма строки начальная ── */
|
||
r.summa_line AS [Сумма строки],
|
||
CASE val._Description
|
||
WHEN 'USD' THEN r.summa_line *
|
||
(SELECT rate FROM [analytics].[Курсы валют на сегодня] WHERE currency = 'USD2')
|
||
ELSE r.summa_line *
|
||
(SELECT rate FROM [analytics].[Курсы валют на сегодня] WHERE currency = val._Description)
|
||
END AS [Сумма строки в руб],
|
||
|
||
/* ── Сумма строки текущая (пропорционально текущему количеству) ── */
|
||
CASE
|
||
WHEN r.qty_initial = 0 THEN CONVERT(decimal(18, 2), 0)
|
||
ELSE CONVERT(decimal(18, 2),
|
||
r.summa_line / r.qty_initial * (r.qty_initial - ISNULL(d.qty_deduct, 0)))
|
||
END AS [Сумма строки текущая],
|
||
CASE val._Description
|
||
WHEN 'USD' THEN
|
||
CASE WHEN r.qty_initial = 0 THEN 0
|
||
ELSE r.summa_line / r.qty_initial * (r.qty_initial - ISNULL(d.qty_deduct, 0)) END *
|
||
(SELECT rate FROM [analytics].[Курсы валют на сегодня] WHERE currency = 'USD2')
|
||
ELSE
|
||
CASE WHEN r.qty_initial = 0 THEN 0
|
||
ELSE r.summa_line / r.qty_initial * (r.qty_initial - ISNULL(d.qty_deduct, 0)) END *
|
||
(SELECT rate FROM [analytics].[Курсы валют на сегодня] WHERE currency = val._Description)
|
||
END AS [Сумма строки текущая в руб]
|
||
|
||
FROM req r
|
||
JOIN MAG_2019.dbo._Reference188X1 n ON n._IDRRef = r.nom_1c_id
|
||
LEFT JOIN MAG_2019.dbo._Reference215X1 prt ON prt._IDRRef = r.partner_1c_id
|
||
LEFT JOIN MAG_2019.dbo._Reference168 ctg ON ctg._IDRRef = r.contractor_1c_id
|
||
LEFT JOIN MAG_2019.dbo._Reference50 val ON val._IDRRef = r.valuta_ref
|
||
LEFT JOIN analytics.manufacturer_counterparty_map map ON map.contractor_1c_id = r.contractor_1c_id
|
||
LEFT JOIN analytics.v_manufacturers_roi_compat man ON man.id = map.manufacturer_id
|
||
LEFT JOIN pbi.[groups] g ON n._ParentIDRRef = g.[1c_id]
|
||
OUTER APPLY (
|
||
SELECT TOP 1 ISNULL(NULLIF(up.upakovka, 0), 1) AS base_pack
|
||
FROM pbi.[БазоваяУпаковка] up
|
||
WHERE up._OwnerID_RRRef = r.nom_1c_id
|
||
) AS pack
|
||
LEFT JOIN deduct d ON d.zayavka_id = r.zayavka_id AND d.nom_1c_id = r.nom_1c_id;
|
||
GO
|
||
|
||
/****** Object: View [analytics].[Курсы валют на сегодня] Script Date: 2026-02-22 17:45:27 ******/
|
||
SET ANSI_NULLS ON
|
||
GO
|
||
SET QUOTED_IDENTIFIER ON
|
||
GO
|
||
/****** Script for SelectTopNRows command from SSMS ******//*
|
||
SELECT TOP (1000) [_Period]
|
||
,[_Fld13219RRef]
|
||
,[_Fld13220]
|
||
,[_Fld13221]
|
||
--,[_Fld1150]
|
||
, r._Description
|
||
FROM [MAG_2019].[dbo].[_InfoRg13218] i
|
||
INNER JOIN [MAG_2019].[dbo].[_Reference50] r
|
||
ON i._Fld13219RRef = r._IDRRef
|
||
|
||
*/
|
||
CREATE VIEW analytics.[Курсы валют на сегодня] as
|
||
|
||
SELECT
|
||
r._Description as currency
|
||
,( SELECT top 1 [_Fld13220] FROM [MAG_2019].[dbo].[_InfoRg13218] i WHERE i._Fld13219RRef = r._IDRRef ORDER BY [_Period] DESC) as rate
|
||
FROM
|
||
[MAG_2019].[dbo].[_Reference50] r
|
||
GO
|
||
|
||
/****** Object: View [analytics].[Ожидаемое_поступление] Script Date: 2026-02-22 17:45:27 ******/
|
||
SET ANSI_NULLS ON
|
||
GO
|
||
SET QUOTED_IDENTIFIER ON
|
||
GO
|
||
CREATE VIEW [analytics].[Ожидаемое_поступление] as
|
||
SELECT
|
||
d._Number as [Номер]
|
||
, CONVERT(datetime2, FORMAT(DATEADD(year, -2000, [_Date_Time]),'yyyy-MM-dd'), 120) as [Дата поступления]
|
||
, CASE _Fld5074RRef
|
||
WHEN 0xB5530D030E40BC264A41E266D1E84B1A then 'Безнал'
|
||
WHEN 0xB3F668344C8DBA57427B6BC0D450CEA1 then 'Наличные'
|
||
ELSE 'Любая'
|
||
END as [Форма оплаты]
|
||
, d._Fld5070 / 1000 as 'Сумма'
|
||
, (SELECT _Description FROM [MAG_2019].[dbo].[_Reference316] dds /*Справочник.СтатьиДвиженияДенежныхСредств*/ WHERE dds._IDRRef = d._Fld5072RRef) as 'Статья ДДС'
|
||
, (SELECT _Description FROM [MAG_2019].[dbo].[_Reference198X1] org WHERE org._IDRRef = d._Fld5069RRef) as 'Организация'
|
||
, (SELECT _Description FROM [MAG_2019].[dbo].[_Reference50] spv /*Справочник.Валюты */ WHERE spv._IDRRef = d._Fld5071RRef) as 'Валюта документа'
|
||
, d._Fld5073 as 'Назначение платежа'
|
||
FROM MAG_2019.dbo._Document443 d /* Документ.ОжидаемоеПоступлениеДенежныхСредств */
|
||
WHERE d._Marked = 0x00 AND d._Posted = 0x01
|
||
|
||
/*
|
||
0xB5530D030E40BC264A41E266D1E84B1A безнал
|
||
0xB3F668344C8DBA57427B6BC0D450CEA1 нал
|
||
|
||
*/
|
||
GO
|
||
|
||
/****** Object: View [analytics].[Ожидаемый расход] Script Date: 2026-02-22 17:45:27 ******/
|
||
SET ANSI_NULLS ON
|
||
GO
|
||
SET QUOTED_IDENTIFIER ON
|
||
GO
|
||
/****** Script for SelectTopNRows command from SSMS ******/
|
||
CREATE VIEW [analytics].[Ожидаемый расход] as
|
||
|
||
SELECT
|
||
[Дата оплаты план]
|
||
,[Статья ДДС]
|
||
,[Сумма в руб.] / 1000 [Сумма в руб.]
|
||
,[Форма оплаты]
|
||
, 'Заявка' as [Тип]
|
||
, [Хоз. операция]
|
||
FROM [mag_pbi].[analytics].[Заявки_без_проекта_неоплачено]
|
||
|
||
UNION ALL
|
||
|
||
SELECT [Месяц план]
|
||
,[Статья ДДС]
|
||
,[Сумма] / 1000 [Сумма]
|
||
,[Форма оплаты]
|
||
, 'Бюджет' as [Тип]
|
||
, 'Бюджет' as [Хоз. операция]
|
||
FROM [mag_pbi].[analytics].[Бюджет ДДС]
|
||
GO
|
||
|
||
/****** Object: View [analytics].[Остатки МП] Script Date: 2026-02-22 17:45:27 ******/
|
||
SET ANSI_NULLS ON
|
||
GO
|
||
SET QUOTED_IDENTIFIER ON
|
||
GO
|
||
CREATE VIEW analytics.[Остатки МП] as
|
||
SELECT
|
||
t.[Где товар],
|
||
t.artic_id,
|
||
t.[1c_id],
|
||
sum(t.quantity) as quantity
|
||
FROM (
|
||
select
|
||
case
|
||
WHEN CHARINDEX('Ozon', [Узел])>0 then 'Ozon'
|
||
WHEN CHARINDEX('WildBerries', [Узел])>0 then 'WildBerries'
|
||
END
|
||
as 'Где товар'
|
||
,
|
||
[1c_id],
|
||
[artic_id],
|
||
sum([Доступное кол-во]) as quantity
|
||
FROM [mag_pbi].[analytics].[Внешние остатки] as t
|
||
WHERE t.[Дата обновления] >= FORMAT(GETDATE(), 'yyyy-MM-dd')
|
||
group by Узел, [1c_id], [artic_id]
|
||
) as t
|
||
GROUP BY t.[Где товар],
|
||
t.artic_id,
|
||
t.[1c_id]
|
||
GO
|
||
|
||
/****** Object: View [analytics].[Продажи_Учёт_Маржа_по_дням] Script Date: 2026-02-22 17:45:27 ******/
|
||
SET ANSI_NULLS ON
|
||
GO
|
||
SET QUOTED_IDENTIFIER ON
|
||
GO
|
||
/****** Script for SelectTopNRows command from SSMS ******/
|
||
CREATE VIEW [analytics].[Продажи_Учёт_Маржа_по_дням]
|
||
AS
|
||
WITH base AS (
|
||
-- Продажи и учетная сумма (только Статья = 'Реализация')
|
||
SELECT
|
||
CAST(s.[Период] AS date) AS [d],
|
||
s.[1c_id],
|
||
s.Code,
|
||
SUM(CAST(s.[Сумма] AS decimal(38,6))) AS sales_sum,
|
||
SUM(CAST(s.[Учетная сумма, руб] AS decimal(38,6))) AS accounting_sum,
|
||
CAST(0 AS decimal(38,6)) AS ads_cost,
|
||
CAST(0 AS decimal(38,6)) AS order_cost
|
||
FROM [mag_pbi].[pbiProd].[СводныйСебестоимость Для PBI] AS s
|
||
WHERE s.[Статья] = N'Реализация'
|
||
GROUP BY CAST(s.[Период] AS date), s.[1c_id], s.Code
|
||
|
||
UNION ALL
|
||
|
||
-- Реклама (затраты)
|
||
SELECT
|
||
CAST(r.[Дата] AS date) AS [d],
|
||
r.[1c_id],
|
||
n.code,
|
||
CAST(0 AS decimal(38,6)) AS sales_sum,
|
||
CAST(0 AS decimal(38,6)) AS accounting_sum,
|
||
SUM(CAST(r.[Затраты, руб] AS decimal(38,6))) AS ads_cost,
|
||
CAST(0 AS decimal(38,6)) AS order_cost
|
||
FROM [mag_pbi].[pbi].[РекламаМаркетплейсы] AS r
|
||
INNER JOIN mag_pbi.pbi.nomenclature n ON r.[1c_id] = n.[1c_id]
|
||
GROUP BY CAST(r.[Дата] AS date), r.[1c_id],n.code
|
||
|
||
UNION ALL
|
||
|
||
|
||
-- Стоимость обработки заказа (затраты)
|
||
SELECT
|
||
CAST(o.[date] AS date) AS [d],
|
||
o.[1c_id],
|
||
n.code,
|
||
CAST(0 AS decimal(38,6)) AS sales_sum,
|
||
CAST(0 AS decimal(38,6)) AS accounting_sum,
|
||
CAST(0 AS decimal(38,6)) AS ads_cost,
|
||
SUM(CAST(o.[Сумма] AS decimal(38,6))) AS order_cost
|
||
FROM [mag_pbi].[pbi].[Стоимость обработки заказа] AS o
|
||
INNER JOIN pbi.nomenclature n ON o.[1c_id] = n.[1c_id]
|
||
GROUP BY CAST(o.[date] AS date), o.[1c_id], n.code
|
||
)
|
||
SELECT
|
||
b.[d],
|
||
b.[1c_id],
|
||
b.Code,
|
||
SUM(b.sales_sum) AS [Сумма продаж],
|
||
SUM(b.accounting_sum) AS [Учетная сумма],
|
||
SUM(b.ads_cost) AS [Затраты на рекламу],
|
||
SUM(b.order_cost) AS [Стоимость обработки],
|
||
-- «Чистая выручка» после вычета рекламных и обработочных затрат
|
||
(SUM(b.sales_sum) - SUM(b.ads_cost) - SUM(b.order_cost)) AS [Сумма продаж (нетто)],
|
||
-- Торговая надбавка = нетто-продажи минус учетная сумма
|
||
(SUM(b.sales_sum) - SUM(b.ads_cost) - SUM(b.order_cost) - SUM(b.accounting_sum)) AS [Торговая надбавка]
|
||
FROM base b
|
||
GROUP BY b.[d], b.[1c_id],b.Code;
|
||
|
||
|
||
|
||
/*
|
||
SELECT
|
||
[Период] --datetime2(0)
|
||
,[Статья]
|
||
,[1c_id]
|
||
,[Количество]
|
||
,[Сумма]
|
||
,[Учетная сумма, руб]
|
||
FROM [mag_pbi].[pbiProd].[СводныйСебестоимость Для PBI] s
|
||
WHERE s.Статья = N'Реализация'
|
||
|
||
SELECT
|
||
[Дата] --datetime2(0)
|
||
,[1c_id]
|
||
,[Затраты, руб]
|
||
FROM [mag_pbi].[pbi].[РекламаМаркетплейсы]
|
||
|
||
SELECT
|
||
[date] --datetime2(0)
|
||
,[1c_id]
|
||
,[Сумма]
|
||
FROM [mag_pbi].[pbi].[Стоимость обработки заказа]
|
||
*/
|
||
GO
|
||
|
||
/****** Object: View [analytics].[Проекты] Script Date: 2026-02-22 17:45:27 ******/
|
||
SET ANSI_NULLS ON
|
||
GO
|
||
SET QUOTED_IDENTIFIER ON
|
||
GO
|
||
/****** Script for SelectTopNRows command from SSMS ******/
|
||
|
||
CREATE VIEW [analytics].[Проекты] as
|
||
SELECT
|
||
|
||
p.[_IDRRef] as '1c_id'
|
||
, LOWER(CONCAT(SUBSTRING ( convert(nvarchar(36), p._IDRRef, 2), 25,8),'-',SUBSTRING ( convert(nvarchar(36), p._IDRRef, 2),21,4),'-',SUBSTRING ( convert(nvarchar(36), p._IDRRef, 2),17,4),'-',SUBSTRING ( convert(nvarchar(36), p._IDRRef, 2),1,4),'-',SUBSTRING ( convert(nvarchar(36), p._IDRRef, 2),5,12) )) as 'id'
|
||
, us._Description as 'Ответственный'
|
||
,[_Code] as 'Код УТ'
|
||
,p.[_Description] as 'Название'
|
||
,[_Fld22715] as 'Завершен'
|
||
|
||
,[_Fld22711] as 'ПлановаяДатаНачала'
|
||
,[_Fld22712] as 'ДатаНачала'
|
||
,[_Fld22713] as 'ПлановаяДатаОкончания'
|
||
,[_Fld22714] as 'ДатаОкончания'
|
||
,[_Fld22716] as 'Комментарий'
|
||
|
||
FROM [MAG_2019].[dbo].[_Reference258] p /* Справочник.Проекты */
|
||
LEFT JOIN [MAG_2019].[dbo].[_Reference228X1] us
|
||
ON us._IDRRef = [_Fld22710RRef]
|
||
WHERE p._Marked = 0
|
||
GO
|
||
|
||
/****** Object: View [analytics].[Товары на складах] Script Date: 2026-02-22 17:45:27 ******/
|
||
SET ANSI_NULLS ON
|
||
GO
|
||
SET QUOTED_IDENTIFIER ON
|
||
GO
|
||
/****** Script for SelectTopNRows command from SSMS ******/
|
||
CREATE view [analytics].[Товары на складах] as
|
||
SELECT
|
||
t._Fld17485RRef as [1c_id]
|
||
, LOWER(CONCAT(SUBSTRING ( convert(nvarchar(36), t._Fld17485RRef, 2), 25,8),'-',SUBSTRING ( convert(nvarchar(36), t._Fld17485RRef, 2),21,4),'-',SUBSTRING ( convert(nvarchar(36), t._Fld17485RRef, 2),17,4),'-',SUBSTRING ( convert(nvarchar(36), t._Fld17485RRef, 2),1,4),'-',SUBSTRING ( convert(nvarchar(36), t._Fld17485RRef, 2),5,12) ))
|
||
as artic_id
|
||
, s._Description as sklad
|
||
, s.[Категория] as [Где товар]
|
||
, sum( [_Fld17491]*(case _RecordKind when 0 then 1 when 1 then -1 end) ) as quantity
|
||
FROM [mag_2019].[dbo].[_AccumRg17484] t /*регистр товары на складах*/
|
||
--INNER JOIN [mag_2019].[dbo]._Reference188X1 n /*номенклатура*/ ON n._IDRRef = t._Fld17485RRef
|
||
--INNER JOIN [mag_pbi].[pbi].[groups] g ON n._ParentIDRRef = g.[1c_id]
|
||
INNER JOIN [mag_pbi].[pbi].[sklad_2019] s /*склад*/ ON s._IDRRef = t._Fld17488RRef
|
||
WHERE s.[Категория]='Хранение' OR s.[Категория]='Фасовка' --g.path like 'Игрушки%'
|
||
GROUP BY t._Fld17485RRef, s._Description, s.[Категория]
|
||
GO
|