惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

L
LINUX DO - 最新话题
C
Cyber Attacks, Cyber Crime and Cyber Security
G
GRAHAM CLULEY
T
Tenable Blog
T
Threatpost
C
CXSECURITY Database RSS Feed - CXSecurity.com
I
Intezer
cs.CL updates on arXiv.org
cs.CL updates on arXiv.org
D
Darknet – Hacking Tools, Hacker News & Cyber Security
K
Kaspersky official blog
Security Latest
Security Latest
P
Privacy & Cybersecurity Law Blog
Google Online Security Blog
Google Online Security Blog
SecWiki News
SecWiki News
P
Palo Alto Networks Blog
TaoSecurity Blog
TaoSecurity Blog
Webroot Blog
Webroot Blog
Spread Privacy
Spread Privacy
O
OpenAI News
The Last Watchdog
The Last Watchdog
P
Proofpoint News Feed
C
Check Point Blog
cs.CV updates on arXiv.org
cs.CV updates on arXiv.org
人人都是产品经理
人人都是产品经理
S
Security @ Cisco Blogs
Scott Helme
Scott Helme
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
cs.AI updates on arXiv.org
cs.AI updates on arXiv.org
月光博客
月光博客
S
Securelist
酷 壳 – CoolShell
酷 壳 – CoolShell
V
V2EX
T
Troy Hunt's Blog
W
WeLiveSecurity
GbyAI
GbyAI
N
News | PayPal Newsroom
Y
Y Combinator Blog
C
Cisco Blogs
H
Help Net Security
The GitHub Blog
The GitHub Blog
Threat Intelligence Blog | Flashpoint
Threat Intelligence Blog | Flashpoint
博客园 - 【当耐特】
Jina AI
Jina AI
MongoDB | Blog
MongoDB | Blog
P
Proofpoint News Feed
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
CTFtime.org: upcoming CTF events
CTFtime.org: upcoming CTF events
云风的 BLOG
云风的 BLOG
小众软件
小众软件
N
News and Events Feed by Topic

Все публикации подряд на Хабре

