На сайте осуществляется обработка пользовательских данных с использованием Cookie, в том числе с использованием сервиса веб-аналитики Яндекс Метрика. Используя сайт, Вы соглашаетесь на обработку персональных данных при помощи cookie-файлов, в соответствии с Политикой в отношении обработки персональных данных. Вы можете запретить сохранение Cookie в настройках своего браузера.
Принять
Мощная аналитика без ручных выгрузок
Актуальность проверена: 10.12.2025
Время чтения ~3 мин
ELMA365 + Power Query
10.12.2025
Популярные статьи
Содержание статьи:
Как ускорить работу 1С 8.3:
Тормозит 1С? Эксперты AUXO делятся
опытом как ускорить работу 1С 8.3 и
любых других версий.
Практическое руководство
по повышению производительности
Как ускорить работу 1С 8.3:
Тормозит 1С? Эксперты AUXO делятся
опытом как ускорить работу 1С 8.3 и
любых других версий.
Практическое руководство
по повышению производительности
Подключение к ELMA через Power Query – это мощный инструмент, который открывает данные ELMA для глубокого анализа и визуализации в привычных инструментах, таких как Excel и Power BI.

ELMA – это мощная система управления бизнес-процессами, в которой копится огромное количество ценных данных: история процессов, KPI, данные задач, рабочая нагрузка сотрудников. Но как вытащить эти данные для красивого дашборда, нестандартного отчета или сложной аналитики? Ответ – используйте Power Query.
Power Query – это инструмент для извлечения, преобразования и загрузки данных (ETL), встроенный в Excel и Power BI. Подключение ELMA через него – это не просто выгрузка, это создание живого, автоматически обновляемого канала данных.

Зачем это нужно? Прямой доступ к данным в обход ручных выгрузок.
Больше не нужно заходить в ELMA, настраивать стандартный отчет, экспортировать его в CSV или Excel и потом вручную его обрабатывать. Power Query создает прямое соединение с REST API ELMA. Ваши отчеты в Power BI или Excel будут обновляться одним нажатием кнопки, всегда показывая актуальные данные.

Как это работает? Основа – REST API ELMA

Важное
ELMA предоставляет полнофункциональный REST API, через который можно получить практически любые данные: объекты, процессы, задачи, журналы и т.д. Power Query умеет делать HTTP-запросы и обрабатывать JSON-ответы, что идеально подходит для работы с API.
10.12.2025
ВЕБИНАР
Aceribeaque expe sam consequ ostius
andigni mintiatatem faccusam, omnis
prempe dolorumqui
Переход с 1С:УПП на 1С:ERP
Регистрация

Базовый алгоритм подключения

1. Получение токена доступа.
Почти все вызовы API ELMA требуют авторизации. Сначала вы отправляете запрос на специальный endpoint с вашим логином и паролем, и в ответ получаете токен.

2. Формирование запроса на данные.
С этим токеном вы делаете второй запрос к тому endpoint API, который возвращает нужные вам данные (например, список заявок или историю процесса).

