Microsoft Power BI + 1С. Зачем и как?

Опубликовал Дмитрий Шерстобитов (DitriX) в раздел Программирование - Инструментарий

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

Продолжаем нашу эпопею с мобильным миром. И сегодня я хочу поговорить о вот таком вот продукте Microsoft Power BI.

Что есть такое Microsoft Power BI?

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

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

Вот так и с этими описаниями, посему – давайте я попробую описать все это своими словами.

Если выражаться словами 1Сника, то:

Microsoft Power BI – это СКД. Вот и все J

Но вот только СКД в более глобальном плане. Т.е. если в СКД мы можем взять данные из БД или, например, из неких внешних источников данных. То в BI – мы берем все данные из внешних источников и рисуем из них красивые и живые графики. Причем не такие живые в 1С, а реально – интерактивные графики со взаимосвязями и т.д. Хотя ради справедливости стоит заметить, что то же самое можно сделать и в 1С, но не так удобно.

Немного теории

BI– это облачный сервис, где хранятся ваши данные и ваши отчеты. Да, да. Как я и говорил ранее – BI очень похоже на отчеты на СКД.

Как вы понимаете – отчеты надо где-то писать. Посему существует конфигуратор Power BI Designer, где вы этим и занимаетесь. Скачивайте его отсюда.

Естественно, что раз есть место, где мы отчеты пишем, значит, должно быть место, где мы их смотрим. И таких мест несколько:

  • 1.       Сама среда, где мы их пишем. Ну это логично, но полезно только нам;
  • 2.       Веб-интерфейс;
  • 3.       iOS устройства;
  • 4.       Windows устройства, могут установить в стиле метро. Те, у кого Win 8/8.1. Смотрится реально футуристично, особенно на больших мониторах.
  • 5.       Android устройства. «Androidappisontheway». Ждем.

Логика работы

Давайте сначала объясню логику работы, чтобы потом было понятней – почему делаем так, а не иначе. Всю разработку можно разбить на несколько этапов:

  • 1.       Регистрацию аккаунта. Тут можно посмотреть цены, но есть и бесплатная версия, так что тестировать можно. Конечно, для запада цена в 10$ с пользователя в месяц – это мелочь, а вот для наших стран – это-таки немало. Хотя опять же, даже если взять фирму в 500 человек, скольким сотрудникам понадобится такой функционал?
  • При регистрации учтите один момент – она выполняется слева внизу, где указываете почту. Если зайти в Sign in – там только авторизация.
  • 2.       Необходимо запустить конфигуратор Power BI Designer, тот, который вы скачали ранее.
  • 3.       В конфигураторе мы делаем все, что мы хотим, формируем внешний вид и т.д., потом сохраняем файл проекта.
  • 4.       Теперь файл проекта нам надо подтянуть в нашу учетку, чтобы изменения сохранились там.
  • 5.       Авторизуясь под своим аккаунтом на мобильном устройстве или в клиенте для Windows – подхватываются ваши настройки.
  • 6.       Получить удовольствие.

Работа с конфигуратором

Теперь давайте разберемся с тем, как все-таки строить отчеты и как получать данные?

Получение данных

При первом открытии вас встретит помощник. Закрываем его. И удаляем все лишнее. У нас должно остаться только вот такое вот окошко:

Пока не будем вдаваться в подробности о назначении всех кнопочек. А попробуем ответить на вопрос – как нам получить данные?

В погоне за ответом мы должны нажать кнопку «GetData», - та, что слева вверху, нас встретит вот такой диалог:

Как видите – список потенциальных источников просто огромен. Однако, мы возьмем вариант получения данных при помощи OData, видь он есть у нас в 1С, а мы его обычно не используем. Давайте вот его и применим. Более детально про него можно почитать тут:

Первое, что нам надо сделать – это, конечно же, найти донора, т.е. базу, из которой мы будем все эти данные тащить.

Есть несколько вариантов:

  • 1.       Поднять свой веб-сервер, и данные тащить оттуда. Но такой вариант неудобен для обучения, так как я свой сервер не дам в публичный доступ.
  • 2.       Пойти на сайт 1С, где есть демо-конфигурации, и попытать счастья там, в надежде, что хоть в одной из них открыт OData. Убедиться, что это не так, и закрыть сайт.
  • 3.       Пойти на англоязычный сайт 1С, присмотреть там какую-то базу, у которой открыт доступ через OData. И найти такую.