Ловим музу за клавиатуру: как айтишнику стать автором Что умеет Midjourney в 2026? Мой немного грустный разбор этого шикарного инструмента Никто не любит писать тесты, но ИИ может исправить это IPv8 выглядит как мечта. Поэтому почти наверняка не взлетит Производители вернули в продажу материнки с DDR3. Что происходит? Управление агентом с телефона через Telegram теперь в KodaCode От координации к лидерству: как меняется роль руководителя разработки Я сделала родителям бизнес вместо пенсии: зарабатываем 70 тысяч, мама не даёт продать В три раза быстрее приемка товара и оптимизация трудозатрат на 73%: как «РСТ-Инвент» помог Gulliver Group ИИ-шечный мир победил? О влиянии искусственного интеллекта на игропром Кремль снижает давление на Телеграмм пока Европа строит интернет по паспорту Как CEO, CTO и CIO за 8 часов собрали ИИ-директора, который умеет держать позицию под давлением Как (не) потерять домен за выходные Вместо 8 разных VPS: как я организовал практику студентам на одном сервере Почему твой Open Source проект не замечают? R&D: искусство управления неопределенностью в разработке AI-дефляция: вакансий для разработчиков больше, а рост зарплат — худший за 15 лет Мы отдали управление роботами OpenClaw. Что из этого вышло Галактический ID: система идентификации для всех форм разумной жизни Шесть основ бизнес-анализа: начинаем с вопроса «Кто в игре?» Код-ревью, в котором дело не в коде Данные переехали. Команда — нет Системной подход к сдаче OSWE в 2025 Почему комната управления реактором покрашена в цвет морской пены 4 YAML-файла вместо PySpark: как аналитикам строить пайплайны без разработчиков LLM-агент для поиска свободных доменов: автоматизируем подбор Когда, зачем и как правильно начинать новую сессию в Claude Code? Как я заставил нейросеть писать макросы для FreeCAD Анатомия ИИ‑агента для подбора персонала. От тысячи резюме к топ‑10 за минуты Опыт разработчика как экономика внимания Автономность как точка невозврата: кто будет субъектом в цифровом будущем Обучение ИИ в «диких» условиях: как рутинные действия превращаются в датасеты Как измерить LLM для задач кибербеза: обзор открытых бенчмарков Где хранить код? Сравнение GitHub, GitLab и Bitbucket Математика объясняет, почему нормальное распределение встречается повсюду Почему ваш FinOps не работает: 12 тезисов от практиков Как подписать проектную документацию УКЭП с использованием бесплатных лицензий Pilot Адаптивное администрирование Sigla Vision Я грузил уран в бочки, а потом 20 лет строил ИТ в атомной отрасли Чем позвонить с Эвереста? История и обзор спутниковой связи. Часть 2 Как языковая модель помогает контролировать качество инструктажей по охране труда в металлургии Как не передать на desktop свой IP в РКН Анатомия SAP Privileges: как устроено управление правами в macOS MoneyDev: Сказка про три главных слова Обновлённый токенизатор видео K-VAE 2.0 от Сбера Как сделать диспетчеризацию дома на 1284 квартиры почти бесплатно Как мы разогнали железную дорогу Мы дали агентам рутину. Теперь надо решить — что делать с освободившимся временем Токсичный контент, промпт-хакинг и защита ИИ — всё о Guardrails для LLM Умный город начинается с точного взгляда: как «Фалькон Тех» меняет пространство к лучшему Навайбкодил приложение для анализа графов Почему Дюну так интересно читать? Упрощаем работу с рутиной или как стать Гендальфом Белым Деконструкция Go: CPU, RAM и что там происходит. Go Assembler база. Часть 1.1 Какие профессии исчезнут из-за ИИ, а какие появятся? И что с этим делать Как мы построили IT-отдел, где хочется расти: архитектурные встречи, прозрачные метрики и книжные подарки Rufler: Делаем из Claude Code автономный рой через один YAML-конфиг Sing-box и белый список приложений Как построить надёжный обмен сообщениями в микросервисах: лучшие практики для enterprise OpenAI строит MLM-пирамиду, а McKinsey и Accenture помогают ей в этом Дом, который не построил Фишер (Часть 2) «Сверхзвуковой математик» против «Вдумчивого логиста»: битва алгоритмов 3D-упаковки Мультимодальные модели – грубый и дорогой инструмент Разговоры ничего не стоят. Код тоже Проверки физических лиц: с кого начнет ФНС Топ-10 бесплатных нейросетей для создания видео в 2026 году Первые слои кода: как наши решения сегодня определяют архитектуру ИИ на десятилетия Разработка нового статического анализатора: PVS-Studio JavaScript Поиск уязвимостей ПО: базовый минимум или роскошный максимум Почему оценка персонала не работает как инструмент управления Как мы разработали ИИ-ассистента и сократили рутину продуктовой команды на 50% Как я ушел из найма, нажарил косточек и продал на маркетплейсах на 168 млн в год Когда 1С:ERP уже внедрена, а нормального производственного плана всё ещё нет Как я сделал Claude мультимодальным, подключив к нему Qwen Omni Как приглашение на вакансию мечты превращается в атаку Infrastructure as Code: философия и лучшие практики IaC Тестируем Yandex Code Assistant на задаче, в которой нужно хранить секреты nxs-universal-chart v3.0: новое поколение универсального Helm-чарта Callback Injection: Техника, которая отправила Microsoft Defender в глухой нокаут «Все идеи на стол»: митап как способ вывести проект из тупика Сегодня я узнал нечто новое о GPU благодаря багу в своей игре Как заставить LLM ̶ ̶г̶а̶л̶л̶ю̶ ̶ эволюционировать Карта событий как фундамент аналитики: практический кейс для E-commerce Что выбрать для AI: x86, ARM или RISC-V? Дайджест железа за март Роль соматических мутаций в развитии аутоиммунных заболеваний: путь к избирательной терапии Mythos от Anthropic — тревожный сигнал для всех, а не только для банков Guardrails для LLM на Java: как приручить промпт‑инъекции и токсичные ответы Green-VLA: как мы собрали VLA-модель для реального антропоморфного робота и не потеряли обобщение Финансовая гонка вооружений: почему умные люди добровольно в ней участвуют Эра ИИ-агентов наступила: выбираем лучшего цифрового сотрудника # Практический опыт внедрения WinCC Redundancy на производственном предприятии Сделал MVP за 3 дня, а потом неделю прикручивал оплату. Оно того стоило? Физика против Маска: почему Starship V3 может оказаться ещё одной катастрофой Нефть Венесуэлы: крупнейшие запасы в мире, но не крупнейшая нефтяная держава JPA 4. Переосмысление Hibernate Почему зеркальная фотокамера Nikon D5 десятилетней давности идеально подошла для миссии «Артемида-2» Проект «Уровень-Спутник» или как мы сделали платформу для гидрологов «Замедлиться, чтобы ускориться»: почему ИИ повышает цену ошибок в требованиях и архитектуре Как с нуля поднять трафик IT-компании на 1657% при бюджете 55 тыс. и выжить Pixel-perfect Downsampling — идеальная отрисовка 50 миллионов точек без потерь
Как убрать ручную сборку финансовой отчетности: OLAP-модель, семантический слой и живые отчеты в Excel
Виктор Калачанов · 2026-06-24 · via Все публикации подряд на Хабре

