Как подружить 1С и Power BI: личный опыт визуализации управленческих данных

Администрирование - Системное

аналитика OData Power bi Бесплатно (free)

99
Аналитика для предприятия – это, скорее, необходимость, чем роскошь. Визуальное представление данных позволяет оперативно принимать и оценивать управленческие и коммерческие решения. Так, Microsoft Power BI является прекрасной платформой для построения динамических и интерактивных отчетов. В статье рассмотрен вариант подключения 1С в качестве источника данных через OData.

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

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

Визуализация этих данных позволяет упростить процесс восприятия.

При этом не всегда все необходимые источники данных заключены в единой учетной системе. Бюджет может формироваться в 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 –//b1c.ru/public/711302/

Разворачивание 1С в Azure – //b1c.ru/public/897231/

99

См. также

Специальные предложения

Комментарии
Избранное Подписка Сортировка: Древо
1. kolya_tlt 11 04.10.18 14:59 Сейчас в теме
Power BI разве не умеет работать с ms sql? продукты же одного вендора, поэтому иметь прослойку в виде кластера сервера 1С и веб сервера видется мне не разумной в вашем варианте.
2. gradi 3 04.10.18 15:36 Сейчас в теме
(1)в ms sql вроде названия таблиц/полей сложно читаемые, точнее сложно понять что это за объект метаданных.
rpgshnik; JohnyDeath; zhogov; +3 Ответить
3. Xershi 417 04.10.18 16:00 Сейчас в теме
(2) если для вас это сложно, то сделайте это просто:
https://infostart.ru/public/648264/
11. 🅵🅾️🆇 05.10.18 12:08 Сейчас в теме
(3) Открывать SQL мордой в интернет?
Вы серьезно?

В цивилизованном обществе такие вещи решаются через REST или еще через какие прокси, даже на чтение так делать не стоит.
К тому же Вы нарушите лицензионное соглашение в данном случае.
zhogov; kraynev-navi; +2 Ответить
12. 🅵🅾️🆇 05.10.18 12:24 Сейчас в теме
(2) + никто не гарантирует вам, что это "сложночитаемое" таблица/поле еще и сохранит свое наименование со временем.
vadimlp77; zhogov; Fox-trot; kraynev-navi; +4 Ответить
23. kolya_tlt 11 08.10.18 22:35 Сейчас в теме
(2) так себе причина...
(4) о каких нарушениях речь?
24. spacecraft 09.10.18 07:32 Сейчас в теме
(23)
о каких нарушениях речь?

http://v8.1c.ru/predpriyatie/questions_licence.htm

Лицензионное соглашение не позволяет использовать недокументированные фирмой "1С" средства для построения решений на платформе 1С:Предприятие. Это означает, что средства СУБД (или любые другие внесистемные средства) можно использовать только в том случае, если документация по продуктам линейки "1С:Предприятие" (включая 1С:ИТС) содержит явную рекомендацию использовать данное средство для решения данной задачи.

Во всех остальных случаях лицензионное соглашение позволяет использовать для построения решений только штатные средства платформы. В частности, можно обращаться к данным информационной базы только при помощи объектов "1С:Предприятия", специально предназначенных для работы с данными (запросы, справочники, документы и т.д.). Нельзя обращаться к данным информационной базы напрямую, минуя уровень объектов работы с данными "1С:Предприятия" - например при помощи средств СУБД или при помощи внешних компонент, которые реализуют прямой доступ к СУБД. Это ограничение распространяется на любые действия с данными, в том числе на изменение их структуры, а так же на чтение или изменение самих данных информационной базы или служебных данных "1С:Предприятия".