Итак, останавливаемся на УНФ, проверить, что ODataдоступен, можно вот таким путем:

http://apps.1c-dn.com/sb/odata/standard.odata/

Если вы там видите список метаданных, то все ок.

Теперь давайте проверим справочник, например, справочник товаров:

http://apps.1c-dn.com/sb/odata/standard.odata/Catalog_Nomenclature

Как видите, мы к первому адресу просто прибавили имя справочника и обозначение, что это справочник, в русскоязычных конфигураторах он бы выглядел вот так:

http://apps.1c-dn.com/sb/odata/standard.odata/Catalog_Номенклатура

Когда мы перейдем по этому URL, мы должны увидеть xml, который будет описывать каждый элемент справочника, однако, все зависит от браузера, FireFox выводит эти данные в виде RSS ленты. Но сути это не меняет.

Если же у вас, при подключении к вашей базе, появилось сообщение о том, что не найдена сущность, то вам сюда //infostart.ru/public/297325/.

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

Итак, первым делом – нам надо понять, где хранятся продажи. Они точно хранятся в регистре накоплений, а этот регистр обозначается в OData, как AccumulationRegister. Вот их и ищем. Нам в этом помогут элементарные знания инглиша. А вот и наш регистр AccumulationRegister_Sales. Проверяем:

http://apps.1c-dn.com/sb/odata/standard.odata/AccumulationRegister_Sales

Если видим xml, то все ок.

Теперь идем в наш BI конфигуратор, выбираем в нем строку с OData, ту, что я выделил желтым на скрине выше и жмем Connect, далее заполняем все, что надо:

Теперь нас встретит следующее окно:

Тут нам сообщается о том, что у нас не указана авторизация. Надо указать. Причем обратите внимание, вы авторизацию можете указать как в целом для домена, так и для конкретного адреса, как указать авторизацию для конкретной базы – я не нашел, но это нам сейчас и не важно.

Слева нам надо выбрать тип авторизации. В нашем случае – это авторизация по типу Basic:

Указываем логин без пароля и жмем connect. Должна начаться загрузка данных. После нее – у вас появятся слева поля:

Доступные поля отображаются справа вверху, сейчас их только два.

Слева внизу – вы переключаетесь между отчетами и данными, из которых отчеты строятся. В нашем случае – это запросы.

Слева вверху – страницы с отчетами, т.е. на одной странице (а-ля макет 1С) может быть много разных данных.

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

Это окно работы с запросами. Слева вверху будут доступны все запросы, которые вы добавите.

По центру сверху – строка подключения. По сути – это текст запроса, тут указываются и отборы, и пути и т.д.

Справа у нас идет название запроса и последовательность шагов.

Вот на последовательности мы немного поговорим. Суть ее сводится к тому, что мы описываем в ней пошагово правила, которые хотим применить к нашим данным. Т.е. если вы хотите удалить колонку, то надо указать в каком времени – это будет шаг номер 2, или номер 10. Дальше станет понятней.

Итак, у нас есть всего три колонки. С чем это связано? Давайте внимательно посмотрим на xml, который нам отдает 1С и найдем то место, где начинается список, т.е. в случае OData нам возвращается не построчное представление регистра, как мы привыкли, а выводится сначала информация о регистраторе, а потом уже вложены в него его движения.

Ну а нас интересуют именно эти строки. Давайте теперь выделим любой элемент в средней колонке и внизу увидим вот такое сообщение:

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

Теперь у нас 50 строк. Т.е. мы развернули все построчно, а ранее было сгруппировано по регистратору, если говорить словами 1С.

Но нас это не устраивает, нам мало колонок, я думаю, вы догадались, что надо сделать – жмем еще раз на ту кнопку в заголовке:

А вот теперь мы выбираем – что мы хотим добавить, т.е. по аналогии с запросом в 1С – выбираем поля, которыми мы потом хотим оперировать:

И жмем ОК:

Обратите внимание – у нас справа заполнился список действий, т.е. в нашем случае действия такие:

  • 1.       Получить данные;
  • 2.       Развернуть данные;
  • 3.       Развернуть данные.

И сразу обратите внимание на формулу вверху.

Теперь нам надо решить проблему, потому что нас совсем не устраивает наименование товара в виде UID. Я сомневаюсь, что такой вид будет информативен.

