mcp-tech-spec / Project_documentation.md
Eremenko's picture
Project documentation example added.
9327040
|
Raw History Blame Contribute Delete
64.9 kB

Продажи

Мера "Кол-во"

1. Общая информация

Название меры: Кол-во
Тип: Мера (Measure)
Источник: OLAP.bim
Папка отображения: Базовые меры
Формат отображения: #,0

2. Назначение (Цель/задача)

Мера "Кол-во" предназначена для подсчета общего количества товаров/услуг в заказах клиентов с учетом определенных фильтров. Данная мера является базовой и используется для расчета других производных показателей в аналитических отчетах.

3. Исходные данные

Основная таблица: М001 Заказы Клиентов
Основное поле: [Количество]
Дополнительные поля для фильтрации:

  • [ВГО булево] - булево поле для исключения ВГО (внутригрупповые операции)
  • [Отмененный] - булево поле для исключения отмененных заказов

4. Логика обработки

4.1. Выражение DAX

CALCULATE (
    SUM ( 'М001 Заказы Клиентов'[Количество] ),
    NOT 'М001 Заказы Клиентов'[ВГО булево],
    NOT ( 'М001 Заказы Клиентов'[Отмененный] )
)

4.2. Описание логики

  1. Основная агрегация: Суммирование значений поля [Количество] из таблицы 'М001 Заказы Клиентов'
  2. Фильтрация по ВГО: Исключение записей, где [ВГО булево] = TRUE
  3. Фильтрация по статусу: Исключение отмененных заказов, где [Отмененный] = TRUE
  4. Контекстная фильтрация: Мера автоматически применяет фильтры из срезов и других измерений

5. Результат