Средний

13 мин

498

Финансовые данные в компании обычно уже есть: в 1С, в хранилище, витринах, аналитических кубах. Но в конце отчётного периода аналитики всё равно часто делают одно и то же: выгружают числа в Excel, собирают сводные таблицы, вручную считают отклонения и готовят презентации для руководства. В этой статье покажем, как перевести такой процесс в промышленный контур: создать OLAP-модель, вынести бизнес-логику в семантический слой и получать живые отчёты в Web, Excel и LibreOffice без ручного копипаста. Выгружать данные будем из 1С, но в виду большого количества способов это сделать мы коснёмся этой темы в следующей статье, а здесь сосредоточимся я на возможностях анализа данных.

Статья будет особенно полезна:

  • BI-разработчикам;

  • архитекторам данных;

  • бизнес-аналитикам;

  • финансистам;

  • руководителям, которым важно быстро получать корректную управленческую отчётность.

Какую задачу решаем

Представим типичную ситуацию: в конце отчётного периода нужно быстро оценить финансовое состояние компании:

  • как изменилась структура активов;

  • где выросла дебиторская задолженность;

  • нет ли признаков снижения ликвидности;

  • какие статьи требуют внимания в первую очередь.

Формально данные для такого анализа уже есть. Но на практике значительную часть работы всё равно делают вручную: аналитики выгружают данные в Excel, создают сводные таблицы, сравнивают периоды, считают отклонения и пытаются понять, что из этого важно показать руководству.

Особенно заметна эта проблема, когда отчёт делают по иерархии счетов. Например, показатель «Активы» включает в себя оборотные активы, а внутри них — денежные средства, дебиторская задолженность, запасы и другие статьи. Если нужно посмотреть структуру активов по регионам, сравнить её с прошлым периодом и быстро выделить рискованные зоны, то ручная сборка почти гарантированно превращается в источник потерь времени и ошибок.

Рассмотрим практический пример на основе демо-набора Financeи покажем, как с помощью Platform V Analytics:

  • собрать аналитическую модель;

  • настроить семантический слой;

  • рассчитать отклонения и темпы роста;

  • сформировать динамические отчёты;

  • и на той же модели подготовить форматированный управленческий отчёт.

В результате получим не просто BI-отчёт, а единый аналитический контур, который позволяет за секунды ответить на вопрос: где именно в структуре активов появляются потенциальные финансовые риски.


Что именно хотели получить на выходе

Если упростить, то задача была такой. Есть финансовые данные по периодам, регионам и счетам. Нужно:

  1. Анализировать их по иерархии балансовых статей.

  2. Сравнивать периоды и автоматически показывать отклонения.

  3. Отдавать результат не только в аналитический интерфейс, но и в привычные инструменты — Excel и LibreOffice.

  4. Чтобы форматированный отчёт для руководства обновлялся от модели, а не вручную.