Значит, нам надо теперь вывести информацию по товару, давайте мы это сделаем объединением таблиц товара и продаж.

Для этого – добавляем новый запрос, но уже к справочнику товаров http://apps.1c-dn.com/sb/odata/standard.odata/Catalog_Nomenclature, точно так же, как и продаж, и переименуем эти таблицы, чтобы не путаться:

Обратите внимание – я сразу применил несколько шагов к данным о товаре, а именно:

  • 1.       Получил данные:
  • = OData.Feed("http://apps.1c-dn.com/sb/odata/standard.odata/Catalog_Nomenclature")
  • 2.       Удалил лишние колонки:
  • = Table.RemoveColumns(Source,{"SKU", "ChangeDate", "WriteOffMethod", "DescriptionFull", "BusinessActivity_Key", "Vendor_Key", "Cell_Key", "Comment", "OrderCompletionTerm", "TimeNorm", "FixedCost", "CountryOfOrigin_Key", "PictureFile_Key", "Parent_Key", "DataVersion"})
  • 3.       Отфильтровал записи, убрал все группы:
  • = Table.SelectRows(#"Removed Columns", each ([IsFolder] = false))

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

Т.е. мы всегда должны указывать, к какому шагу мы применяем то или иное правило.

Идем дальше, теперь у нас есть две таблицы, и точно так же, как и в случае с 1С, мы должны их объединить. Есть два способа, как можно это сделать:

  • 1.       Просто взять и сделать объединения по типу связей в 1С, когда мы объединяем две таблицы.
  • 2.       Добавить в одну из таблиц нужные нам данные из другой.

Мы их разберем оба. Итак. Сначала мы просто делаем объединение. Для этого идем на вкладку Отчеты (слева внизу) и нажимаем кнопку Manage:

И настраиваем связи:

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

А теперь идем уже строить отчеты:

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

Теперь давайте попробуем еще добавить сюда номенклатурные группы товара. По идее, надо было бы добавить еще один запрос с номенклатурными группами и связать их с полем NomenclatureGroup_Key в запросе номенклатур. Однако нам это не понадобится. Идем в самый конец, смотрим на последние колонки в запросе Номенклатура.

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

Перенос данных на свою учетку

После всего этого – сохраняем полученный нами отчет. Он, кстати, прикреплен к статье. Так что можете его скачать из прикрепленных файлов к этой статье.

Далее идем в наш аккаунт на сайте:

Нажимаем GetData, выбираем пункт PowerBIDesignerFile и жмем Connect, далее выбираем файл и еще раз жмем Connect.

Ну, а дальше все и так интуитивно понятно. Вы прям тут можете редактировать отчеты, доски и т.д.

А теперь давайте зайдем в приложение iOS и посмотрим, как оно выглядит там:

Вот и все.

Итог

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

Если хорошо знать OData, то сделать такого рода отчет можно за несколько минут. И кроме этого – для простоты работы и меньшей нагрузки на БД можно просто создать отдельный регистр сведений, куда скидывать сразу всю нужную информацию, а этим решением забирать ее и выводить.

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

Все, что надо для того, чтобы приступить к работе - установить веб-сервер, обновить платформу до 8.3.6 (может и с 8.3.5 будет работать, я не тестил, главное, чтобы там не было багов в платформе), вытянуть данные и скомпоновать их.

Т.е. для программиста это займет от силы несколько часов. А результат - отличный.

P.S. Не забудьте про безопасность данных!

Скачать файлы

Наименование Файл Версия Размер
Файл настроек
.pbix 438,10Kb
25.05.15
13
.pbix 438,10Kb 13 Скачать

См. также

Комментарии
1. Призрак (davdykin) 16 25.05.15 20:26 Сейчас в теме
Спасибо, интересна как потенциальная возможность.
2. Роман С (Dach) 89 26.05.15 10:07 Сейчас в теме
Очень здорово! А я правильно понял, что эта среда (Power BI) позволяет скомпилить андроид-приложение, которое например будет коннектиться к базе 1С по вебу и тоже строить графики?
3. Алексей Роза (DoctorRoza) 26.05.15 10:18 Сейчас в теме
Конечно, тут нужно смотреть более детально, только (ИМХО) и штатная СКД ТАКОЕ выведет. Тут интересны больше воронки, пирамидки и т. п. фигуры и, обязательно, с цветовой гаммой. До кучи. чтобы были кликабельны с расшифровкой. И совсем полный абзац, если можно строить кубы-данных. А если нет, то .. ну с пивом потянет! :)
4. Дмитрий Шерстобитов (DitriX) 2352 26.05.15 11:58 Сейчас в теме
(2) нет, это что то типо тонкого клиента, т.е. вы ставите с маркета приложение (под андроид пока нет, но есть под iOS) подключаете учетку и вперед. Т.е. ничего компилить не надо в этом и весь прикол :)
(3) ну так вот тут все это можно, и делается это все просто, а в скд - это на все надо вешать обработчики.
DoctorRoza; +1 Ответить
5. Юрий Баянов (yyb) 26.05.15 16:16 Сейчас в теме
Поднял IIS на windows 8.1, опубликовал базу (УТ 10.3 платформа 8.3.6.2014) на вэб сервере. Вэб клиент работает, "все функции" работают. При запросе данных odata http://localhos/<имябазы>/odata/standard.odata запрашивает имя/пароль. Имя пользователя/пароль базы 1С не проходит. В чем может быть проблема?
6. Алексей Роза (DoctorRoza) 26.05.15 16:22 Сейчас в теме
(5) yyb, очень возможно, что нужно создать пользователя и пароль на латинице.
7. Дмитрий Шерстобитов (DitriX) 2352 26.05.15 16:28 Сейчас в теме
(5) таки да, первое правило - это латиница в логине и пароле :)
8. Франко Деллиани (Franco) 58 26.05.15 22:57 Сейчас в теме
Если затребует логин/пароль к
http://apps.1c-dn.com/sb/odata/standard.odata/
то введите Demo и пустой пароль
9. Юрий Баянов (yyb) 27.05.15 09:25 Сейчас в теме
Проблема решена путем создания пустых папок Odata\Standard.odata в папке \inetpub\wwwroot\<имя базы>.
10. Андрей Д. (detec) 122 27.05.15 09:54 Сейчас в теме
ИМХО, показуха для презентаций. 1С 8 - это не просто база данных, а виртуальные таблицы для регистров накопления. там, где их нет, отчёт будет строиться очень долго. Тем более, когда записи будут тянуться через веб-сервер в текстовом формате куда-то в облако и возвращаться в сгруппированном виде.
11. Дмитрий Шерстобитов (DitriX) 2352 27.05.15 13:24 Сейчас в теме
(10) открою секрет - тут их нет :) через OData не тянуться виртуальные таблицы. Только если их брать через скуль, на сколько я понял.
Та и в целом, там где их нет - и 1с будет долго строить отчеты.