Данное ограничение необходимо для обеспечения стабильности работы механизмов системы, осуществления поддержки и возможности перехода на новые версии "1С:Предприятия".
Casey1984; +1 Ответить
25. starik-2005 1445 09.10.18 17:07 Сейчас в теме
(24)
Данное ограничение необходимо для обеспечения стабильности работы механизмов системы, осуществления поддержки и возможности перехода на новые версии "1С:Предприятия".
Вот этот абзац никто и не видит из тех, кто обращает внимание на "64-й пункт (или какой он там?)лиц.соглашения"
26. spacecraft 09.10.18 17:44 Сейчас в теме
(25) вот только такие "видящие" не понимают и не хотят понимать, что это еще обусловлено возможным доступом без ключа (бесконтрольно и без ограничения) к базе.
Да и не важно, чем конкретным это обусловлено. Есть лицензионное соглашение. Есть его нарушение. Есть: "Правообладатель обладает правом заблокировать файл электронного лицензионного ключа в случае нарушения условий Лицензионного Соглашения Пользователем."
27. starik-2005 1445 09.10.18 17:51 Сейчас в теме
(26)
Да и не важно, чем конкретным это обусловлено. Есть лицензионное соглашение. Есть его нарушение. Есть: "Правообладатель обладает правом заблокировать файл электронного лицензионного ключа в случае нарушения условий Лицензионного Соглашения Пользователем."
Информация в базе данных далеко не вся принадлежит 1С. И если они начнут блокировать лицензионные ключи тех, кто обращается напрямую к SQL для доступа к данным (только чтение, чтобы ничего не пропало), то у них не останется "толстых" клиентов вообще ни одного (у кого за 1к лицензий). Так что кроме как в лес мне послать таких шустрых умников некуда.
28. spacecraft 09.10.18 18:32 Сейчас в теме
(27)
Информация в базе данных далеко не вся принадлежит 1С

Сама информация в таком виде не регламентируется в рассматриваемом случае (служебную информации не рассматриваем). Регламентируется доступ к этой информации. Это несколько разные вещи.
И открыто призывать к нарушению лицензионного соглашение не делает вам чести.
29. starik-2005 1445 09.10.18 22:22 Сейчас в теме
(28)
И открыто призывать к нарушению лицензионного соглашение не делает вам чести.
Говорю ровно то, что говорят на курсах подготовки экспертов по технологическим вопросам. 80% крупных организаций между 1С и СУБД имеют какие-то прокладки, которые на ИТС ни разу не описаны.
4. spacecraft 04.10.18 16:54 Сейчас в теме
(1) и нарваться на нарушение лицензии 1С?
kraynev-navi; 🅵🅾️🆇; rpgshnik; zhogov; +4 1 Ответить
5. starik-2005 1445 04.10.18 17:06 Сейчас в теме
(4) даже на курсах экспертов открытым текстом говорят, что "нарушайте лицензионное соглашение" как можно чаще - и жить вам станет гораздо лучше.

Но по поводу OData - это нормальная тема, оно здесь абсолютно к месту. Автору респект и уважуха.
🅵🅾️🆇; JohnyDeath; zhogov; +3 1 Ответить
6. zhogov 138 04.10.18 17:12 Сейчас в теме
(5) Мы сейчас у себя активно все оперативные отчеты и показатели переводим в Power BI. А так как 1С является центральной учетной системой - используем OData, что бы не отрывать данные от бизнес-логики.
🅵🅾️🆇; rpgshnik; vrednyi_glavred; +3 Ответить
35. zhogov 138 12.10.18 17:59 Сейчас в теме
(1) Мы тут с коллегами долго обсуждали.
Мысль сформировалась следующая:
Использование OData дает гарантию кросс-платформенности. Вы же можете в качестве СУБД использовать не только MS SQL, но и PostgreSQL или даже файловый режим. Так что, брать данные через OData корректнее, чем напрямую обращаться в БД.
Dimka74; acanta; +2 Ответить
7. user612295_death4321 05.10.18 06:36 Сейчас в теме
Я тоже начал для себя открывать этот чудесный продукт.

Изучение его нажал с того, что прикрутил к нему логи технологического журнала + файлы трассировок СУБД.

Стал мониторить конфликты блокировок + длительные или трудоемкие запросы.

В планах еще создать дашбоард по подробной детализации блокировок и может быть еще какие мысли будут.
Прикрепленные файлы:
TreeDogNight; zhogov; kraynev-navi; vrednyi_glavred; +4 Ответить
8. Man4kin 05.10.18 07:35 Сейчас в теме
(7)
Стал мониторить конфликты блокировок + длительные или трудоемкие запросы.

Почему не используете Гилевский сервис по длительным запросам и по блокировкам ?
9. user612295_death4321 05.10.18 10:18 Сейчас в теме
(8) Когда то давно использовал, но время прошло, скилы качаются :)

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

Вообще я разные сервисы для мониторинга производительности использовал, Гилевские например, затем PERFEXPERT от софтпойнта.