Иными словами, цель была не просто «построить куб», а убрать разрыв между данными, бизнес-смыслом, аналитикой и финальной управленческой отчётностью.


Подготовка аналитической модели

Platform V Analytics — это корпоративная OLAP-платформа, которая закрывает весь аналитический цикл: от хранения и обработки многомерных кубов до семантического слоя с бизнес-логикой и интеграции с BI- и офисными инструментами, такими как Microsoft Excel, Microsoft PowerQuery, Microsoft PowerBI. В состав платформы также входят веб-интерфейс для формирования отчётов и расширение SberOLAP Suite (SBOS) для LibreOffice.

Ссылка на документацию.

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

В качестве демонстрационного набора мы использовали данные, выгруженные из 1С посредством их готового интерфейса, содержащие финансовые показатели компании в разрезе регионов и временных периодов (также предусмотрено прямое подключение к 1С на уровне приложения). На их основе создали куб «Финансы».

Добавление таблиц измерений в источник

В качестве измерений использовали справочники, описывающие ключевые бизнес-сущности:

  • время — годы, кварталы, месяцы отчётности;

  • валюта — единица измерения валюты;

  • регион и филиал — географическая структура компании;

  • дивизион — подразделения компании;

  • финансовые счета — иерархия статей баланса;

  • сценарий — версии пользовательских значений, используемые в том числе для анализа «что, если».

Загрузка этих справочников на физический уровень создаёт контекст для числовых показателей и позволяет в дальнейшем анализировать финансовые данные в любом нужном бизнес-срезе.

Особое значение здесь имеет справочник финансовых счетов. В отличие от простого плоского списка он создан как иерархия Parent-Child. Это позволяет естественно описать вложенность финансовых категорий, например:

  • активы;

  • оборотные активы;

  • денежные средства;

  • дебиторская задолженность;

  • запасы;

  • основные средства.

Практический эффект простой: пользователь может смотреть данные на разных уровнях детализации — от общей суммы активов до конкретных статей. Кроме того, система автоматически считает промежуточные итоги по ветвям иерархии. Это критично для финансовой отчётности, где любая ошибка в агрегировании быстро превращается в управленческую проблему.

Добавление таблицы фактов в источник

После подготовки справочников в систему загружается таблица фактов — ядро аналитической модели, содержащее основные числовые показатели. В нашем примере она консолидирует значения активов компании, распределённые по финансовым статьям, регионам и периодам.

Если упростить, то логическая структура данных выглядит так:

Год

Регион

Финансовая статья

...

Значение

2012

Северно-восточное подразделение

Денежные средства

...

7 299 775

2013

Северно-восточное подразделение

Дебиторская задолженность

...

5 821 806

2013

Центральное подразделение

Запасы

...

1 471 501

Добавление данных в систему автоматизировано и выполняется через графический интерфейс Platform V Analytics. Для этого нужно перейти в меню «Источники данных» → «Добавить источник»:

Рисунок 1. Выбор промежуточного хранилища Platform V Pangolin как источника данных.

Рисунок 1. Выбор промежуточного хранилища Platform V Pangolin как источника данных.

Далее система устанавливает соединение с базой данных, после чего пользователю открывается перечень доступных объектов. На следующем шаге мастера импорта можно выбрать таблицы справочников и фактов, на основе которых затем создаётся многомерная модель:.

Рисунок 2. Выбор таблиц справочников и фактов.

Рисунок 2. Выбор таблиц справочников и фактов.

Создание модели «Финансы»

После успешного импортирования таблиц создаётся логическая модель — куб. На этом этапе разрозненные таблицы связываются в единую многомерную структуру, где:

  • измерения формируют контекст и оси анализа;

  • показатели становятся количественным наполнением модели.

При построении куба в визуальном редакторе (рисунок 3) важно правильно настроить связи между таблицами, определить типы соединений и поведение атрибутов. Например, LEFT JOIN позволяет сохранить в отчёте статьи справочника, даже если по ним временно отсутствуют фактические движения. Для финансовой аналитики это важно: пустая строка и отсутствующая строка — не одно и то же.

Рисунок 3. Создание куба «Финансы».