А вообще - это просто идеальный вариант отчета руководителю. :)
12. Евгений Шабалин (xzorkiix) 24 01.06.15 09:56 Сейчас в теме
(11) DitriX, воу-воу любезный, через oData всё тянется

В REST интерфейсе доступны реквизиты объектов конфигурации, доступны операции создания, чтения, модификации и удаления данных, а также некоторые методы встроенного языка. Например:

Для документа - проведение и отмена проведения;
Для задачи - выполнение;
Для бизнес-процесса - старт;
Для регистра сведений - получение среза первых и среза последних;
Для регистра накопления и регистра бухгалтерии - получение остатков, оборотов, остатков и оборотов;
Для регистра расчета - получение данных графика, фактического периода действия, перерасчета и базы.


пруф 1

В REST интерфейсе доступны реквизиты объектов конфигурации, доступны операции создания, чтения, модификации и удаления данных, а также некоторые методы встроенного языка. Например:

Для документа - Post() и Unpost();
Для задачи - ExecuteTask();
Для бизнес-процесса - Start();
Для регистра сведений - SliceLast() и SliceFirst();
Для регистра накопления и регистра бухгалтерии - Balance(), Turnovers() и BalanceAndTurnovers();
Для регистра расчета - ScheduleData(), ActualActionPeriod(), <ИмяПерерасчета>() и Base<Имя базового регистра расчета>().


