Как подружить 1С и Power BI: личный опыт визуализации управленческих данных
аналитика OData Power bi Бесплатно (free)
Сразу оговорюсь, что данная статья не претендует на статус полного руководства. Скорее, является личным опытом визуализации управленческих данных.
Понятие «аналитика» обладает большим количеством определений. Одно из них: «Аналитика – это процесс получения знаний и новых данных на основе фактов». С точки зрения бизнеса аналитика позволяет получить массу новой информации из огромного количества данных, которые формируются при ведении деятельности предприятия.
Визуализация этих данных позволяет упростить процесс восприятия.
При этом не всегда все необходимые источники данных заключены в единой учетной системе. Бюджет может формироваться в Excel, информация по отгрузкам и по запросам от клиентов может быть доступна в тестовых форматах, метрики посетителей сайта – через веб-портал и т. д. Как все это увязать в единую «панель управления предприятием»? Microsoft Power BI способна помочь в решении данной задачи.
Ниже описаны процесс подключения 1С в качестве источника данных и настройка взаимосвязей с другими информационными системами.
Нам понадобятся:
- 1С:Управление торговлей, опубликованная и доступная из сети Интернет – будем использовать 1С, развернутую в Azure.
- Действующая подписка на Microsoft Power BI.
- Дополнительный источник данных, который будем связывать с данными из 1С – возьмем Excel-файл.
Публикация информационной базы 1С
Прежде, чем мы сделаем данные доступными для Power BI, необходимо предоставить веб-доступ к информационной базе, а, точнее, к интерфейсу OData. Для этого опубликуем информационную базу с аутентификацией через операционную систему.
Запускаем 1С в режиме «Конфигуратор» с правами локального администратора и переходим в Администрирование – публикация веб-расширения. Включаем авторизацию через Windows.
Теперь необходимо запустить 1С:Предприятие и перейти «Все функции» – «Обработки» – «Настройка автоматического REST-сервиса».
В данной обработке необходимо просто отметить нужные объекты и нажать кнопку «Сохранить и закрыть». Данная обработка стандартная и входит во все типовые конфигурации 1С.
Ищем и отмечаем в списке данные, которые мы планируем анализировать в Power BI. Например, Справочники – Партнеры, Документы – Заказы клиента и т. д.
В результате опубликованные нами данные становятся доступными по ссылке вида: http://public-host-name/BaseName/odata/standard.odata/, где:
Public-host-name – внешнее DNS-имя или IP-адрес сервера.
BaseName – имя информационной базы, которое мы использовали при публикации.
Перейдя по ссылке, мы видим структуру источников, которые доступны через OData.
Теперь мы можем использовать ссылку в формате: http://public-host-name/BaseName/odata/standard.odata/Document_РеализацияТоваровУслуг_Товары
где:
Document_РеализацияТоваровУслуг_Товары – данные, которые предоставляются из 1С. Это могут быть справочники, регистры и т. д.
Подключаем источники в Power BI
Теперь запускаем Power BI Desktop. Программа доступна через портал https://powerbi.microsoft.com/ после успешной регистрации и авторизации.
Скачиваем, устанавливаем и запускаем.
Подключим необходимые источники данных. Для этого необходимо нажать «Подключить данные» на панели инструментов и выбрать канал OData:
В диалоговом окне вводим итоговую ссылку на источник.
Нажав кнопку «Ok», необходимо указать данные авторизации. Далее мы увидим часть полученных данных.
Нажав кнопку «Изменить», мы попадем в редактор запроса, где можем модернизировать данные и добавить необходимые вычисления с помощью языка DAX.
После добавления нескольких источников необходимо настроить взаимосвязи между данными. Для этого переходим в режим Представления связей.
Добавление других источников
Аналогичным образом мы можем добавить другие источники данных, например, файл Excel. Делается это также через меню Получить данные.
В качестве других источников мы можем использовать огромное количество вариантов:
После подключения всех источников и создания связей между данными можно приступить к визуализации информации.
Визуализация данных
В главном окне Power BI на панели инструментов выбираем элемент визуализации.
Перетаскивая нужные поля в параметры элемента, получаем визуальное представление данных.
После создания необходимого отчета можно перейти к его публикации. Для этого просто нажимаем кнопку «Опубликовать» и выбираем рабочую область, в которой необходимо разместить отчет.
Когда процесс публикации закончится, система выдаст ссылку для просмотра отчета в браузере. Теперь отчет можно сделать доступным для всех или только определенному кругу лиц.
От себя добавлю, что данный инструмент позволил нашей компании получить ряд знаний о нас и наших клиентах. Примером может служить понимание географии клиентов, выделение «золотых» партнеров, перегруженных сотрудников и т. д.
Сравнение тарифных планов Power BI – https://powerbi.microsoft.com/ru-ru/pricing/
Полезная статья про OData –//1c-helper.ru/public/711302/
Разворачивание 1С в Azure – //1c-helper.ru/public/897231/
Может быть полезным:
- https://info.microsoft.com/CE-AzureINFRA-CNTNT-FY18-05May-15-MicrosoftAzureplatform-MGC0002445_01Registration-ForminBody.html
- https://info.microsoft.com/CE-AzureINFRA-CNTNT-FY18-05May-20-DeploymentofEnterpriseontheMicrosoft-MGC0002460_01Registration-ForminBody.html
- https://info.microsoft.com/CE-AzureINFRA-CNTNT-FY18-05May-17-Deployment1CEnterpriseontheMicrosoftAzureplatform-MGC0002447_01Registration-ForminBody.html
- https://info.microsoft.com/CE-AzureINFRA-CNTNT-FY18-05May-21-EnterpriseontheMicrosoftAzureplatform-MGC0002461_01Registration-ForminBody.html
См. также
Специальные предложения
Лицензионное соглашение не позволяет использовать недокументированные фирмой "1С" средства для построения решений на платформе 1С:Предприятие. Это означает, что средства СУБД (или любые другие внесистемные средства) можно использовать только в том случае, если документация по продуктам линейки "1С:Предприятие" (включая 1С:ИТС) содержит явную рекомендацию использовать данное средство для решения данной задачи.
Во всех остальных случаях лицензионное соглашение позволяет использовать для построения решений только штатные средства платформы. В частности, можно обращаться к данным информационной базы только при помощи объектов "1С:Предприятия", специально предназначенных для работы с данными (запросы, справочники, документы и т.д.). Нельзя обращаться к данным информационной базы напрямую, минуя уровень объектов работы с данными "1С:Предприятия" - например при помощи средств СУБД или при помощи внешних компонент, которые реализуют прямой доступ к СУБД. Это ограничение распространяется на любые действия с данными, в том числе на изменение их структуры, а так же на чтение или изменение самих данных информационной базы или служебных данных "1С:Предприятия".
Данное ограничение необходимо для обеспечения стабильности работы механизмов системы, осуществления поддержки и возможности перехода на новые версии "1С:Предприятия".
Да и не важно, чем конкретным это обусловлено. Есть лицензионное соглашение. Есть его нарушение. Есть: "Правообладатель обладает правом заблокировать файл электронного лицензионного ключа в случае нарушения условий Лицензионного Соглашения Пользователем."
Сама информация в таком виде не регламентируется в рассматриваемом случае (служебную информации не рассматриваем). Регламентируется доступ к этой информации. Это несколько разные вещи.
И открыто призывать к нарушению лицензионного соглашение не делает вам чести.
Но по поводу OData - это нормальная тема, оно здесь абсолютно к месту. Автору респект и уважуха.
Мысль сформировалась следующая:
Использование OData дает гарантию кросс-платформенности. Вы же можете в качестве СУБД использовать не только MS SQL, но и PostgreSQL или даже файловый режим. Так что, брать данные через OData корректнее, чем напрямую обращаться в БД.
Изучение его нажал с того, что прикрутил к нему логи технологического журнала + файлы трассировок СУБД.
Стал мониторить конфликты блокировок + длительные или трудоемкие запросы.
В планах еще создать дашбоард по подробной детализации блокировок и может быть еще какие мысли будут.
- Не нужно лить данные в облако, все можно получить в реалтайме.
- Очень удобнейшая визуализация с очень гибкими отборами при изменении которых все диаграммы сразу меняются.
- Вывод информации в том виде, в котором хочешь ты.
Вообще я разные сервисы для мониторинга производительности использовал, Гилевские например, затем PERFEXPERT от софтпойнта.
В конечном итоге я вдохновился 2 моментами:
1. Идеей регулярных выражений (здесь спасибо Виктору Богачёву), именно с его помощью я получил толчок в этом направлении.
2. Случайным разговором с Лустиным Алексеем который донес до меня мысль, что руки-ноги-голова есть, заббикс есть, SQL profiler есть, технологический журнал есть - зачем платить большие деньги за дорогой софт или отдавать свои данные в облако - непонятно.
Мы пошли по пути делитантов, а именно регламентным заданием формирует отчет СКД и выгружаем его в Excel. Далее PowerBI вытаскивает данные из файла.
Прямое подключение к данным базы пока не выявило преимущества в данном случае, т.к. в отчете множество таблиц + расчетные поля.
Как было лучше сделать?
Power BI по сути и является СКД.
Такая задача будет скоро стоять.
Если вы хотите посчитать в 1с и отдать простой таблицей в PowerBI, то Я бы попробывал пойти 2 способами:
1) Регламентным заданием (ну или при изменении некого документа) формировать регистр сведений и отдавать уже его (возможно тут стоит применять регистры расчета, но Я в них не умею)
2) Опубликовать не OData, а http сервис (REST) и уже отдавать с помощью него.
Конечно можно. Можно и встроить данные куда-то на веб.
(10)
Тоже самое через PowerBI будет в режиме реального времени и без промежуточных файлов. :)
Power BI кэширует данные. Периодичность обновления можно регулировать.
+ он может делать вычисления со своей стороны, а следовательно можно облегчить работу 1С.
В расширенном запросе let
Источник = OData.Feed("http://1c-web.NashaRusha.ru/NashaRusha/odata/standard.odata/Catalog_Организации", null, [Implementation="2.0"])
in
Источник
В настройках источника уровень конфиденциальности весь перепробовал.
Обработка «Настройка автоматического REST-сервиса».
Публикация через IIS.
В браузере все загружается.
Если в Power BI загружать не весь справочник, а делать выборку только по нескольким столбцам, все ОК.
Скорей всего проглотить такой объем данных, Power BI не может.
Поиском по статьям проходите перед публикацией.
Настройка шлюза и собственно обновление данных - отдельное эротическое приключение, достойное статьи. Но без шлюза об регулярном обновлении можно забыть конечно.
Продолжаю есть кактус
Ну мы пошли по пути наименьшего сопротивления - доступ к OData есть из вне - 1С в Azure Болтается.
Далее. в рамках подписки Power BI Pro настроили автообновление.
Через OData при больших объемах данных выгружается продолжительное время.
В данный момент используем QlikView для BI задач предприятия. Из плюсов можно получать данные из 1С в любом формате (я использую прямые запросы SQL), их структурировать и обрабатывать как угодно на стороне QV и выдавать результат. Минусы дороговизна лицензий.
В предварительном просмотре данные отображаются, ошибка выходит после нажатия кнопки Загрузить.
В подробных сведениях написано следующее:
Feedback Type: Frown (Error) Timestamp: 2019-01-28T05:01:59.2000562Z Local Time: 2019-01-28T10:01:59.2000562+05:00 Session ID: 8e878905-5280-41af-a9c8-64af4e367341 Release: December, 2018 Product Version: 2.65.5313.1381 (18.12) (x64) Error Message: Не удалось загрузить схему модели. OS Version: Microsoft Windows NT 6.1.7601 Service Pack 1 (x64 ru-RU) CLR Version: 4.5 or later [Release Number = 378389] Peak Virtual Memory: 1.91 GB Private Memory: 358 MB Peak Working Set: 472 MB IE Version: 9.0.8112.16421 User ID: ae499a53-f32b-4914-9337-f474881fc5a1 Workbook Package Info: 1* - ru-RU, Query Groups: 0, fastCombine: Disabled, runBackgroundAnalysis: True. Telemetry Enabled: True Model Default Mode: Import Snapshot Trace Logs: C:\Users\ILYA\AppData\Local\Microsoft\Power BI Desktop\FrownSnapShot812566119.zip Performance Trace Logs: C:\Users\ILYA\AppData\Local\Microsoft\Power BI Desktop\PerformanceTraces.zip Disabled Preview Features: PBI_shapeMapVisualEnabled MIntellisense PBI_SpanishLinguisticsEnabled PBI_PdfImport PBI_ColumnProfiling PBI_variationUIChange PBI_PythonSupportEnabled PBI_showIncrementalRefreshPolicy PBI_showManageAggregations PBI_FuzzyMatching PBI_EnableWebDiagramView PBI_improvedFilterExperience PBI_qnaLiveConnect Disabled DirectQuery Options: PBI_DirectQuery_Unrestricted TreatHanaAsRelationalSource Cloud: GlobalCloud DPI Scale: 100% Supported Services: Power BI Formulas: section Section1; shared Запрос1 = let Источник = OData.Feed("localhost/NorthFoam/odata/standard.odata/AccumulationRegister_НачисленияСотрудников_RecordType?allowedOnly=true&$select=Period,Сотрудник,Подразделение_Key,Сумма", null, [Implementation="2.0"]) in Источник; shared Запрос2 = let Источник = OData.Feed("localhost/NorthFoam/odata/standard.odata/Catalog_Сотрудники?allowedOnly=true&$select=Ref_Key,Description", null, [Implementation="2.0"]) in Источник;

Просмотры 9034
Загрузки 0
Комментарии 46
Создание 04.10.18 14:34
Обновление 09.01.19 18:12
№ Публикации 914689
Рубрики Системное
Кому Для всех
Тип файла Архив с данными
Платформа Не имеет значения
Конфигурация Не имеет значения
Операционная система Windows
Страна Россия
Отрасль Не имеет значения
Налоги Не имеет значения
Вид учета Не имеет значения
Раздел учета Не имеет значения
Доступ к файлу Бесплатно (free)
Код открыт Да
Обмен Розница 2.2 - любая конфигурация с универсальным форматом обмена
|