Рисунок 3. Создание куба «Финансы».

После обработки куба система уже может выполнять многомерные аналитические запросы: рассчитывать значения активов по регионам и периодам, анализировать структуру активов по финансовым статьям и поддерживать drill-down по иерархии счетов.

На выходе физического слоя мы получаем структурированную основу для аналитической обработки данных. Но сама по себе эта модель пока ещё техническая. Она умеет хранить и агрегировать данные, однако для полноценного финансового анализа этого недостаточно. Нужны понятные бизнес-показатели, правила расчёта и единая интерпретация чисел. Для этого нужен следующий уровень — семантический слой.


Формирование семантического слоя

Сам по себе куб уже умеет отвечать на запросы, но бизнесу нужны не просто суммы по полям. Ему нужны понятные сущности:

  • активы;

  • выручка;

  • валовая прибыль;

  • отклонение к прошлому году;

  • темп роста;

  • готовые правила агрегации.

Эту задачу решает семантический слой. На нём мы описываем бизнес-логику: создаём иерархии, рассчитываем меры, задаём локализацию, настраиваем форматирование. В результате у всех пользователей появляется единая версия показателей, а логика перестаёт жить в Excel-файлах конкретных аналитиков.

В нашем случае мы создали датасет за пять этапов (рисунок 4):

  1. Настроили основную информацию. Задали имя датасета и определили тип чувствительности данных.

  2. Определили связи. Сформировали состав датасета — на основе одного куба или нескольких сущностей.

  3. Сформировали семантику. Создали иерархию, именованные наборы и вычисляемые меры, а также задали правила форматирования.

  4. Перевели (локализовали). Технические имена преобразовали в понятные бизнес-названия.

  5. Использовали измерения. Проверили связи между измерениями и фактами, особенно если модель содержит несколько таблиц фактов.

Рисунок 4. Создание семантического слоя.

Рисунок 4. Создание семантического слоя.

Для нашего сценария создали датасет FactFinance. На первом шаге ему назначили техническое имя и задали категорию чувствительности данных К3:

Рисунок 5. Имя и категория данных датасета.

Рисунок 5. Имя и категория данных датасета.

На этапе «Определения связей» сформировали структуру данных, лежащую в основе датасета. В нашем случае модель создаётся на основе одного куба, поэтому в рабочую область выводится только одна сущность FactFinance:

Рисунок 6. Настройка связи между кубами.

Рисунок 6. Настройка связи между кубами.

На этапе «Определения семантики» происходит основная трансформация технической модели в бизнес-ориентированную. Здесь создают иерархии, расчётные меры и форматы отображения:

Рисунок 7. Обзор шага «Определить семантику».

Рисунок 7. Обзор шага «Определить семантику».


Иерархии: календарь и счета

Для временного анализа настроили плоскую иерархиЮ «Календарь». Она имеет три уровня детализации:

  • год — верхний уровень агрегации;

  • квартал — промежуточный срез;

  • месяц — уровень детальных значений.

Техническая основа для этого заложена в таблице «Календарь» (рисунок 8), где каждая запись содержит соответствующие атрибуты времени. Затем в интерфейсе системы эти поля связываются в логическую иерархию (рисунок 9).

Рисунок 8. Справочник «Календарь».

Рисунок 8. Справочник «Календарь».

Рисунок 9. Настройка плоской иерархии «Календарь».

Рисунок 9. Настройка плоской иерархии «Календарь».

Для финансовых статей использовали иерархию Parent-Child. В ней каждая строка содержит свой ключ и ссылку на родительский элемент. Так система собирает финансовое дерево и понимает, какие статьи в какие разделы входят. Это позволяет описывать сложные финансовые структуры с произвольной вложенностью:

Рисунок 10. Справочник «родитель–потомок» с унарными операторами.

Рисунок 10. Справочник «родитель–потомок» с унарными операторами.

Для корректной работы такой модели в окне настройки нужно определить два параметра:

  • ключ элемента — уникальный идентификатор финансовой статьи;

  • родительский ключ — поле, указывающее на вышестоящий элемент.

Настройка этих связей позволяет системе собрать отдельные строки в единое дерево баланса:

Рисунок 11. Настройка Parent-Child для «Уровня агрегации».

Рисунок 11. Настройка Parent-Child для «Уровня агрегации».


Уровень агрегации и унарные операторы

Отдельно настроили уровень агрегации «Счета». По сути, это механизм, который определяет, как именно считаются итоги по иерархии. Технологически он близок по смыслу к функции SCOPE в MSSAS и позволяет управлять логикой вычислений в конкретных срезах.

Особенно важна поддержка унарных операторов, задаваемых прямо в справочнике (рисунок 12):

  • + — значение прибавляется к итогу;

  • - — значение вычитается;

  • ~ — значение не участвует в расчёте родительского узла.

Для финансовой модели это критично. Не все статьи должны просто суммироваться «в лоб»: где‑то нужно исключить двойной счёт, где‑то — корректно учесть регулирующие значения, где‑то — не включать статью в агрегат. Именно здесь проявляется одно из ключевых преимуществ промышленной модели перед ручной аналитикой в Excel: логика расчёта живёт в модели и работает одинаково для всех.

Рисунок 12. Настройка «Агрегация».

Рисунок 12. Настройка «Агрегация».


Расчётные меры

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

ФинСчета

При активации механизма агрегации по иерархии счетов система автоматически формирует техническую меру, которая корректно рассчитывает итоги по дереву с учётом унарных операторов. В нашем случае это основа для дальнейших вычислений:

Рисунок 13. Вычисляемая мера byAccount_AGG, в локализации — «ФинСчета».

Рисунок 13. Вычисляемая мера byAccount_AGG, в локализации — «ФинСчета».

Отклонение

Для анализа динамики добавили меру абсолютного отклонения. Она рассчитывается как разница между показателями текущего и предыдущего периода:

Отклонение = Значение(текущий год) – Значение(предыдущий год)

Эта мера показывает, на сколько в деньгах изменилась статья за период:

Рисунок 14. Вычисляемая мера «Отклонение».

Рисунок 14. Вычисляемая мера «Отклонение».

Отклонение Δ%

Вторая мера — относительное отклонение:

(Текущий год − Предыдущий год) / Предыдущий год

Она нужна для сравнивания между собой статей разного масштаба. Абсолютный прирост в миллионах не всегда отражает значимость изменения, а доля позволяет видеть динамику на единой шкале:

Рисунок 15. Вычисляемая мера «Отклонение Δ%».

Рисунок 15. Вычисляемая мера «Отклонение Δ%».


Условное форматирование

Чтобы отчётом можно было пользоваться без дополнительной расшифровки, для меры «Отклонение Δ%» настроили условное форматирование по принципу «светофора»:

  • красный — более 25%;

  • желтый — от 10% до 25%;

  • зеленый — менее 10%.

Так аналитик или менеджер сразу видит, какие строки требуют внимания, и не тратит время на ручной просмотр всех показателей:

Рисунок 16. Условное форматирование для «Отклонение Δ%».

Рисунок 16. Условное форматирование для «Отклонение Δ%».


Бизнес-показатели для форматированных отчётов

Для подготовки форматированных и управленческих отчётов через функции КУБЗНАЧЕНИЕ и PALO.DATAC в семантическом слое сформировали набор ключевых вычисляемых мер:

  • Выручка;

  • Себестоимость;

  • ФОТ;

  • Численность персонала;

  • Основные средства;

  • Валовая прибыль.

Технически все они вычисляются по одной схеме: в MDX-выражении меняется только ссылка на уникальный ключ соответствующего узла в иерархии «Счета». Это упрощает поддержку модели и делает расчёты единообразными.

Пример создания меры «Выручка» (рисунок 17):

Aggregate(
{[DIMACCOUNT].[AGG_H-Hierarchy].&[4100]},
[Measures].[byAccount_AGG]
)
 
mdx

Здесь:

  • 4100 — технический ID статьи «Выручка»;

  • Aggregate собирает значение по узлу и всем его потомкам;

  • [Measures].[byAccount_AGG] — агрегирующая мера, которая уже умеет корректно считать дерево счетов с учётом унарных операторов.