пруф 2
13. Дмитрий Шерстобитов (DitriX) 2352 01.06.15 11:55 Сейчас в теме
(12) И действительно. век живи - два учись. Как то оно мне не надо было, и вообще пропустил что такое есть :)
Для остальных - писать надо так:
http://apps.1c-dn.com/sb/odata/standard.odata/AccumulationRegister_Sales/Turnovers()
Т.е. в конце через слеш добавляем тип виртуальной таблицы.
14. Сергей Старых (tormozit) 4135 28.07.15 09:41 Сейчас в теме
Как отбор то накладывать при извлечении данных? Без отбора, кажется, любая большая таблица сильно нагрузит канал и заставит долго ждать пользователя.
15. Дмитрий Шерстобитов (DitriX) 2352 28.07.15 11:56 Сейчас в теме
ну так в самом мост запросе, сам протокол поддерживает отборы, например, вот:
http://host/odata/standard.odata/Catalog_Товары?$filter=Имя eq 'Молоко' and Цена lt 2500
В итс это разжевано
16. Сергей Старых (tormozit) 4135 28.07.15 15:32 Сейчас в теме
(15) Так а этот BI умеет такие фильтры дописывать исходя от настроек заданных пользователем? Это ж вроде не относится к стандарту OData.
17. Дмитрий Шерстобитов (DitriX) 2352 28.07.15 19:32 Сейчас в теме
(16) не, суть его в том, что в БИ выгружаются все данные, а потом он строит свои отборы.
К примеру, у вас есть два человек, у одного доступ к одной организации, а другого - к другой.
А данные находятся в одной таблице 1С.
Но, каждый из них, должен уметь строить отчеты с отбором по товару.
Поэтому, в момент получения данных из 1с - вы ставите фильтр на организацию, и только на нее. После загрузки - у этих двоих будут данные только по своим организациям.
А во отборы по товару - они уже делают локально, без образещения к серверу на основании своих данных.

Короче, есть 1 ЦБ и есть 2РБД, вы в каждую РБД грузите данные по главным отборам, а уже в каждой из них - стоите отчеты по полученным данным :)
Как то так :)
18. Сергей Старых (tormozit) 4135 29.07.15 00:43 Сейчас в теме
(17) В общем ограничения доступа здесь являются серьезной сложностью. Закачивать все свои бизнес данные в неведомое облако тоже не каждый управленец захочет. Но уверен, что и такой подход найдет своих пользователей.
19. Игорь Steelvan (Steelvan) 26 29.07.15 10:25 Сейчас в теме
Хм... Сколько все это стоит ?

Уверен что MS (как и все жадные американские конторы), тем более для корпоративных приложений, ставят конкретный ценник.

Сейчас все более-менее высокие чиновники переходят на простые раскладушки (подальше от прослушек сами знаете кем), а вы предлагаете САМИМ все это ИМ отправлять. хе-хе...
20. Игорь Steelvan (Steelvan) 26 29.07.15 10:46 Сейчас в теме
21. Дмитрий Шерстобитов (DitriX) 2352 29.07.15 11:52 Сейчас в теме
(19) а у вас смартфон эппле или гугл? а может блэкбери? или вин фон. А сидите за какой ОС?
А офис какой вы юзаете? А по скайпу файлы передаете?
Короче - я бы с вами не спорил, если бв я говорил про какого то поставщика услуг, о котором никто ничего не знает.
Но Карл! Это Майкрософт! Карл!!! Он и так все о всех знает.
А вот вы при обмене данными поднимаете хотябы https или тунель? подписываете ключом 2048бит? Думаю фиг.

Поэтому давайте не будем :)
investec; +1 Ответить
22. Дмитрий Шерстобитов (DitriX) 2352 29.07.15 11:55 Сейчас в теме
(19)
Хм... Сколько все это стоит ?

Давайте поиграем в игру - прежде чем писать камменты, вы прочтете статью :)
23. Дмитрий Шерстобитов (DitriX) 2352 29.07.15 11:58 Сейчас в теме
(18) безусловно. Если мы говорим о финансовых показателях - то тут вопрос такой, с подвохом. А если мы говорим про остатки товара, долги контрагентов, план закупок, то тут очень даже ничего.
Ну а во вторых - это все таки Майкрософт, а уж они, если захотят, то могут получить вообще всё! :)

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

В общем на каждое решение - свой покупатель.
24. Валентин Будкин (vabue) 114 07.09.15 22:36 Сейчас в теме
В продакшне ещё долго ждать пока в 8.3.8 появится поддержка $top оператора odata.
А без этого и Power Query, и Power BI designer работают криво.
25. Дмитрий Шерстобитов (DitriX) 2352 08.09.15 10:15 Сейчас в теме
(24) ну смотря для каких задач, это раз. А два - мы можете сами отобрать даныые уже в повер би.
26. Валентин Будкин (vabue) 114 13.09.15 15:41 Сейчас в теме
Играюсь с ним дальше - в один прекрасный момент Power Desktop BI начал загружать только схему, а данные не берёт, пустая таблица.

