Получение данных из базы 1С в Power BI с помощью OData. Часть1.

Loading

Получение данных из информационной базы 1С в Power BI Desktop с помощью OData. Часть1.

На нашем занятии мы рассмотрим основы применения канала OData для получения информации из бухгалтерии 1С в программе Power BI Desktop. Это позволит получать нужные данные в интерактивном режиме без особенных усилий. Сразу же обратим внимание на определенные тонкости:

  1. OData вовсе не является панацеей. Для больших организаций, возможно, ее применение замедлит получение данных. Как выход, можно применить данный способ для получения ключевых показателей один раз в сутки. Однако это самый простой и быстрый способ получить информацию интерактивно без лишних затрат и усилий.
  2. Для настройки требуются внимательность, аккуратность и точность.
  3. Так как потребуется опубликовать выбранную информационную базу на локальном веб- сервере, то потребуются права локального администратора.
  4. Сама информационная база бухгалтерии должна располагаться на локальном диске. Расположение ее в документах пользователя или на его рабочем столе нежелательно.

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

Решение задачи состоит из указанных этапов:

  1. Настройка и развертывание локального веб сервера.
  2. Настройка доступа к информационной базе по интерфейсу OData.
  3. Публикация выбранной базы на развернутом сервере
  4. Создание строки подключения к выбранному объекту – сущности
  5. Получение и обработка полученных данных в Power BI Desktop.

Приступим к работе

Шаг 1. Развернем и запустим локальный веб-сервер. Мы будем использовать бесплатный сервер Apache. Открываем браузер и в строке поиска указываем:

apache скачать

Первая же ссылка в результатах поиска ведет нас на нужную страницу официального сайта программы apache.org

Перейдя по ссылке, прокрутим страницу немного вниз и видим ссылку на файлы для Microsoft Windows. Выбираем ее.

 

Перед нами новая страница, содержащая варианты скачиваний. Выбираем первый – Apache Lounge. Остальные – это полноценные сервера с поддержкой PHP, MySQL и так далее. Нам такое не нужно.

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

 После сохранения открываем архив. Нас интересует пока Apache24. Копируем ее из архива и вставляем непосредственно на локальный диск “C:\”. Приступаем к настройке. Необходимо проверить один файл. Он называется httpd.conf и находится в подпапке conf папки сервера.

При попытке открыть файл скорее всего появится сообщение, что Windows не удается открыть файл этого типа.

Тогда нажимаем на вариант «Использовать приложения с данного ПК» и в следующем окне выбираем блокнот, так как данный файл, по сути, простой текстовой документ.

Нас интересует только одна строчка –«Define SRVROOT “C:/apache24”».

Именно в ней хранится информация о нахождении файлов сервера в системе. Если Вы использовали именно диск «C:\», то ничего менять не надо. А вот если вы решили пофантазировать и поступили по принципу – «А я так хочу!» – придется прописать в кавычках путь к вашей папке с файлами сервера. В последнем случае не забудьте изменить в пути обратные косые черты на прямые. Проще говоря, должно быть не так

C:\apache24

А так

C:/apache24

Теперь перейдем в папку Bin в папке сервера. Выбираем там файл httpd.exe, затем на вкладке «Главная» Нажимаем кнопку «скопировать путь»

Наша новая задача – запустить командную строку от имени администратора. Для этого есть разные способы. В частности, можно нажать правой кнопкой на кнопку «Пуск» и выбрать пункт «Командная строка (администратор)

А можно ввести в сроке поиска «Командная строка» или «cmd» и выбрать в контекстном меню результата вариант «Запуск от имени администратора».

В появившемся окне щелкаем правой кнопкой для вставки скопированного пути и дописываем текст

-k install & net start apache2.4

Должно получится

“C:\Apache24\bin\httpd.exe” -k install & net start apache2.4

Появится предупреждение безопасности. Проверяем установку обеих галочек и нажимаем OK

 

Система сообщает, что служба apache2.4 успешно запущена.

А это значит, что первый шаг – установка и запуск веб-сервера успешно завершен!

Шаг 2.  Перейдем к настройке доступа по каналу OData к выбранной информационной базе. Откроем ее в режиме 1С Предприятия.

После открытия выбираем пункт администрирование и далее выбираем синхронизацию данных:

И наконец переходим к настройке стандартного интерфейса «Одата»

Перед нами открываются настройка стандартного REST интерфейса. Сразу создадим пользователя для подключения. Он сможет только выполнить подключение по каналу OData, но не сможет ничего изменить, удалить или добавить. Кроме этого, данный пользователь будет работать только в программе 1С Бухгалтерия, но не в системеWindows. Однако если вам нужна дополнительная безопасность – используйте для него достаточно сложные логин и пароль.

Я же поступлю достаточно просто – укажу логин admin и пароль 12345

Перейдем на вкладку «Состав» и нажмем кнопку «Загрузить метаданные»

 

Появится список объектов бухгалтерии. В OData они называются сущности. Развернем справочники и отметим пункт «Банки». Программа предложит выбрать зависимые объекты. Соглашаемся с этим.

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

Ну а в нашем случае нажимаем кнопку «Сохранить и закрыть», после чего закрываем окно программы.

Шаг 3. Следующая задача – публикация базы на развернутом локальном веб-сервере. Это действие выполняется после запуска программы 1С в режиме конфигуратора от имени администратора.