Рисунок 17. Вычисляемая мера «Выручка».

Рисунок 17. Вычисляемая мера «Выручка».


Локализация

На этапе «Перевода» мы адаптировали модель для конечных пользователей. Технические имена полей и мер заменяются на понятные бизнес-названия. Например, системное имя FactFinance_GrossMargin превращается в «Валовая прибыль».

Это позволяет аналитикам, финансистам и менеджерам работать в едином понятийном поле без необходимости разбираться в технических именах модели.

Рисунок 18. Настройка локализации.

Рисунок 18. Настройка локализации.

Использование измерений

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

Рисунок 19. Использование измерений.

Рисунок 19. Использование измерений.

После сохранения датасета техническая модель куба превращается в полноценный аналитический инструмент. На этом этапе данные перестают быть просто набором чисел и становятся основой для управленческой отчётности.


Построение динамических отчётов в трёх пользовательских поверхностях

Когда семантический слой готов, его нужно отдать пользователю в удобной форме. В нашем случае было три основные поверхности:

  • веб-интерфейс — для быстрого анализа;

  • LibreOffice — для сценариев в open-source окружении;

  • Excel — для привычной табличной аналитики и интеграции с управленческой отчётностью.

Веб-интерфейс

В веб-интерфейсе платформы Platform V Analitycs пользователь выбирает датасет, настраивает строки, столбцы и меры и сразу получает живую таблицу. Это удобно, когда нужно быстро проверить гипотезу, провалиться по иерархии, посмотреть отклонения или структуру показателя по регионам и периодам.

Для создания отчёта в веб-интерфейсе нужно перейти в раздел «Выполнить запрос», выбрать датасет «Балансовый отчёт» и перенести нужные атрибуты в области «Столбцы», «Строки» и «Значения»:

Рисунок 20. Отчет в разрезе «Счета», построенный в Web-интерфейсе Platform V Olap Analitycs.

Рисунок 20. Отчет в разрезе «Счета», построенный в Web-интерфейсе Platform V Olap Analitycs.

LibreOffice

Частью Platform V Analitycs является расширение Sber Olap Office Suite (SBOS), оно используется для построения отчётности в LibreOffice. После настройки подключения табличный редактор получает доступ к семантическому слою и может работать с теми же иерархиями и мерами, что и веб-интерфейс.

Таким образом, LibreOffice выступает не просто редактором таблиц, а полноценным клиентом к аналитической модели. Это особенно полезно там, где важно поддерживать open-source стек и при этом сохранять единые бизнес-правила.

Рисунок 21. Отчет в разрезе «Счета», построенный в LibreOffice через расширение SBOS.

Рисунок 21. Отчет в разрезе «Счета», построенный в LibreOffice через расширение SBOS.

Excel

Платформа Platform V Analytics реализует интеграцию на таком уровне, что при подключении из Excel, Power Query и Power BI воспринимают её как Microsoft Analysis Services. Как следствие, для подключения из Excel отдельные плагины не нужны: достаточно стандартного подключения к Analysis Services. Это важно не только для сводных таблиц, но и для интеграции с Power Query и Power BI. Семантический слой становится единым источником правды сразу для нескольких пользовательских инструментов.

Рисунок 22. Отчёт в разрезе «Счета», сформированный в Excel.

Рисунок 22. Отчёт в разрезе «Счета», сформированный в Excel.


Что видно в итоговом отчёте

Когда отчёт сформирован, система автоматически подсвечивает отклонения по настроенным правилам. На основе такого отчёта уже можно делать предметные выводы. Например:

  • Наблюдается существенный рост дебиторской задолженности. Это может говорить как о расширении клиентской базы, так и о необходимости внимательнее следить за платежной дисциплиной.

  • Увеличились денежные средства — позитивный сигнал с точки зрения ликвидности.

  • Выросли запасы — возможный индикатор затоваривания или неэффективного отвлечения оборотного капитала.

  • Относительные отклонения вышли в жёлтую зону — значит, изменение уже нельзя считать фоновым и его нужно объяснять.

Таким образом, отчёт перестает быть просто набором чисел и начинает работать как инструмент диагностики.