В Excel при этом те же данные прекрасно загружаются. Никто с таким не встречался?
27. Дмитрий Шерстобитов (DitriX) 2352 13.09.15 21:02 Сейчас в теме
(26) а лицензию купили? Может триал закончился?
28. Валентин Будкин (vabue) 114 30.09.15 23:58 Сейчас в теме
(27) DitriX, нам бесплатно профессиональных лицензий перепадает - серебрянные партнёры MS.
29. Валентин Будкин (vabue) 114 13.12.15 01:50 Сейчас в теме
Похоже причина - платформа 8.3.5. Будем обновляться.
30. Дмитрий Шерстобитов (DitriX) 2352 13.12.15 13:55 Сейчас в теме
Там был один баг в 8.3.5, который заключался в том, что в случае вывода данных в виде OData - два раза дублировался тег Родитель. Ну и ясное дело Power Bi не хотел с этим работать
31. Валентин Будкин (vabue) 114 16.12.15 11:28 Сейчас в теме
А в 8.3.7 вот такое http://take.ms/UvsZA

Даже на http://apps.1c-dn.com/sb/odata/standard.odata/

Какой-то очень балованный этот PowerBI. 8.3.6 мы как-то пропустили на продакшне.
32. Валентин Будкин (vabue) 114 16.12.15 20:58 Сейчас в теме
Если напрямую дёргать урлы регистров - можно работать.

Но для 100МБ+ xml сиё не подходит. Память кушает гигабайтами. Надо начальный ETL какой-то делать. Или засовывать ODATA MS SQL, для него Direct Query есть.
33. Дмитрий Шерстобитов (DitriX) 2352 17.12.15 00:33 Сейчас в теме
(32) Ну так конечно, поэтому майкрософт и предлагает свой сервер. Т.е. типо промежуточный.
И таки давайте открыто - PowerBi не для гигабайтов данных.
Это так, вывести основные показатели, не более. Иначе надо много терабайт оперативки, что бы крутить целый анализ :)
34. Гость 03.02.16 18:20 Сейчас в теме
Огромное спасибо за эту статью и все комментарии к ней. Я обычный юзер экселя, и я тащусь от PQ и PBI, потому что это позволяет в разы увеличить продуктивность в работе с коллегами и руководством. Руководство хочет видеть остатки на банковских счетах наших организаций. Подняли веб-сервер, установил внешнюю обработку, сменил логин на латиницу и наконец-то могу тянуть оттуда данные. К сожалению, я не понимаю, где их (остатки на счетах) там искать. В обработке какой-то адский классификатор, с которым не совсем понятно, как работать. Подскажите, пожалуйста, где посмотреть, как устроена модель данных внутри 1С, из каких объектов что тянуть!
35. Юрий Водерацкий (spawn8995) 2 03.02.16 18:59 Сейчас в теме
36. Гость 03.02.16 21:45 Сейчас в теме
(35) spawn8995, через OData из Excel (Power Query) и из Power BI. Я могу вытянуть оттуда всякие каталоги валют, банковские счета (правда непонятно, что это за банковские счета, их там в разы больше, чем наших. по всей видимости всех наших контрагентов). но где там лежат понятные и нужные бухгалтерские цифры (остаток денежных средств на банковском счете) я не вижу... Может быть, в ИТС есть какой-то каталог объектов 1С для простых смертных аналитиков?.. потому что я не разработчик и не IT
37. Валентин Будкин (vabue) 114 04.02.16 00:39 Сейчас в теме
standard.odata/$metadata немножко связи показывает. Но судя по моей практике, что без понимания справочников и разных видов регистров даже стороннему разработчику с одатой делать нечего.
kirillin@knstr.ru; +1 Ответить
38. Дмитрий Шерстобитов (DitriX) 2352 04.02.16 02:12 Сейчас в теме
(36) Я привел же отчет, где можно сопоставить одни данные с другими и там же делать жесткие отборы.
На счет очтатков - тут надо понимать, что есть регситры накоплений, они состоят из одной простой таблицы данных, и из виртуальных. Остатки - это виртeальная таблица.
Короче - вам сюда http://its.1c.ru/db/v836doc#bookmark:dev:TI000001358
kirillin@knstr.ru; +1 Ответить 1
39. Гость 04.02.16 10:21 Сейчас в теме
(38) DitriX, спасибо! буду учить матчасть) узнал, что такое сущность, раньше знал только объект из CRM.