3. Парсинг и преобразование данных.
Power Query автоматически преобразует JSON-ответ в удобную таблицу, которую можно чистить, фильтровать и агрегировать.
Например:
```m

// Power Query M Code

let

   Источник = Json.Document(Web.Contents("<env_url>/pub/v1/report/inventory/
accounting/list?query={""filter"":{""tf"":{""storage_location"":"""&Excel.CurrentWorkbook(){[Name="Select"]}[Content]{1}[Value]&""",""plant"":"""&Excel.CurrentWorkbook(){[Name="Select"]}[Content]{0}[Value]&"""}},""size"":10000,""sortExpressions"":[{""ascend"":true,""column"":""material""}]}", [Headers=[Authorization="Bearer a37b7fda-cb48-3es0-b65f-fa9ba3b3a177"]]))

in

Источник
Вы получите таблицу с данными из ELMA, которую можно использовать для построения отчетов и дашбордов.
4.2 Получаем таблицу
Этот запрос вернет строку с вашим токеном доступа.

3. Расcкрываем Record, затем list
Или через Excel "Данные" -> “Из Интернета” --> “Подробнее” --> “Части URL-адреса” --> “Параметры заголовка HTTP-запроса”.
Пошаговый пример подключения к списку объектов в Power BI / Excel
Рассмотрим на примере получения списка заводов и складов.

1. В Power BI Desktop или из Excel перейдите в раздел "Данные" -> "Получить данные" -> "Из других источников" -> "Пустой запрос"

2. В строке формул(Расширенный редактор) вставьте следующий код, заменив `your_domain`, `your_login` и `your_password` на реальные данные.
4.1 Еще раз раскрываем Record (или list)
4. Превращаем в таблицу

Главные фишки и преимущества

#"Развернутый элемент Column1" = try Table.ExpandRecordColumn(#"Преобразовано в таблицу", "Column1", {"plant_code", "storage_code", "material", "description", "sap", "vendor"}, {"plant_code", "storage_code", "material", "description", "sap", "vendor"}) otherwise #table({"plant_code", "storage_code", "material", "description", "sap", "vendor"},{})

in

   #"Развернутый элемент Column1"
Для этого вам необходимо прописать следующий шаг:
Для решения этой проблемы используйте конструкцию try/otherwise:
  • Попробуй (try) выполнить стандартное преобразование в таблицу с данными.
  • Иначе (otherwise) – если не получилось (например, данных нет) – верни шаблон таблицы только с названиями колонок.

Это обеспечит корректную работу всех последующих этапов обработки.

Получим пустую таблицу с названиями колонок.
Для обработки случаев отсутствия данных необходимо выводить таблицу с заголовками колонок, даже если она пустая. Это предотвратит ошибки на последующих этапах преобразования данных, которые могут возникнуть, если ожидаемые данные (например, за текущий день) не поступили.
Фишка №1
В ELMA по умолчанию действует ограничение на выборку данных – возвращается не более 10 000 записей. Для получения полного набора данных нужно использовать параметр size: -1. Это отключает лимит и позволяет вывести все существующие записи объекта.
Фишка №2
Рис.2. Таблица Select ссылается на данную таблицу
<env_url>/pub/v1/app/inventory_scanning_tool/stock_report_zones/list?query=
{"active":true,"filter":{"and":[{"eq":[{"field":"plant_code"},{"const":"""&Excel.CurrentWorkbook(){[Name="Select"]}[Content]{0}[Value]&"""}]},{"eq":[{"field":"storage_location_code"},{"const":"""&Excel.CurrentWorkbook(){[Name="Select"]}[Content]{1}[Value]&"""}]}]},"fields":{"storage_location_code":true,"material":true,"material_description":true,"vendor_batch":true,
"zone":true},"from":0,"size":10000}
Рис.3. Ссылка на таблицу Select
Рис.1. Таблица Select
Выделяем таблицу Select -> Данные -> Из таблицы/Диапазона -> Переходим в PQ - > Расширенный редактор.
Content]{0}[Value], Content]{1}[Value – означает строка первая, вторая из значений.

Вуаля! Мы получили таблицу из Elma и из таблицы Excel
3. В расширенном редакторе вставляем переменные

Данные из ELMA загружаются через API-запрос (URL), в котором параметры "Завод" и "Склад" динамически подставляются из колонки Value таблицы Select.

Вместо <selected_plant>, <selected_storage> – передаем параметры Value Завода и Склада.
<env_url>/pub/v1/app/inventory_scanning_tool/stock_report_zones/list?query=
{"active":true,"filter":{"and":[{"eq":[{"field":"plant_code"},{"const":"<selected_plant>"}]},
{"eq":[{"field":"storage_location_code"},{"const":"<selected_storage>"}]}]},"fields":{"storage_location_code":true,"material":true,"material_description":true,"
vendor_batch":true,"zone":true},"from":0,"size":10000}
2. И у нас есть URL, который тянет данные из Elma и параметры из таблицы Select.
Можно настроить интеграцию, при которой ссылка на ячейку в Excel используется для подстановки параметров (например, ID или даты) и последующего выгрузки соответствующих данных из ELMA 365 через API. Это автоматизирует формирование отчетов.

  1. У нас есть таблица Select с колонками Key и Value. Столбец Value является ссылкой на другую таблицу. Его содержимое динамически меняется в зависимости от выбранных значений "Завод" и "Склад".
Фишка №3
let

   Источник =
Json.Document(Web.Contents(<env_url>//pub/v1/app/inventory_scanning_tool/
price/list?query={""active"":true,""fields"":{""material"":true,""price"":true},""filter"":{""tf"":{""action_history"":["""& id &"""]}},""from"":0,""size"":-1}", [Headers=[Authorization="Bearer e36b7fda-cb48-4ef0-b65f-fa9ba3b3a855"]])),

   result = Источник[result],

   result1 = result[result],

   #"Преобразовано в таблицу" = Table.FromList(result1, Splitter.SplitByNothing(), null, null, ExtraValues.Error),

   #"Развернутый элемент Column1" = Table.ExpandRecordColumn
(#"Преобразовано в таблицу", "Column1", {"__id", "price", "material"}, {"__id", "price", "material"})

in

   #"Развернутый элемент Column1"
<env_url>/pub/v1/app/inventory_scanning_tool/price/list?query={"active":true,"fields":{"material":true,"price":true},"filter":{"tf":{"action_history":["<history_id>"]}},"from":0,"size":10000}
У нас есть API:
Из полученного результата взять первый элемент и запомнить его поле __id – <history_id>
““& id &”” – преобразуем в переменную
APIPrices(b) превращаем в функцию
(id as text) => #Функция
b. Получить непосредственно данные с ценами (больше 10 тысяч)
<env_url>/pub/v1/app/inventory_scanning_tool/action_history/list?query={"active":true,"fields":{"__id":true},"filter":{"and":[{"eq":[{"field":"history_application"},{"const":"price"}]},{"eq":[{"field":"report_loading_complete"},{"const":true}]}]},"size":1,"sortExpressions":[{"ascending":false,"field":"__createdAt"}]}
а. Запрос для получения значения поля __id (1 шт):
Получаем таблицу
2. Выполняем подключение к источнику "Price(a)", производим все предусмотренные шаги преобразования данных, после чего вызываем настраиваемую (пользовательскую) функцию.
1. Prices – (больше 10 тысяч)
Иногда требуется комбинировать "сырые" данные, полученные напрямую из объекта ELMA, с данными, которые прошли предварительную обработку в Power Query (хотя исходным источником для PQ также является ELMA)
Фишка №4
Разворачиваем функцию
Объединение данных из разных источников

Это главная суперсила Power Query. Вы можете:

  • Связать данные ELMA с другими системами. Например, соединить список инициаторов процессов из ELMA с таблицей сотрудников из 1С или Excel, чтобы добавить отдел, должность и другие HR-атрибуты.

  • Объединить данные из разных контекстов ELMA. Создать отчет, который показывает длительность этапов процесса (данные из BPM) и финансовые показатели по этим же заявкам (данные из ERP-контекста).
Фишка №5
Мощная трансформация данных "до" визуализации

Данные из API часто требуют очистки. Power Query позволяет сделать это до загрузки в отчет:
  • Фильтрация и сортировка: Загружать только данные за последний месяц или только процессы в определенном статусе.
  • Работа с датами: Разбирать сложные временные метки, вычислять длительности процессов.
  • Группировка и агрегация: Предрассчитать ключевые метрики (например, среднее время выполнения на этапе) еще на этапе подготовки данных.
  • Извлечение данных из вложенных JSON: API часто возвращает сложные структуры (например, объект `CreatedBy` с ID и именем пользователя). Power Query легко их "разворачивает" в отдельные столбцы.
Фишка №6
```m