5.1. Выходные данные

  • Тип данных: Числовой (Decimal)
  • Формат отображения: Целое число с разделителями тысяч (#,0)
  • Единица измерения: Штуки/единицы товара

5.2. Примеры использования

  1. Общее количество товаров в заказах - без дополнительных фильтров
  2. Количество по клиентам - с фильтром по конкретному клиенту
  3. Количество по периодам - с фильтром по дате заказа
  4. Количество по товарным группам - с фильтром по категории товара

6. Зависимости

6.1. Таблицы

  • М001 Заказы Клиентов - основная таблица фактов
  • Связанные справочные таблицы через внешние ключи

6.2. Поля

  • [Количество] - основное поле для агрегации
  • [ВГО булево] - поле для фильтрации
  • [Отмененный] - поле для фильтрации

6.3. Связанные меры

Мера может использоваться в качестве основы для:

  • Производных мер (проценты, коэффициенты)
  • Расчетных полей
  • Других агрегированных показателей

6.4. Поток данных

  1. OLAP мера: [Кол-во] в кубе OLAP.
  2. Представление DWH: Данные для меры поступают из представления [uni].[vt_order].
  3. Таблицы фактов DWH: Представление [uni].[vt_order] агрегирует данные из следующих таблиц:
    • [dbo].[fact_order]
    • [dbo].[fact_cancelled_order]
    • [dbo].[fact_order_characteristics_received]
  4. Хранимые процедуры: Эти таблицы фактов загружаются и обрабатываются следующими хранимыми процедурами:
    • [dbo].[sp_load_fact_order]
    • [dbo].[sp_load_fact_cancelled_order]
    • [dbo].[sp_load_fact_order_characteristics_received]
[dbo].[sp_load_fact_order]

Назначение: Процедура формирует основной набор данных для анализа продаж.

Источники и логика:

  • Основные данные: Берутся из документа "Заказ клиента" из системы 1С. Для каждой товарной позиции в заказе извлекается информация о количестве, цене, сумме, предоставленных скидках и ставке НДС.
  • Обогащение данных: Информация о заказе дополняется сведениями из связанных справочников 1С:
    • Клиент и партнер: Кто является покупателем.
    • Менеджер: Кто ответственный за заказ.
    • Номенклатура: Какой товар заказан.
    • Организация: От лица какой нашей организации оформлен заказ.
    • Склад, подразделение, сезон: Дополнительные аналитические разрезы.
  • Финансовые показатели: Процедура также рассчитывает состояние оплаты по заказу, обращаясь к регистру "Расчеты с клиентами", и определяет наличие просроченной задолженности.

Бизнес-ценность: Позволяет получить полную и обогащенную картину по каждому заказу для построения отчетов по продажам, маржинальности и эффективности работы менеджеров.

[dbo].[sp_load_fact_cancelled_order]

Назначение: Процедура собирает данные по отмененным позициям в заказах клиентов.

Источники и логика:

  • Основные данные: Как и в предыдущей процедуре, источником является документ "Заказ клиента" из 1С. Ключевое отличие — отбираются только те строки товаров, у которых установлен признак "Отменено".
  • Дата отмены: Для понимания, когда именно произошла отмена, процедура обращается к регистру "История изменений заказа клиента".
  • Контекст заказа: Вся остальная информация (клиент, менеджер, суммы, скидки) подтягивается аналогично процедуре загрузки основных заказов, чтобы сохранить полный контекст на момент отмены.

Бизнес-ценность: Дает возможность анализировать объем и причины отмен, оценивать упущенную выручку и выявлять тенденции, связанные с отказами от товаров.

[dbo].[sp_load_fact_order_characteristics_received]

Назначение: Процедура отслеживает поступление товаров по заказам, у которых в процессе обработки менялись характеристики (например, цвет, размер).

Источники и логика:

  • Основные данные: Процедура отталкивается от данных, где зафиксированы факты поступления товаров по заказам, в которых были изменения (fact_order_characteristics_changes).
  • Связь с заказом: Используя номер заказа, процедура обращается к исходному документу "Заказ клиента" в 1С, чтобы получить полную информацию о клиенте, менеджере, дате и других атрибутах заказа.
  • Фильтр: Отбираются только те записи, которые отражают фактическое поступление товара (quantity_received > 0), а не просто резервирование.

Бизнес-ценность: Позволяет контролировать и анализировать исполнение "сложных" заказов, где характеристики товара были изменены. Это помогает понять, как такие изменения влияют на сроки и полноту выполнения заказа.


Мера "Кол-во реальное"

1. Общая информация

Название меры: Кол-во реальное Тип: Мера (Measure) Источник: OLAP.bim Папка отображения: Базовые меры Формат отображения: #,0

2. Назначение (Цель/задача)

Мера "Кол-во реальное" предназначена для расчета количества товаров в заказах, имеющих статус "Реальный". Этот статус означает, что заказ подтвержден и находится в процессе выполнения. Мера позволяет отделить фактические, подтвержденные продажи от предварительных или отмененных заказов.

3. Исходные данные

Основная мера: [Кол-во] Таблица для фильтрации: '010 Документы заказов' Поле для фильтрации: [Статус заказа]

4. Логика обработки

4.1. Выражение DAX

CALCULATE (
    [Кол-во],
    KEEPFILTERS ( '010 Документы заказов'[Статус заказа] = "Реальный" )
)

4.2. Описание логики

  1. Базовый расчет: Мера использует в качестве основы уже существующую меру [Кол-во], которая агрегирует общее количество товаров.
  2. Фильтрация по статусу: На результат меры [Кол-во] накладывается фильтр по полю [Статус заказа] из таблицы '010 Документы заказов'.
  3. Условие фильтрации: Учитываются только те строки, где значение статуса заказа строго равно "Реальный".
  4. Сохранение контекста: Функция KEEPFILTERS используется для того, чтобы новый фильтр не перезаписывал существующие фильтры, а применялся в дополнение к ним.

5. Результат

5.1. Выходные данные

  • Тип данных: Числовой (Decimal)
  • Формат отображения: Целое число с разделителями тысяч (#,0)
  • Единица измерения: Штуки/единицы товара

5.2. Примеры использования

  1. Объем реальных продаж - для оценки подтвержденных обязательств.
  2. Сравнение реального и общего количества - для анализа воронки продаж и доли подтвержденных заказов.
  3. Динамика реальных заказов - для отслеживания роста или падения фактических продаж по периодам.

6. Зависимости

6.1. Таблицы

  • 'М001 Заказы Клиентов' - как источник данных для базовой меры [Кол-во].
  • '010 Документы заказов' - для применения фильтра по статусу.

6.2. Поля

  • 'М001 Заказы Клиентов'[Количество] - основное поле для агрегации в мере [Кол-во].
  • '010 Документы заказов'[Статус заказа] - поле для фильтрации.

6.3. Связанные меры

  • [Кол-во] - является основой для расчета данной меры.

6.4. Поток данных

Поток данных для этой меры идентичен потоку для меры [Кол-во], но с дополнительным шагом фильтрации на уровне OLAP.

  1. OLAP мера: [Кол-во реальное] в кубе OLAP.
  2. Представления DWH: Данные поступают из представлений [uni].[vt_order] (для количества) и [uni].[vt_order_attributes] (для статуса заказа).
  3. Таблицы фактов и измерений DWH:
    • Представление [uni].[vt_order] агрегирует данные из таблиц [dbo].[fact_order], [dbo].[fact_cancelled_order], [dbo].[fact_order_characteristics_received].
    • Представление [uni].[vt_order_attributes] основано на таблице [dbo].[dim_order_attributes].
  4. Хранимые процедуры: Эти таблицы загружаются и обрабатываются следующими хранимыми процедурами:
    • [dbo].[sp_load_fact_order]
    • [dbo].[sp_load_fact_cancelled_order]
    • [dbo].[sp_load_fact_order_characteristics_received]
    • [dbo].[sp_load_dim_order_attributes]
[dbo].[sp_load_dim_order_attributes]

Назначение: Процедура создает и обновляет справочник атрибутов заказов.

Источники и логика:

  • Основные данные: Источником является документ "Заказ клиента" из 1С.
  • Атрибуты: Процедура извлекает ключевые атрибуты, характеризующие состояние заказа в целом: его номер, дата, статус (например, "К выполнению", "Закрыт"), состояние (например, "Ожидается аванс", "В резерве") и другие флаги, такие как "Проведен" или "Согласовано клиентом".
  • Обновление: Процедура работает в режиме MERGE, что позволяет эффективно обновлять существующие записи, если статус или состояние заказа изменились в 1С, и добавлять новые, если появились новые заказы.

Бизнес-ценность: Позволяет получить срез актуальных статусов и состояний по всем заказам, что является ключевым для фильтрации и анализа в отчетах (например, для меры "Кол-во реальное").


Мера "Сумма (со скидкой)"

1. Общая информация

Название меры: Сумма (со скидкой)
Тип: Мера (Measure)
Источник: OLAP.bim
Папка отображения: Базовые меры
Формат отображения: #,0

2. Назначение (Цель/задача)

Мера "Сумма (со скидкой)" предназначена для расчета общей суммы продаж с учетом предоставленных скидок. Данная мера является базовой для анализа выручки и используется для расчета других производных показателей в аналитических отчетах.

3. Исходные данные

Основная таблица: М001 Заказы Клиентов
Основное поле: [Сумма со скидкой]
Дополнительные поля для фильтрации:

  • [Отмененный] - булево поле для исключения отмененных заказов

4. Логика обработки

4.1. Выражение DAX

CALCULATE (
    SUM ( 'М001 Заказы Клиентов'[Сумма со скидкой] ),
    NOT ( 'М001 Заказы Клиентов'[Отмененный] )
)

4.2. Описание логики

  1. Основная агрегация: Суммирование значений поля [Сумма со скидкой] из таблицы 'М001 Заказы Клиентов'
  2. Фильтрация по статусу: Исключение отмененных заказов, где [Отмененный] = TRUE
  3. Контекстная фильтрация: Мера автоматически применяет фильтры из срезов и других измерений

5. Результат

5.1. Выходные данные

  • Тип данных: Числовой (Decimal)
  • Формат отображения: Целое число с разделителями тысяч (#,0)
  • Единица измерения: Валюта (рубли)

5.2. Примеры использования

  1. Общая выручка от продаж - без дополнительных фильтров
  2. Выручка по клиентам - с фильтром по конкретному клиенту
  3. Выручка по периодам - с фильтром по дате заказа
  4. Выручка по товарным группам - с фильтром по категории товара

6. Зависимости

6.1. Таблицы

  • М001 Заказы Клиентов - основная таблица фактов
  • Связанные справочные таблицы через внешние ключи

6.2. Поля

  • [Сумма со скидкой] - основное поле для агрегации
  • [Отмененный] - поле для фильтрации

6.3. Связанные меры

Мера может использоваться в качестве основы для:

  • Производных мер (проценты, коэффициенты)
  • Расчетных полей
  • Других агрегированных показателей

6.4. Поток данных

  1. OLAP мера: [Сумма (со скидкой)] в кубе OLAP.
  2. Представление DWH: Данные для меры поступают из представления [uni].[vt_order].
  3. Таблицы фактов DWH: Представление [uni].[vt_order] агрегирует данные из следующих таблиц:
    • [dbo].[fact_order]
    • [dbo].[fact_cancelled_order]
    • [dbo].[fact_order_characteristics_received]
  4. Хранимые процедуры: Эти таблицы фактов загружаются и обрабатываются следующими хранимыми процедурами:
    • [dbo].[sp_load_fact_order]
    • [dbo].[sp_load_fact_cancelled_order]
    • [dbo].[sp_load_fact_order_characteristics_received]
[dbo].[sp_load_fact_order]

Назначение: Процедура формирует основной набор данных для анализа продаж.

Источники и логика:

  • Основные данные: Берутся из документа "Заказ клиента" из системы 1С. Для каждой товарной позиции в заказе извлекается информация о количестве, цене, сумме, предоставленных скидках и ставке НДС.
  • Обогащение данных: Информация о заказе дополняется сведениями из связанных справочников 1С:
    • Клиент и партнер: Кто является покупателем.
    • Менеджер: Кто ответственный за заказ.
    • Номенклатура: Какой товар заказан.
    • Организация: От лица какой нашей организации оформлен заказ.
    • Склад, подразделение, сезон: Дополнительные аналитические разрезы.
  • Финансовые показатели: Процедура также рассчитывает состояние оплаты по заказу, обращаясь к регистру "Расчеты с клиентами", и определяет наличие просроченной задолженности.

Бизнес-ценность: Позволяет получить полную и обогащенную картину по каждому заказу для построения отчетов по продажам, маржинальности и эффективности работы менеджеров.

[dbo].[sp_load_fact_cancelled_order]

Назначение: Процедура собирает данные по отмененным позициям в заказах клиентов.

Источники и логика:

  • Основные данные: Как и в предыдущей процедуре, источником является документ "Заказ клиента" из 1С. Ключевое отличие — отбираются только те строки товаров, у которых установлен признак "Отменено".
  • Дата отмены: Для понимания, когда именно произошла отмена, процедура обращается к регистру "История изменений заказа клиента".
  • Контекст заказа: Вся остальная информация (клиент, менеджер, суммы, скидки) подтягивается аналогично процедуре загрузки основных заказов, чтобы сохранить полный контекст на момент отмены.

Бизнес-ценность: Дает возможность анализировать объем и причины отмен, оценивать упущенную выручку и выявлять тенденции, связанные с отказами от товаров.

[dbo].[sp_load_fact_order_characteristics_received]

Назначение: Процедура отслеживает поступление товаров по заказам, у которых в процессе обработки менялись характеристики (например, цвет, размер).

Источники и логика:

  • Основные данные: Процедура отталкивается от данных, где зафиксированы факты поступления товаров по заказам, в которых были изменения (fact_order_characteristics_changes).
  • Связь с заказом: Используя номер заказа, процедура обращается к исходному документу "Заказ клиента" в 1С, чтобы получить полную информацию о клиенте, менеджере, дате и других атрибутах заказа.
  • Фильтр: Отбираются только те записи, которые отражают фактическое поступление товара (quantity_received > 0), а не просто резервирование.

Бизнес-ценность: Позволяет контролировать и анализировать исполнение "сложных" заказов, где характеристики товара были изменены. Это помогает понять, как такие изменения влияют на сроки и полноту выполнения заказа.


Мера "Сумма (со скидкой) реальная"

1. Общая информация

Название меры: Сумма (со скидкой) реальная Тип: Мера (Measure) Источник: OLAP.bim Папка отображения: Базовые меры Формат отображения: #,0

2. Назначение (Цель/задача)

Мера "Сумма (со скидкой) реальная" предназначена для расчета суммы продаж с учетом скидок только для заказов, имеющих статус "Реальный". Этот статус означает, что заказ подтвержден и находится в процессе выполнения. Мера позволяет отделить фактические, подтвержденные продажи от предварительных или отмененных заказов.

3. Исходные данные

Основная мера: [Сумма (со скидкой)] Таблица для фильтрации: 'М001 Заказы Клиентов' Поля для фильтрации:

  • [ВГО булево] - для исключения внутригрупповых операций
  • [Статус заказа] - для фильтрации по статусу "Реальный"

4. Логика обработки

4.1. Выражение DAX

CALCULATE (
   [Сумма (со скидкой)],
   NOT 'М001 Заказы Клиентов'[ВГО булево],
   KEEPFILTERS( 'М001 Заказы Клиентов'[Статус заказа] = "Реальный" )
)

4.2. Описание логики

  1. Базовый расчет: Мера использует в качестве основы уже существующую меру [Сумма (со скидкой)], которая агрегирует общую сумму продаж.
  2. Фильтрация по ВГО: Исключаются записи, относящиеся к внутригрупповым операциям.
  3. Фильтрация по статусу: На результат меры [Сумма (со скидкой)] накладывается фильтр по полю [Статус заказа] из таблицы 'М001 Заказы Клиентов'.
  4. Условие фильтрации: Учитываются только те строки, где значение статуса заказа строго равно "Реальный".
  5. Сохранение контекста: Функция KEEPFILTERS используется для того, чтобы новый фильтр не перезаписывал существующие фильтры, а применялся в дополнение к ним.

5. Результат

5.1. Выходные данные

  • Тип данных: Числовой (Decimal)
  • Формат отображения: Целое число с разделителями тысяч (#,0)
  • Единица измерения: Валюта (рубли)

5.2. Примеры использования

  1. Объем реальных продаж - для оценки подтвержденных обязательств.
  2. Сравнение реальной и общей суммы - для анализа воронки продаж и доли подтвержденных заказов.
  3. Динамика реальных заказов - для отслеживания роста или падения фактических продаж по периодам.

6. Зависимости

6.1. Таблицы

  • 'М001 Заказы Клиентов' - как источник данных для базовой меры [Сумма (со скидкой)].

6.2. Поля

  • 'М001 Заказы Клиентов'[Сумма со скидкой] - основное поле для агрегации в мере [Сумма (со скидкой)].
  • 'М001 Заказы Клиентов'[ВГО булево] - поле для фильтрации.
  • 'М001 Заказы Клиентов'[Статус заказа] - поле для фильтрации.

6.3. Связанные меры

  • [Сумма (со скидкой)] - является основой для расчета данной меры.

6.4. Поток данных

Поток данных для этой меры идентичен потоку для меры [Сумма (со скидкой)], но с дополнительным шагом фильтрации на уровне OLAP.

  1. OLAP мера: [Сумма (со скидкой) реальная] в кубе OLAP.
  2. Представления DWH: Данные поступают из представления [uni].[vt_order].
  3. Таблицы фактов DWH: Представление [uni].[vt_order] агрегирует данные из таблиц [dbo].[fact_order], [dbo].[fact_cancelled_order], и [dbo].[fact_order_characteristics_received].
  4. Хранимые процедуры: Эти таблицы фактов загружаются и обрабатываются следующими хранимыми процедурами:
    • [dbo].[sp_load_fact_order]
    • [dbo].[sp_load_fact_cancelled_order]
    • [dbo].[sp_load_fact_order_characteristics_received]

Подробное описание логики работы хранимых процедур см. в разделе "Поток данных" для меры "Сумма (со скидкой)".


Мера "Сумма контракта (план)"

1. Общая информация

Название меры: Сумма контракта (план) Тип: Мера (Measure) Источник: OLAP.bim Папка отображения: Базовые меры Формат отображения: #,0

2. Назначение (Цель/задача)

Мера "Сумма контракта (план)" предназначена для расчета общей суммы плановых продаж по контрактам. Данная мера используется для планирования, бюджетирования и сравнения плановых показателей с фактическими результатами продаж.

3. Исходные данные

Основная таблица: М002 Планы Продаж Основное поле: [Сумма контракта] Дополнительные поля для фильтрации:

  • [План активен] - булево поле для выбора только активных планов

4. Логика обработки

4.1. Выражение DAX

CALCULATE(SUM('М002 Планы Продаж'[Сумма контракта]),
        KEEPFILTERS('М002 Планы Продаж'[План активен])
        )

4.2. Описание логики

  1. Основная агрегация: Суммирование значений поля [Сумма контракта] из таблицы 'М002 Планы Продаж'.
  2. Фильтрация по активности плана: Учитываются только те планы, где [План активен] = TRUE.
  3. Сохранение контекста: Функция KEEPFILTERS используется для того, чтобы фильтр по активности плана не перезаписывал существующие фильтры, а применялся в дополнение к ним.
  4. Контекстная фильтрация: Мера автоматически применяет фильтры из срезов и других измерений.

5. Результат

5.1. Выходные данные

  • Тип данных: Числовой (Decimal)
  • Формат отображения: Целое число с разделителями тысяч (#,0)
  • Единица измерения: Валюта (рубли)

5.2. Примеры использования

  1. Общий план продаж - без дополнительных фильтров
  2. План по клиентам - с фильтром по конкретному клиенту
  3. План по периодам - с фильтром по дате плана
  4. План по товарным группам - с фильтром по категории товара
  5. Сравнение план vs факт - для анализа выполнения планов

6. Зависимости

6.1. Таблицы

  • М002 Планы Продаж - основная таблица фактов
  • Связанные справочные таблицы через внешние ключи

6.2. Поля

  • [Сумма контракта] - основное поле для агрегации
  • [План активен] - поле для фильтрации

6.3. Связанные меры

Мера может использоваться в качестве основы для:

  • Производных мер (проценты выполнения плана, отклонения)
  • Расчетных полей
  • Других агрегированных показателей

6.4. Поток данных

  1. OLAP мера: [Сумма контракта (план)] в кубе OLAP.
  2. Представление DWH: Данные для меры поступают из представления [uni].[vt_sales_plan].
  3. Таблица фактов DWH: Представление основано на таблице [dbo].[fact_sales_plan].
  4. Хранимая процедура: Таблица фактов загружается и обрабатывается хранимой процедурой [dbo].[sp_load_fact_sales_plan].
[dbo].[sp_load_fact_sales_plan]

Назначение: Процедура формирует данные о планах продаж для анализа и планирования.

Источники и логика:

  • Основные данные: Берутся из документа "План продаж" из системы 1С. Процедура извлекает информацию о плановых показателях продаж по контрактам.
  • Обогащение данных: Информация о плане дополняется сведениями из связанных справочников 1С:
    • Партнер: Кто является плановым покупателем.
    • Менеджер: Кто ответственный за план.
    • Номенклатура: Какой товар планируется к продаже.
    • Подразделение: Какое подразделение отвечает за план.
    • Сезон: В рамках какого сезона действует план.
  • Финансовые показатели: Процедура рассчитывает плановые суммы контрактов, наценки и прибыли.
  • Обработка корректировок: Процедура учитывает корректировочные планы и определяет актуальные версии планов.

Бизнес-ценность: Позволяет получить полную картину плановых показателей для построения отчетов по планированию, бюджетированию и анализу выполнения планов продаж.


Закупки

Мера "Свободный остаток"

1. Общая информация

Название меры: Свободный остаток Тип: Мера (Measure) Источник: OLAP.bim Папка отображения: Базовые меры Формат отображения: #,0

2. Назначение (Цель/задача)

Мера "Свободный остаток" предназначена для расчета общего количества товаров, которые физически находятся на складах и не зарезервированы под какие-либо заказы или внутренние нужды. Этот показатель отражает реальное количество товара, доступное для продажи.

3. Исходные данные

Основная мера: [Кол-во остатки] Таблица для фильтрации: 'М007 Остатки товаров' Поле для фильтрации: [Тип остатков признак]

4. Логика обработки

4.1. Выражение DAX

VAR _res =
    CALCULATE (
        [Кол-во остатки],
        KEEPFILTERS ( 'М007 Остатки товаров'[Тип остатков признак] = 1 )
    )
RETURN
    _res

4.2. Описание логики

  1. Базовый расчет: Мера использует в качестве основы меру [Кол-во остатки], которая агрегирует общее количество товаров на остатках.
  2. Фильтрация по типу остатка: На результат накладывается фильтр по полю [Тип остатков признак]. Учитываются только те строки, где значение этого признака равно 1, что соответствует "Свободным остаткам".
  3. Сохранение контекста: Функция KEEPFILTERS используется для того, чтобы новый фильтр не перезаписывал существующие фильтры, а применялся в дополнение к ним.

5. Результат

5.1. Выходные данные

  • Тип данных: Числовой (Decimal)
  • Формат отображения: Целое число с разделителями тысяч (#,0)
  • Единица измерения: Штуки/единицы товара

6. Зависимости

6.1. Поток данных

Поток данных для этой меры, а также для мер "Резерв под внутренние перемещения" и "Резерв по заказам", является общим, так как все они основаны на одной и той же таблице фактов.

  1. OLAP мера: [Свободный остаток] в кубе OLAP, папка 'М007 Остатки товаров'.
  2. Представление DWH: Данные для таблицы фактов поступают из представления [uni].[vf_inventory_stock].
  3. Таблица фактов DWH: Представление основано на таблице [dbo].[fact_inventory_stock].
  4. Хранимая процедура: Таблица фактов загружается и обрабатывается хранимой процедурой [dbo].[sp_load_fact_inventory_stock].
[dbo].[sp_load_fact_inventory_stock]

Назначение: Процедура формирует комплексную таблицу с данными о состоянии товарных остатков, включая свободные остатки, резервы, товары в пути и прочие потребности.

Источники и логика: Процедура собирает данные из нескольких регистров 1С для получения полной картины по остаткам:

  • Свободные остатки (Тип 1): Основные данные о физических остатках на складах берутся из регистра РегистрНакопления_СвободныеОстатки.
  • Товары в пути (Тип 2): Данные о товарах, которые перемещаются между складами и еще не оприходованы на склад-получатель, извлекаются из РегистрНакопления_ТоварыНаСкладах со статусом "Отгружено".
  • Резервы (Тип 3 и 4): Информация о резервах рассчитывается на основе данных о заказах клиентов из регистров РегистрНакопления_ЗаказыКлиентов и РегистрСведений_ЗаказыКлиентовНаСогласовании. Процедура анализирует статусы заказов и варианты обеспечения для разделения резервов на:
    • Резерв под внутренние перемещения (Тип 3): Резервы для обеспечения потребностей собственных подразделений.
    • Резерв по заказам (Тип 4): Резервы под конкретные заказы клиентов.
  • Прочие потребности (Типы 5, 6, 7): Процедура также учитывает более сложные случаи, такие как обеспечение заказов, не полностью отгруженные перемещения и прочие потребности, которые не попадают под стандартные резервы.
  • Расчет цен: Процедура производит сложный расчет различных видов цен для каждой позиции (базовые, акционные, с разными условиями кредита), используя данные из регистров цен.

Бизнес-ценность: Процедура создает единый источник правды для анализа всех аспектов товарных остатков, что позволяет бизнесу точно оценивать доступность товаров, планировать закупки и управлять резервами.


Мера "Резерв под внутренние перемещения"

1. Общая информация

Название меры: Резерв под внутренние перемещения Тип: Мера (Measure) Источник: OLAP.bim Папка отображения: Базовые меры Формат отображения: #,0

2. Назначение (Цель/задача)

Мера предназначена для расчета общего количества товаров, зарезервированных для внутренних нужд компании, таких как перемещение между складами или обеспечение потребностей собственных подразделений.

3. Исходные данные

Основная мера: [Кол-во остатки] Таблица для фильтрации: 'М007 Остатки товаров' Поле для фильтрации: [Тип остатков признак]

4. Логика обработки

4.1. Выражение DAX

VAR _res =
    CALCULATE (
        [Кол-во остатки],
        KEEPFILTERS ( 'М007 Остатки товаров'[Тип остатков признак] = 3 )
    )
RETURN
    _res

4.2. Описание логики

  1. Базовый расчет: Мера использует в качестве основы меру [Кол-во остатки].
  2. Фильтрация по типу остатка: Учитываются только строки, где [Тип остатков признак] равен 3, что соответствует резервам под внутренние перемещения.

5. Результат

5.1. Выходные данные

  • Тип данных: Числовой (Decimal)
  • Формат отображения: Целое число с разделителями тысяч (#,0)

6. Зависимости

6.1. Поток данных

Поток данных для этой меры идентичен потоку для меры [Свободный остаток]. См. описание в соответствующем разделе.


Мера "Резерв по заказам"

1. Общая информация

Название меры: Резерв по заказам Тип: Мера (Measure) Источник: OLAP.bim Папка отображения: Базовые меры Формат отображения: #,0

2. Назначение (Цель/задача)

Мера предназначена для расчета общего количества товаров, зарезервированных под конкретные заказы клиентов. Этот показатель помогает понять, какая часть остатков уже обещана покупателям.

3. Исходные данные

Основная мера: [Кол-во остатки] Таблица для фильтрации: 'М007 Остатки товаров' Поле для фильтрации: [Тип остатков признак]

4. Логика обработки

4.1. Выражение DAX

VAR _res =
    CALCULATE (
        [Кол-во остатки],
        KEEPFILTERS ( 'М007 Остатки товаров'[Тип остатков признак] = 4 )
    )
RETURN
    -_res

4.2. Описание логики

  1. Базовый расчет: Мера использует в качестве основы меру [Кол-во остатки].
  2. Фильтрация по типу остатка: Учитываются только строки, где [Тип остатков признак] равен 4, что соответствует резервам по заказам клиентов.
  3. Инвертирование знака: Результат умножается на -1. Это сделано для корректного отображения, так как в исходной таблице фактов резервы могут храниться с отрицательным знаком.

5. Результат

5.1. Выходные данные

  • Тип данных: Числовой (Decimal)
  • Формат отображения: Целое число с разделителями тысяч (#,0)

6. Зависимости

6.1. Поток данных

Поток данных для этой меры идентичен потоку для меры [Свободный остаток]. См. описание в соответствующем разделе.


Мера "На складах"

1. Общая информация

Название меры: На складах Тип: Мера (Measure) Источник: OLAP.bim Папка отображения: Базовые меры Формат отображения: #,0

2. Назначение (Цель/задача)

Мера "На складах" предназначена для расчета общего физического количества товаров, находящихся на складах. Она является суммой свободных остатков и всех видов резервов.

3. Исходные данные

Зависимые меры:

  • [Свободный остаток]
  • [Резерв под внутренние перемещения]
  • [Резерв по заказам]

4. Логика обработки

4.1. Выражение DAX

[Свободный остаток] + [Резерв под внутренние перемещения] - [Резерв по заказам]

4.2. Описание логики

  1. Суммирование компонентов: Мера складывает значения мер [Свободный остаток] и [Резерв под внутренние перемещения].
  2. Вычитание резервов: Из полученной суммы вычитается значение меры [Резерв по заказам]. Знак вычитания используется для коррекции, так как мера [Резерв по заказам] может иметь отрицательное значение.

5. Результат

5.1. Выходные данные

  • Тип данных: Числовой (Decimal)
  • Формат отображения: Целое число с разделителями тысяч (#,0)
  • Единица измерения: Штуки/единицы товара

6. Зависимости

6.1. Поток данных

Поток данных для этой меры полностью наследуется от мер, на которых она основана ([Свободный остаток], [Резерв под внутренние перемещения], [Резерв по заказам]). Все они используют данные, подготовленные хранимой процедурой [dbo].[sp_load_fact_inventory_stock]. См. описание потока данных в разделе меры [Свободный остаток].


Мера "В наличии всего"

1. Общая информация

Название меры: В наличии всего Тип: Мера (Measure) Источник: OLAP.bim Папка отображения: Базовые меры Формат отображения: #,0

2. Назначение (Цель/задача)

Мера "В наличии всего" показывает общее количество товаров, которыми располагает компания, включая как товары на складах, так и товары, находящиеся в пути.

3. Исходные данные

Зависимые меры:

  • [На складах]
  • [В пути под резерв]
  • [В пути]

4. Логика обработки

4.1. Выражение DAX

[На складах] + [В пути под резерв] + [В пути]

4.2. Описание логики

  1. Суммирование компонентов: Мера складывает значение меры [На складах] (товары, физически находящиеся на складе) со значениями мер [В пути под резерв] и [В пути] (товары, перемещаемые между складами).

5. Результат

5.1. Выходные данные

  • Тип данных: Числовой (Decimal)
  • Формат отображения: Целое число с разделителями тысяч (#,0)
  • Единица измерения: Штуки/единицы товара

6. Зависимости

6.1. Поток данных

Поток данных для этой меры является совокупностью потоков мер, на которых она основана. Основной поток данных поступает от [dbo].[sp_load_fact_inventory_stock], который готовит данные для мер [На складах], [В пути под резерв] и [В пути]. См. описание потока данных в разделе меры [Свободный остаток].


Мера "Обеспеченный резерв"

1. Общая информация

Название меры: Обеспеченный резерв Тип: Мера (Measure) Источник: OLAP.bim Папка отображения: Базовые меры Формат отображения: #,0

2. Назначение (Цель/задача)

Мера "Обеспеченный резерв" предназначена для расчета количества товаров, зарезервированных под заказы клиентов, для которых уже определен источник обеспечения (например, ожидаемое поступление).

3. Исходные данные

Основная мера: [Кол-во остатки] Таблица для фильтрации: 'М007 Остатки товаров' Поле для фильтрации: [Тип остатков признак]

4. Логика обработки

4.1. Выражение DAX

VAR _res =
    CALCULATE (
        [Кол-во остатки],
        KEEPFILTERS ( 'М007 Остатки товаров'[Тип остатков признак] = 5 )
    )
RETURN
    - _res

4.2. Описание логики

  1. Базовый расчет: Мера использует в качестве основы меру [Кол-во остатки].
  2. Фильтрация по типу остатка: Учитываются только строки, где [Тип остатков признак] равен 5, что соответствует обеспеченным резервам.
  3. Инвертирование знака: Результат умножается на -1 для корректного отображения.

5. Результат

5.1. Выходные данные

  • Тип данных: Числовой (Decimal)
  • Формат отображения: Целое число с разделителями тысяч (#,0)

6. Зависимости

6.1. Поток данных

Поток данных для этой меры идентичен потоку для меры [Свободный остаток]. См. описание в соответствующем разделе.


Мера "Заказано"

1. Общая информация

Название меры: Заказано Тип: Мера (Measure) Источник: OLAP.bim Папка отображения: Базовые меры Формат отображения: #,0

2. Назначение (Цель/задача)

Мера "Заказано" показывает общее количество товаров, которое было заказано клиентами. Она является агрегацией нескольких видов резервов и потребностей.

3. Исходные данные

Зависимые меры:

  • [Резерв по заказам]
  • [Обеспеченный резерв]
  • [Заказано (прочая потребность)]

4. Логика обработки

4.1. Выражение DAX

[Резерв по заказам] + [Обеспеченный резерв] + [Заказано (прочая потребность)]

4.2. Описание логики

  1. Суммирование компонентов: Мера складывает значения трех других мер:
    • [Резерв по заказам]: Товары, зарезервированные под заказы со склада.
    • [Обеспеченный резерв]: Резервы под заказы, обеспеченные будущими поступлениями.
    • [Заказано (прочая потребность)]: Прочие потребности по заказам.

5. Результат

5.1. Выходные данные

  • Тип данных: Числовой (Decimal)
  • Формат отображения: Целое число с разделителями тысяч (#,0)
  • Единица измерения: Штуки/единицы товара

6. Зависимости

6.1. Поток данных

Поток данных для этой меры полностью наследуется от мер, на которых она основана. Все они используют данные, подготовленные хранимой процедурой [dbo].[sp_load_fact_inventory_stock]. См. описание потока данных в разделе меры [Свободный остаток].


Мера "Сумма перемещений отмененных"

1. Общая информация

Название меры: Сумма перемещений отмененных Тип: Мера (Measure) Источник: OLAP.bim Папка отображения: Отмененные заказы Формат отображения: #,0

2. Назначение (Цель/задача)

Мера "Сумма перемещений отмененных" предназначена для расчета общей стоимости товаров, которые были отменены в заказах клиентов именно по причине логистических перемещений. Это позволяет анализировать потери, связанные с отменами на этапе внутренней логистики.

3. Исходные данные

Основная таблица: М001 Заказы Клиентов Основное поле: [Стоимость перемещения] Дополнительные поля для фильтрации:

  • [Дата отмены] - для анализа по дате отмены, а не по дате заказа
  • [ВГО булево] - для исключения внутригрупповых операций
  • [Отмененный] - для выбора только отмененных позиций
  • [Вид отмены] - для фильтрации по конкретной причине отмены (в данном случае, перемещение)

4. Логика обработки

4.1. Выражение DAX

CALCULATE (
   SUM ( 'М001 Заказы Клиентов'[Стоимость перемещения] ),
   USERELATIONSHIP ( '000 Календарь'[ID], 'М001 Заказы Клиентов'[Дата отмены] ),
   NOT 'М001 Заказы Клиентов'[ВГО булево],
   'М001 Заказы Клиентов'[Отмененный],
   'М001 Заказы Клиентов'[Вид отмены] = 1
)

4.2. Описание логики

  1. Основная агрегация: Суммирование значений поля [Стоимость перемещения] из таблицы 'М001 Заказы Клиентов'.
  2. Связь по дате: Активируется связь между календарем и датой отмены заказа (USERELATIONSHIP), чтобы фильтры по времени применялись к моменту отмены.
  3. Фильтрация по ВГО: Исключаются записи, относящиеся к внутригрупповым операциям.
  4. Фильтрация по статусу: Учитываются только те строки, где флаг [Отмененный] установлен в TRUE.
  5. Фильтрация по виду отмены: Выбираются только те отмененные позиции, где [Вид отмены] = 1, что соответствует отмене из-за перемещения.

5. Результат

5.1. Выходные данные

  • Тип данных: Числовой (Decimal)
  • Формат отображения: Целое число с разделителями тысяч (#,0)
  • Единица измерения: Валюта (например, рубли)

6. Зависимости

6.1. Поток данных

Поток данных для этой меры аналогичен потоку для других мер, основанных на заказах клиентов, таких как [Кол-во].

  1. OLAP мера: [Сумма перемещений отмененных] в кубе OLAP.
  2. Представление DWH: Данные для меры поступают из представления [uni].[vt_order].
  3. Таблицы фактов DWH: Представление [uni].[vt_order] агрегирует данные из таблиц [dbo].[fact_order], [dbo].[fact_cancelled_order], и [dbo].[fact_order_characteristics_received].
  4. Хранимые процедуры: Эти таблицы фактов загружаются и обрабатываются следующими хранимыми процедурами:
    • [dbo].[sp_load_fact_order]
    • [dbo].[sp_load_fact_cancelled_order]
    • [dbo].[sp_load_fact_order_characteristics_received]

Подробное описание логики работы хранимых процедур см. в разделе "Поток данных" для меры "Кол-во".