В статье рассмотрен вариант подключения 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 –//infostart.ru/public/711302/
Разворачивание 1С в Azure – //infostart.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
Power BI разве не умеет работать с ms sql? продукты же одного вендора, поэтому иметь прослойку в виде кластера сервера 1С и веб сервера видется мне не разумной в вашем варианте.
(1)в ms sql вроде названия таблиц/полей сложно читаемые, точнее сложно понять что это за объект метаданных.
(1) и нарваться на нарушение лицензии 1С?
(4) даже на курсах экспертов открытым текстом говорят, что «нарушайте лицензионное соглашение» как можно чаще — и жить вам станет гораздо лучше.
Но по поводу OData — это нормальная тема, оно здесь абсолютно к месту. Автору респект и уважуха.
(5) Мы сейчас у себя активно все оперативные отчеты и показатели переводим в Power BI. А так как 1С является центральной учетной системой — используем OData, что бы не отрывать данные от бизнес-логики.
Я тоже начал для себя открывать этот чудесный продукт.
Изучение его нажал с того, что прикрутил к нему логи технологического журнала + файлы трассировок СУБД.
Стал мониторить конфликты блокировок + длительные или трудоемкие запросы.
В планах еще создать дашбоард по подробной детализации блокировок и может быть еще какие мысли будут.
(7)
Почему не используете Гилевский сервис по длительным запросам и по блокировкам ?
(8) Когда то давно использовал, но время прошло, скилы качаются 🙂
— Не нужно лить данные в облако, все можно получить в реалтайме.
— Очень удобнейшая визуализация с очень гибкими отборами при изменении которых все диаграммы сразу меняются.
— Вывод информации в том виде, в котором хочешь ты.
Вообще я разные сервисы для мониторинга производительности использовал, Гилевские например, затем PERFEXPERT от софтпойнта.
В конечном итоге я вдохновился 2 моментами:
1. Идеей регулярных выражений (здесь спасибо Виктору Богачёву), именно с его помощью я получил толчок в этом направлении.
2. Случайным разговором с Лустиным Алексеем который донес до меня мысль, что руки-ноги-голова есть, заббикс есть, SQL profiler есть, технологический журнал есть — зачем платить большие деньги за дорогой софт или отдавать свои данные в облако — непонятно.
А возможно опубликовать какой-то отчет?
Мы пошли по пути делитантов, а именно регламентным заданием формирует отчет СКД и выгружаем его в Excel. Далее PowerBI вытаскивает данные из файла.
Прямое подключение к данным базы пока не выявило преимущества в данном случае, т.к. в отчете множество таблиц + расчетные поля.
Как было лучше сделать?
(3) Открывать SQL мордой в интернет?
Вы серьезно?
В цивилизованном обществе такие вещи решаются через REST или еще через какие прокси, даже на чтение так делать не стоит.
К тому же Вы нарушите лицензионное соглашение в данном случае.
(2) + никто не гарантирует вам, что это «сложночитаемое» таблица/поле еще и сохранит свое наименование со временем.
(7) А где статья? ))
(10)
Power BI по сути и является СКД.
Такая задача будет скоро стоять.
Если вы хотите посчитать в 1с и отдать простой таблицей в PowerBI, то Я бы попробывал пойти 2 способами:
1) Регламентным заданием (ну или при изменении некого документа) формировать регистр сведений и отдавать уже его (возможно тут стоит применять регистры расчета, но Я в них не умею)
2) Опубликовать не OData, а http сервис (REST) и уже отдавать с помощью него.
(13) Да кому оно интересно))))
Интересная какая штукенция. Надо попробовать на ней визуализировать состояние обменов данных
(15) не-не-не.. Надо себя заставить. Главное, нАчать. Буду первым плюсанувшим.
(10)
Конечно можно. Можно и встроить данные куда-то на веб.
(10)
Тоже самое через PowerBI будет в режиме реального времени и без промежуточных файлов. 🙂
(18)
Одной из причин такой реализации — это не делать множественного обращения к базе для формирования этого отчета, т.к. является достаточно тяжеловестным.
(19)
Power BI кэширует данные. Периодичность обновления можно регулировать.
+ он может делать вычисления со своей стороны, а следовательно можно облегчить работу 1С.
(16) Ссылочку на триал надо? 🙂
(0) Не увидел отличий от статьи 3х летней давности 🙂
https://infostart.ru/public/360077/
Поиском по статьям проходите перед публикацией.
(2) так себе причина…
(4) о каких нарушениях речь?
(23)
Лицензионное соглашение не позволяет использовать недокументированные фирмой «1С» средства для построения решений на платформе 1С:Предприятие. Это означает, что средства СУБД (или любые другие внесистемные средства) можно использовать только в том случае, если документация по продуктам линейки «1С:Предприятие» (включая 1С:ИТС) содержит явную рекомендацию использовать данное средство для решения данной задачи.
Во всех остальных случаях лицензионное соглашение позволяет использовать для построения решений только штатные средства платформы. В частности, можно обращаться к данным информационной базы только при помощи объектов «1С:Предприятия», специально предназначенных для работы с данными (запросы, справочники, документы и т.д.). Нельзя обращаться к данным информационной базы напрямую, минуя уровень объектов работы с данными «1С:Предприятия» — например при помощи средств СУБД или при помощи внешних компонент, которые реализуют прямой доступ к СУБД. Это ограничение распространяется на любые действия с данными, в том числе на изменение их структуры, а так же на чтение или изменение самих данных информационной базы или служебных данных «1С:Предприятия».
Данное ограничение необходимо для обеспечения стабильности работы механизмов системы, осуществления поддержки и возможности перехода на новые версии «1С:Предприятия».
(24)
Вот этот абзац никто и не видит из тех, кто обращает внимание на «64-й пункт (или какой он там?)лиц.соглашения»
(25) вот только такие «видящие» не понимают и не хотят понимать, что это еще обусловлено возможным доступом без ключа (бесконтрольно и без ограничения) к базе.
Да и не важно, чем конкретным это обусловлено. Есть лицензионное соглашение. Есть его нарушение. Есть: «Правообладатель обладает правом заблокировать файл электронного лицензионного ключа в случае нарушения условий Лицензионного Соглашения Пользователем.»
(26)
Информация в базе данных далеко не вся принадлежит 1С. И если они начнут блокировать лицензионные ключи тех, кто обращается напрямую к SQL для доступа к данным (только чтение, чтобы ничего не пропало), то у них не останется «толстых» клиентов вообще ни одного (у кого за 1к лицензий). Так что кроме как в лес мне послать таких шустрых умников некуда.
(27)
Сама информация в таком виде не регламентируется в рассматриваемом случае (служебную информации не рассматриваем). Регламентируется доступ к этой информации. Это несколько разные вещи.
И открыто призывать к нарушению лицензионного соглашение не делает вам чести.
(28)
Говорю ровно то, что говорят на курсах подготовки экспертов по технологическим вопросам. 80% крупных организаций между 1С и СУБД имеют какие-то прокладки, которые на ИТС ни разу не описаны.
(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
Источник
В настройках источника уровень конфиденциальности весь перепробовал.
Начал рисовать на BI мониторинг обменов данных. Из тех граблей, на которые успел наступить — в типовой УТ нет обработки ««Настройка автоматического REST-сервиса» — пришлось тащить из Бухи, заодно переделал роль соответствующему пользователю только на чтение объектов, чтобы «ни ни».
Настройка шлюза и собственно обновление данных — отдельное эротическое приключение, достойное статьи. Но без шлюза об регулярном обновлении можно забыть конечно.
Продолжаю есть кактус
(22) «за время пути собачка могла подрасти». Статья отличная, а вот интерфейс не тот кардинально
(32)
В той статье рассматривался Power BI из магазина Windows-приложений.
Они отличаются.
(31)
Ну мы пошли по пути наименьшего сопротивления — доступ к OData есть из вне — 1С в Azure Болтается.
Далее. в рамках подписки Power BI Pro настроили автообновление.
(1) Мы тут с коллегами долго обсуждали.
Мысль сформировалась следующая:
Использование OData дает гарантию кросс-платформенности. Вы же можете в качестве СУБД использовать не только MS SQL, но и PostgreSQL или даже файловый режим. Так что, брать данные через OData корректнее, чем напрямую обращаться в БД.
(34) Вариант так сказать не самый дешевый. Мы решили сначала вытащить максимум из бесплатных вариантов а потом уже выбивать бюджет. Не очень получается если честно — УТ с добавленным функционалом ведёт себя весьма капризно и на OData плюнули как на ненадежный вариант, грузим подписками инфу в отдельную mssql базу а там уже цепляем к визуализации.
(33) Я качал из MS Store -ничем не отличается от того что в вашей статье. Потом уже увидел «Стрелочку» загрузок в кабинете
Работал с этим программным продуктом в прошлом году, столкнулся с проблемой при прямой выгрузке из SQL базы данных 1С, в том что PowerBI не чувствителен к регистру. 1С может записать одинаковые уникальные идентификаторы (GUID) в реляционную СУБД в одной таблице но с разным регистром. Приходилось использовать дополнительные ключи. Изначально интересовала идея быстро выгрузить данные и связать с помощью уникальных идентификаторов.
Через OData при больших объемах данных выгружается продолжительное время.
В данный момент используем QlikView для BI задач предприятия. Из плюсов можно получать данные из 1С в любом формате (я использую прямые запросы SQL), их структурировать и обрабатывать как угодно на стороне QV и выдавать результат. Минусы дороговизна лицензий.
А как будет выглядеть получение данных об оборотах и остатках из виртуальных таблиц 1С?
(39) Что именно Вас интересует — визуализация или техническая сторона?
Да в принципе все интересно т.к только начал погружаться в power bi) но больше конечно техническая часть.
(41) Ну техническая часть описана в статье. 🙂
Логика взаимосвязей данных может быть реализована в Power Bi.
Если есть конкретные вопросы — пишите в ЛС.
(30)
Подскажите как решить данную ошибку при загрузке данных?
Канал OData
1С 8.3.13.1576
УНФ 1.6.16.132
Power BI Desktop 2.64
(44) А публиковали эту конкретную таблицу через обработку? Через браузер к данному источнику подключаетесь?
(45)
Обработка «Настройка автоматического REST-сервиса».
Публикация через IIS.
В браузере все загружается.
Если в Power BI загружать не весь справочник, а делать выборку только по нескольким столбцам, все ОК.
Скорей всего проглотить такой объем данных, Power BI не может.
Всем доброго времени суток! Подскажите, в чём может быть причина этой проблемы? Пытаюсь подключиться через Канал OData, в Excell подключается спокойно, а в PowerBI выходит ошибка (прикрепил скриншот).
В предварительном просмотре данные отображаются, ошибка выходит после нажатия кнопки Загрузить.
В подробных сведениях написано следующее:
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:UsersILYAAppDataLocalMicrosoftPower BI DesktopFrownSnapShot812566119.zip Performance Trace Logs: C:UsersILYAAppDataLocalMicrosoftPower BI DesktopPerformanceTraces.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 Источник;
День добрый!
В конторе используется 1С7.7 (УТ) переписанная до невозможности. В настоящее время переход на 8.3 ведется, но небыстро. Вся аналитика в 7-ке. А механизм есть — подружить Power Bi и 7.7?
Добрый день! Загрузил справочник номенклатуры нормально, однако больше ни чего не могу загрузить так как стала выходить ошибка: Подробности: «Не удалось выполнить анализ результата ответа OData. Ошибка: A type named ‘StandardODATA.Catalog_ВидыНоменклатуры’ could not be resolved by the model. When a model is available, each type name must resolve to a valid type.» Не сталкивались с такой?
(7)Вы подключали это через oData ?
(6) Только для ODATA в силу ограничения возможностей протокола надо подготоавливать массивы данных в виде кучи дополнительных регистров накопления и сведений, этакие кубы. Сложность в том, что эти самые кубы надо актуализировать.
Добрый день! А есть ли механизм обратной записи из Power Bi, к примеру, в SQL. Нажал менеджер виртуальную кнопку в мобильном приложении Power Bi и полетел запрос/скрипт в базу-источник SQL?
(52) Возможно я не понял задачи, можете пояснить — какую именно цель Вы хотите достигнуть?
(53) Power Bi позволяет визуализировать информацию в виде графиков, схем, диаграмм и пр. К примеру, на одном из дашбордов выводятся значения каких-либо показателей и руководитель хочет иметь возможность нажать кнопку на дашборде, тем самым согласовать или не согласовать значение показателя. Событие нажатия на кнопку должно порождать запрос в базу-источник (хотя вряд ли) или запрос к web сервису, передавая информацию о событии.
(54) Будет правильнее запустить процесс согласования с помощью Microsoft Flow. Сценарий примерно такой — руководитель получает запрос на согласование показателей и ссылку на дашборд с показателями — если все ок, нажимает кнопку согласованно. Соответствующее уведомление идет ответственным сотрудникам. В принципе можно на кнопку повесить запуск процесса утверждения.
Здравствуйте! Поделитесь опытом, как вы организовываете работу с большими объемами данных. Например, у нас УТ11. Номенклатура 90 000 позиций, регистры выручки и себестоимости огромные. Попробовали загружать данные в PBi очень долго.
Скажите с каким объемом данных вы работаете и как организуете работы, может ночные автоматические обновления или как то ещё. Мы начали с протокола oData. Напрямую к SQL если подключатся PBi не разбирает тип binary.
(49) Добрый день, не нашли решение?
(49)
Нашёл проблему, адрес odata должен быть такой:
http://ваш_сервер/имя_ИБ/ru_RU/odata/standard.odata/Catalog_ВидыНоменклатуры
(58) один раз загрузил данные, и все, опять ошибка =/
(56)
Тип binary содержит ссылку на объект.
Делаете связь по этому полю с владельцем(_IDRRef) и из владельца получаете что вам нужно(например, _Code или _Description, соответственно Код и Наименование).
Вот это расширение, я думаю, очень вам поможет:
https://infostart.ru/public/1159749/
(48)
Если 7.7 хранит данные в SQL, то возможно, либо выгружать данные из 7-ки в Excel, а Power BI подтягивать данные из папки.
MS PBI загружает данные в себя. Данные из источников дублируются в базе MS BPI.
Эта база может храниться в файла *.pbix.
Для организации общего доступа проект необходимо опубликовать.
Публикация данных осуществляется в облачное хранилище.
Есть ограничение на публикацию данных в облака.
Как настроить публикацию на внутренний сервер SQL?
Есть информация что для этого может использовать SSRS. Как настраивается?