Сохранение ракурсов

Для оперативной работы в веб-интерфейсе и LibreOffice мы реализовали функцию сохранения ракурса. Пользователь может зафиксировать текущее состояние отчёта со всеми применёнными фильтрами, раскрытыми уровнями иерархий и выбранными периодами. После этого создаётся ссылка на конкретный срез данных (рисунок 23), которую можно передать руководителю или коллеге.

Рисунок 23. Окно настройки ракурсов.

Рисунок 23. Окно настройки ракурсов.

Это избавляет от необходимости пересылать тяжёлые файлы и объяснять, какие фильтры нужно применить, чтобы увидеть тот же результат. Получатель открывает ссылку и сразу попадает в нужный срез данных.


Формирование форматированных отчётов

Динамические сводные таблицы удобны для исследования данных, но в финансовой практике этого недостаточно. Очень часто нужен отчёт со строго заданным шаблоном:

  • фиксированными строками и колонками;

  • заданным порядком показателей;

  • специальным форматированием;

  • выносом отдельных значений в презентацию для руководства.

Для этого в Excel и LibreOffice используются функции прямого обращения к модели:

  • в Excel — КУБЗНАЧЕНИЕ (CUBEVALUE);

  • в LibreOffice — PALO.DATAC.

Excel: КУБЗНАЧЕНИЕ и динамический ССП-отчёт

На основе этой схемы мы собрали форматированный отчёт ССП, который затем встроили в PowerPoint. Ключевая идея в том, что формула КУБЗНАЧЕНИЕ ссылается не на жёстко зашитый год, а на ячейку-параметр, например B4. Эта ячейка становится глобальным фильтром.

То есть вместо того чтобы каждый год пересобирать отчёт вручную, аналитик просто меняет год в одной ячейке — и все показатели обновляются автоматически (рисунок 24).

Пример формулы:

=КУБЗНАЧЕНИЕ(
"http___10.128.5.44_7080_mdxk_mdx_xmla_OLAPFactFinance";
"[dimdate].[FISCCAL].["&$B$4&"].[1]";
"[Measures].[NetSales]"
)
Рисунок 24. PowerPoint с вложенным Excel и функцией КУБЗНАЧЕНИЕ.

Рисунок 24. PowerPoint с вложенным Excel и функцией КУБЗНАЧЕНИЕ.

LibreOffice: DATAC

Для LibreOffice работает аналогичный сценарий через функцию PALO.DATAC. Пример:

=PALO.DATAC(
"OLAP/FactFinance";
"FactFinance";
"[dimdate].[FISCCAL].["&$B$4&"].[1]";
"[Measures].[NetSales]"
) 

Так можно встроить в LibreOffice Impress связанный объект из Calc, который берёт данные напрямую из аналитической модели:

Рисунок 25. LibreOffice Impress с вложенным Calc и функцией DATAC.

Рисунок 25. LibreOffice Impress с вложенным Calc и функцией DATAC.

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


Заключение

В этом примере мы не просто «сформировали отчёт», а решили задачу перехода от ручной обработки данных к управляемой аналитике.

Для этого потребовалось:

  • собрать физическую многомерную модель;

  • описать иерархию счетов;

  • настроить корректную агрегацию;

  • вынести бизнес-логику в семантический слой;

  • добавить расчётные меры и правила визуального контроля;

  • подключить к модели привычные пользовательские инструменты;

  • и на той же основе собрать форматированную отчётность.

В результате получилась единая аналитическая модель, которая:

  • обеспечивает согласованность данных на всех уровнях;

  • убирает дублирование расчетов в Excel;

  • ускоряет подготовку управленческой отчётности;

  • снижает влияние человеческого фактора;

  • позволяет быстрее находить финансовые отклонения и риски.

Если смотреть шире, ценность здесь не только в OLAP как технологии. Главная ценность в том, что логика отчёта перестаёт жить в отдельных файлах и переносится в централизованную модель. А значит, одни и те же показатели одинаково считаются в веб-интерфейсе, LibreOffice, Excel и даже в презентации для руководства.

Именно в этот момент финансовые данные действительно превращаются в управленческие решения.