Запустим программу из меню «Пуск», используя соответствующий пункт контекстного меню.

Далее запускаем программу в режиме конфигуратора

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

В группе «Администрирование» выбираем пункт «Публикация на Веб-сервере

Проверяем выбор пункта «Использовать стандартный интерфейс OData». В строку каталог жмем кнопку «выбор» в виде трех точек, переходим в папку htdocs в папке файлов сервера, создаем там подпапку. Задаем для нее имя, совпадающее в целом с папкой базы (кириллица и пробелы ЗАПРЕЩЕНЫ) и выбираем созданную папку.

Еще раз проверяем путь к каталогу и нажимаем кнопку «Опубликовать»

Подтверждаем информационное сообщение об успешной публикации, щелкнув ОК и соглашаемся с перезапуском сервера

Закрываем соответствующие кнопкой окно настройки публикации, а затем и сам конфигуратор 1С. На этом публикация базы на нашем сервере завершена.

Шаг 4. Приступим к получению строки подключения.

Напомним, нас интересует поступление товаров. Открываем любой браузер, например Chrome. В адресной строке вводим надо указать

http://localhost/lakomka/odata/standard.odata

 

Здесь lakomka – название папки, созданной в директории htdocs при публикации. Для точности еще раз перечитайте шаги выполнения задачи публикации. В вашем случае необходимо указать имя папки, созданной вами для своей базы бухгалтерии.

Если все в порядке, появится окно с предложением ввести логин и пароль пользователя, имеющего право удаленного доступа по каналу OData. Указываем их. Если окно не появилось…Что ж, тогда возвращаемся в начало и заново проверяем каждый шаг. Если все выполнено точно, окно появится.

После ввода логина и пароля отроется страница с доступными сущностями ODataю. Напомню, в данном случае сущности – это попросту ссылки на объекты бухгалтерии. Например, сущность Catalog – это объект справочник, сущность AccumulationRegister – регистры накопления, сущность AccountingRegister – регистры бухгалтерии ну так далее. Нас интересуют документы по поступлению товаров. Открываем поиск нажатием комбинацию Ctrl+F, вводим в поиск

ПоступлениеТоваров

В результате поиска находим строку, отвечающую именно за товары. Теперь открываем блокнот. Вставляем в него содержимое адресной строки и добавляем в конце найденное наименование объекта – сущности. В конце дописываем: ?$format=json (регистр тут важен !). В моем случае получается так

http://localhost/Lakomka/odata/standard.odata/Document_ПоступлениеТоваровУслуг_Товары?$format=json

Это и есть строка подключения к объекту. Таким же способом формируем строки доступа к другим объектам. В частности, строка доступа к справочнику валюты выглядит так

http://localhost/Lakomka/odata/standard.odata/ Catalog_Валюты?$format=json

Шаг 5. Переходим к последней задаче, ради которой и были выполнены первые 4 шага. Подключаемся к каналу OData из программы Power BI Desktop и получаем нужную информацию.

Запускаем программу и выбираем пункт «Пустой отчет»

Далее на вкладке главная выбираем пункт «преобразование данных». Нажимаем на него и обрываем редактор Power BI

В редакторе даем команду «Главная» – «создать источник» – «Канал OData». Обратите внимание, используем выпадающий список, а не просто щелкаем на кнопке «Создать источник». Иначе придется искать нужный вариант среди множества других.

В появившемся окне вставляем созданную строку подключения, нажимаем ОК…

… И получаем ошибку прав доступа. Это логично, так как текущий пользователь таких прав не имеет. Выбираем в появившемся окне справа вкладку «Базовый» и вводим логин и пароль созданного нами в базе 1С пользователя.

 

Теперь полученные данные необходимо настроить. НА вкладке «Главная» выбираем пункт «Выбор столбцов». Возможно, он будет скрыт в блоке «Управление столбцами» – это зависит от размера и расширения экрана.

Отменяем выбор всех столбцов и отмечаем только поля количество, цена, сумма, сумма НДС, номенклатура.

На следующем шаге разворачиваем поле записей «Номенклатура», нажав в его заголовке соответствующую кнопку справа.

 

Здесь оставляем поля НаименованиеПолное и ВидНоменклатуры.

ВидНоменклатуры – это тоже записи. По аналогии с полем Номенклатура разворачиваем это поле. В списке полей отмечаем только пункт ГруппыТМЗ

Переходим к новому шагу. Необходимо определиться с типом данных. В данном случае нет необходимости указывать их вручную по отдельности. Поэтому нажимаем сочетание клавиш Ctre+A и даем команду : «Преобразование» – «Определить тип данных»

Осталось переименовать запрос в «ПоступлениеТоваров» и сохранить изменения соответствующей командой на вкладке «Главная»

Возвращаемся в представление отчета Power BI Desktop и видим содержимое нашего запроса в панели данных. Теперь полученные значения можно использовать в визуализациях. На примере ниже показаны поступления по типам ТМЗ в разрезе количества, суммы и суммы НДС. Эти визуализации не закончены, но дают представление о направлении дальнейшей работы.

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

Более подробнее использование OData для получения результатов из 1С, например, нахождения остатков в кассе, вывода текущего курса валют мы рассмотрим в следующем уроке по этой тематике. А сейчас – желаю всем успеха в работе!