Url = "https://your_domain.elma365.ru/api/odata/business/objects/VacationRequest?$filter=CreatedOn ge " & DateTime.ToText(StartDate, "yyyy-MM-dd") & "T00:00:00Z",

```
Параметризация запросов

Вы можете сделать свои отчеты гибкими и универсальными.

  • Параметры дат: Создать параметры `StartDate` и `EndDate`, чтобы пользователь мог сам выбирать период для отчета.
  • Параметры статусов: Дать возможность фильтровать по статусу процесса прямо в запросе.

Пример использования параметра в URL:
Фишка №7
Автоматическое обновление и публикация

Настроив один раз подключение, вы получаете "живой" отчет.

  • В Power BI Desktop можно настроить расписание обновления данных после публикации отчета в Power BI Service.
  • В Excel можно обновить все данные одной кнопкой "Обновить все".
Фишка №8

Важные моменты и подводные камни

  • Производительность: Не выгружайте все данные за 10 лет, если вам нужен отчет за последний квартал. Всегда используйте фильтрацию (`$filter`) и выборку (`$top`) на стороне API.

  • Знание API: Успех зависит от того, насколько хорошо вы знаете REST API вашей ELMA. Изучите документацию к API, чтобы понимать, какие endpoints доступны и как правильно формировать запросы.

  • Обработка ошибок: В реальных условиях запросы могут падать (проблемы с сетью, истек токен). В продвинутых сценариях стоит добавить в Power Query логику обработки ошибок (например, попытку повторной авторизации).

Заключение

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

Потратьте несколько часов на изучение API ELMA и основ Power Query – и вы получите в свои руки инструмент, который значительно повысит ценность ваших данных, накопленных в ELMA.

Если не получится решить проблему самостоятельно – обращайтесь в AUXO,
заполнив форму ниже.