vabue, спасибо, вижу там RelationShip, по всей видимости это связи между таблицами / сущностями?.. в общем немножко стало понятно, откуда начинать. буду колупаться потихоньку.

нашел сущность БанковскиеВыписки, там проводки видно) надеюсь, до остатков недалеко.
А есть такая сущность "Остаток" или это сумма всех проводок по 51 счету?
В смысле мне искать эту цифру или ее нужно рассчитать?

еще вопрос такой: когда возникает, скажем так, промышленная потребность в создании отчетов PBI/1C, какие есть компании / профессионалы, которые уже достаточно подковались в этом? А то наш вендор 1С, когда поставили вопрос про OData дня 3 искал у себя в филиальной сети специалиста, который объяснил, с чего надо вообще начать.
40. Гость 04.02.16 13:18 Сейчас в теме
Сошлось! это просто фантастика... Сумма по Журналу "Банковские выписки" и есть фактический Остаток на счете.
41. Дмитрий Шерстобитов (DitriX) 2352 04.02.16 15:52 Сейчас в теме
(40) только не надо так делать :)
Вас интересует таблица остатков этого журнала, это виртуальная таблица.
Для регистра накопления и регистра бухгалтерии - Balance(), Turnovers() и BalanceAndTurnovers();
Т.е. ВашАдрес\РегистрБанковскихСчетов\Balance()
И тогда не надо ничего суммировать. На маленьком количестве данных будет работать и ваш метод, но так все таки правильней.
http://v8.1c.ru/o7/201312rest/
kirillin@knstr.ru; +1 Ответить
42. Гость 04.02.16 19:51 Сейчас в теме
Еща раз благодарю за подсказку, но видимо здесь и наступил предел моего понимания. Несколько раз облазил список редактирования состава ОДата и не нашел такого регистра. Так что за неимением чего-то лучшего, можно и суммировать) правда оказалось, что вылезают единичные операции странные, в общем не все бьется с карточкой счета, ну да ладно.
Полагаю, названия этих регистров могут различаться в зависимости от версии 1С и надстройки вендора.

Это правда натолкнуло на другой вопрос: есть ли более удобный список редактирования состава ОДата? а то в обработке по ссылке просто список очень длинный, по нему ни поиском в 1С, никак... и вообще слишком много всего. Очевидно, для подкованных пользователей.
43. M Z (hohlick) 19.05.16 01:20 Сейчас в теме
(32) vabue, какой-никакой ETL в PowerBI есть - Get Data, это тот же PowerQuery в Excel. Не знаю всей специфики работы с OData, но при работе с SQL грамотно составленный запрос фолдится и вся предварительная обработка выполняется на стороне сервера. А затем уже тщательно отобранные данные можно вертеть как угодно.
44. Саша Сашиков (zidkov) 15.06.16 17:56 Сейчас в теме
Спасибо за статью
Исходя из
"Все, что надо для того, чтобы приступить к работе - установить веб-сервер, обновить платформу до 8.3.6 (может и с 8.3.5 будет работать, я не тестил, главное, чтобы там не было багов в платформе), вытянуть данные и скомпоновать их."

получается нужно именно веб-сервер?
а напрямую на сервер, без веба никак?
45. Дмитрий Шерстобитов (DitriX) 2352 15.06.16 18:39 Сейчас в теме
47. Илья Вильчик (TreeDogNight) 14 25.09.16 14:23 Сейчас в теме
Можно вопрос не по теме: с помощью какого софта вы делаете GIF-ки как на 1м скрине?
48. Дмитрий Шерстобитов (DitriX) 2352 25.09.16 17:54 Сейчас в теме
(47) TreeDogNight, есть такая программка Camtasia Studio. У нее вобще гифки выходят шикарнейшие, так как она очень качественно сжимает гифки, по умному :)
TreeDogNight; +1 Ответить 1
49. Илья Вильчик (TreeDogNight) 14 26.09.16 07:10 Сейчас в теме
(48) DitriX, Спасибо, попробую!)