В конечном итоге я вдохновился 2 моментами:

1. Идеей регулярных выражений (здесь спасибо Виктору Богачёву), именно с его помощью я получил толчок в этом направлении.
2. Случайным разговором с Лустиным Алексеем который донес до меня мысль, что руки-ноги-голова есть, заббикс есть, SQL profiler есть, технологический журнал есть - зачем платить большие деньги за дорогой софт или отдавать свои данные в облако - непонятно.
TreeDogNight; AlX0id; starik-2005; +3 Ответить
13. kraynev-navi 382 05.10.18 13:48 Сейчас в теме
15. user612295_death4321 05.10.18 14:18 Сейчас в теме
(13) Да кому оно интересно))))
17. kraynev-navi 382 06.10.18 21:23 Сейчас в теме
(15) не-не-не.. Надо себя заставить. Главное, нАчать. Буду первым плюсанувшим.
10. cj512 27 05.10.18 11:08 Сейчас в теме
А возможно опубликовать какой-то отчет?

Мы пошли по пути делитантов, а именно регламентным заданием формирует отчет СКД и выгружаем его в Excel. Далее PowerBI вытаскивает данные из файла.

Прямое подключение к данным базы пока не выявило преимущества в данном случае, т.к. в отчете множество таблиц + расчетные поля.

Как было лучше сделать?
14. 🅵🅾️🆇 05.10.18 13:52 Сейчас в теме
(10)

Power BI по сути и является СКД.
Такая задача будет скоро стоять.

Если вы хотите посчитать в 1с и отдать простой таблицей в PowerBI, то Я бы попробывал пойти 2 способами:
1) Регламентным заданием (ну или при изменении некого документа) формировать регистр сведений и отдавать уже его (возможно тут стоит применять регистры расчета, но Я в них не умею)
2) Опубликовать не OData, а http сервис (REST) и уже отдавать с помощью него.
18. zhogov 138 07.10.18 10:27 Сейчас в теме
(10)
А возможно опубликовать какой-то отчет?

Конечно можно. Можно и встроить данные куда-то на веб.

(10)
Мы пошли по пути делитантов, а именно регламентным заданием формирует отчет СКД и выгружаем его в Excel. Далее PowerBI вытаскивает данные из файла.

Тоже самое через PowerBI будет в режиме реального времени и без промежуточных файлов. :)
19. cj512 27 08.10.18 12:50 Сейчас в теме
(18)
Тоже самое через PowerBI будет в режиме реального времени


Одной из причин такой реализации - это не делать множественного обращения к базе для формирования этого отчета, т.к. является достаточно тяжеловестным.
20. zhogov 138 08.10.18 13:38 Сейчас в теме
(19)
Одной из причин такой реализации - это не делать множественного обращения к базе для формирования этого отчета, т.к. является достаточно тяжеловестным.

Power BI кэширует данные. Периодичность обновления можно регулировать.
+ он может делать вычисления со своей стороны, а следовательно можно облегчить работу 1С.
16. kembrik 05.10.18 15:39 Сейчас в теме
Интересная какая штукенция. Надо попробовать на ней визуализировать состояние обменов данных
zhogov; ekolyev; +2 Ответить
21. zhogov 138 08.10.18 13:38 Сейчас в теме
(16) Ссылочку на триал надо? :)
30. kembrik 10.10.18 12:08 Сейчас в теме
(21) Не выходит каменная чаша. Сделал запрос, в предпросмотре все данные вижу, а вот при попытке "применить" выскакивает на загрузке данных в модель "Не удалось сохранить изменения на сервере. Возвращена ошибка "Ошибка OLE DB или ODBC : [DataSource.NotFound] OData: Ошибка запроса (404): Удаленный сервер возвратил ошибку: (404) Не найден. (Not Found)."

В расширенном запросе let
Источник = OData.Feed("http://1c-web.NashaRusha.ru/NashaRusha/odata/standard.odata/Catalog_Организации", null, [Implementation="2.0"])
in
Источник

