Создание кубов анализа данных на основе данных из учетных систем 1С

Зачастую той отчетности, которую предлагает система 1С недостаточно, чтобы ответить на все маркетинговые вопросы и правильно понять тренды рынка. Для этого существует альтернатива множеству плоских отчетов – это многомерный анализ данных или «кубов». На эту тему написано достаточно много, поэтому данная статья не претендует на какую-либо новизну или новый результат.

Основная ее цель, скорее практическая, чем теоретическая, - это оптимизация и ускорение процесса проектирования кубов для данных, которые скопились в системах учета 1С, которая является фискальной системой учета в российской Федерации.

Как известно, метаданные 1С интуитивно понятны, так как используют сущности на русском языке. Но как только мы выходим за рамки 1С конфигуратора, мы сразу же теряем это семантическое преимущество и тратим много времени на обеспечение соответствия и правильной типизации полей таблиц на уровне SQL метаданных, XMLA и MDX. Большой ошибкой разработчиков являются любые попытки перемещения или репликации данных 1С в другую базу или создания копии базы 1С, что приводит к холостому использованию вычислительных ресурсов и большим затратам времени при обновлении куба. Предлагаемая методика разработки куба решает эти две выше перечисленные проблемы при помощи создания VIEW или представлений в отдельной базе CUBE, расположенной на том же сервере, что и база 1С.


Рис. 1 Схема выполнения работ по созданию куба.

На рис.1 представлена схема выполнения работ по созданию куба, которая состоит из следующих этапов.

1. На первом этапе выполняется автоматическое создание VIEW (представлений) в базе данных CUBE на основе разбора 1С метаданных (справочников, документов, их реквизитов и таблиц). Для этого написана обработка «СоздатьСтруктуруКуба», которая позволяет выбрать необходимые 1С объекты и создать их представления в базе CUBE на русском языке с конвертацией типов (binary) в формат с которым работает SSAS (SQL Server Analysis Services). Время данного этапа в пределах получаса. При этом никакие данные не перемещаются, а через созданные представления можно читать данные из 1С любыми другими приложениями, в частности из Visual Studio можно напрямую открыть «База данных служб Analysis Service» и указать базу CUBE в качестве источника данных, чтобы выбрать таблицы мер и измерений будущего куба.

2. На втором этапе основная работа выполняется в Visual Studio. Создается представление куба, в котором определяются связи между полями таблиц и ключевые поля. После этого строится сам куб с мерами и измерениями, выбираются атрибуты измерений и их иерархии. Если все правильно сделано, то можно выполнить обработку куба, которая окончится без ошибок. Окончание построения куба без ошибок зависит от целостности данных и их чистоты. Поэтому после третьего этапа построение куба придется повторить.

3. Очистка исходных данных. Поскольку было решено не трогать данные, то некоторую очистку данных придется выполнять, чтобы построить куб. Прежде всего это касается не до конца заполненных объектов, которые присутствуют в таблице мер куба.

Примечание

Реквизиты расширения конфигурации также доступны через представления, начиная с версии 8.3.14.