В настройках источника уровень конфиденциальности весь перепробовал.
44. mapt 22.11.18 20:19 Сейчас в теме
(30)
Подскажите как решить данную ошибку при загрузке данных?
Канал OData
1С 8.3.13.1576
УНФ 1.6.16.132
Power BI Desktop 2.64
Прикрепленные файлы:
45. kembrik 23.11.18 18:53 Сейчас в теме
(44) А публиковали эту конкретную таблицу через обработку? Через браузер к данному источнику подключаетесь?
46. mapt 25.11.18 22:25 Сейчас в теме
(45)
Обработка «Настройка автоматического REST-сервиса».
Публикация через IIS.
В браузере все загружается.
Если в Power BI загружать не весь справочник, а делать выборку только по нескольким столбцам, все ОК.
Скорей всего проглотить такой объем данных, Power BI не может.
22. DitriX 1616 08.10.18 16:42 Сейчас в теме
(0) Не увидел отличий от статьи 3х летней давности :)
https://infostart.ru/public/360077/
Поиском по статьям проходите перед публикацией.
Yakud3a; pbazeliuk; +2 Ответить
32. kembrik 10.10.18 19:15 Сейчас в теме
(22) "за время пути собачка могла подрасти". Статья отличная, а вот интерфейс не тот кардинально
33. zhogov 138 12.10.18 17:53 Сейчас в теме
(32)
а вот интерфейс не тот кардинально

В той статье рассматривался Power BI из магазина Windows-приложений.
Они отличаются.
37. kembrik 15.10.18 13:51 Сейчас в теме
(33) Я качал из MS Store -ничем не отличается от того что в вашей статье. Потом уже увидел "Стрелочку" загрузок в кабинете
31. kembrik 10.10.18 19:12 Сейчас в теме
Начал рисовать на BI мониторинг обменов данных. Из тех граблей, на которые успел наступить - в типовой УТ нет обработки "«Настройка автоматического REST-сервиса" - пришлось тащить из Бухи, заодно переделал роль соответствующему пользователю только на чтение объектов, чтобы "ни ни".

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

Продолжаю есть кактус
34. zhogov 138 12.10.18 17:55 Сейчас в теме
(31)
Настройка шлюза и собственно обновление данных - отдельное эротическое приключение, достойное статьи. Но без шлюза об регулярном обновлении можно забыть конечно.


Ну мы пошли по пути наименьшего сопротивления - доступ к OData есть из вне - 1С в Azure Болтается.
Далее. в рамках подписки Power BI Pro настроили автообновление.
36. kembrik 15.10.18 13:49 Сейчас в теме
(34) Вариант так сказать не самый дешевый. Мы решили сначала вытащить максимум из бесплатных вариантов а потом уже выбивать бюджет. Не очень получается если честно - УТ с добавленным функционалом ведёт себя весьма капризно и на OData плюнули как на ненадежный вариант, грузим подписками инфу в отдельную mssql базу а там уже цепляем к визуализации.
38. ak0710 130 20.10.18 00:27 Сейчас в теме
Работал с этим программным продуктом в прошлом году, столкнулся с проблемой при прямой выгрузке из SQL базы данных 1С, в том что PowerBI не чувствителен к регистру. 1С может записать одинаковые уникальные идентификаторы (GUID) в реляционную СУБД в одной таблице но с разным регистром. Приходилось использовать дополнительные ключи. Изначально интересовала идея быстро выгрузить данные и связать с помощью уникальных идентификаторов.

Через OData при больших объемах данных выгружается продолжительное время.

В данный момент используем QlikView для BI задач предприятия. Из плюсов можно получать данные из 1С в любом формате (я использую прямые запросы SQL), их структурировать и обрабатывать как угодно на стороне QV и выдавать результат. Минусы дороговизна лицензий.
39. leobrn 126 29.10.18 13:41 Сейчас в теме
А как будет выглядеть получение данных об оборотах и остатках из виртуальных таблиц 1С?
40. zhogov 138 01.11.18 16:37 Сейчас в теме
(39) Что именно Вас интересует - визуализация или техническая сторона?
41. leobrn 126 01.11.18 19:26 Сейчас в теме
Да в принципе все интересно т.к только начал погружаться в power bi) но больше конечно техническая часть.
42. zhogov 138 05.11.18 12:35 Сейчас в теме
(41) Ну техническая часть описана в статье. :)
Логика взаимосвязей данных может быть реализована в Power Bi.

Если есть конкретные вопросы - пишите в ЛС.
Оставьте свое сообщение