12.01.23
Аналитика и отчетность являются финальной услугой для наших заказчиков: когда выстроены процессы, поставлен учет – можно собирать данные и работать с ними. Для этого мы раньше использовали MS Analysis Services и Power BI, а сейчас перешли на Clickhouse и Yandex Datalens. В этой статье мы поделимся нашим опытом работы построения аналитики над 1C и рассмотрим возможные варианты подходов.

Использование Yandex DataLens для аналитики 1С

Мы используем Yandex Datalens в своих проектах в следующих случаях:

  • У Заказчика несколько источников данных (одна или несколько баз 1С, CRM, и сайт, и данные с Яндекс метрики и т.д.);
  • Заказчику нравится работа в Yandex Datalens (это может быть выбор по визуальным критериям, стоимость, доступность, низкий порог входа);
  • Заказчик ориентирован на агрегированные и представленные графически данные для анализа;
  • Заказчик предрасположен к самостоятельному поиску и исследованию данных.

Так как Yandex Datalens не имеет встроенной базы данных, вроде xVelocity (Vertipaq) у Power BI, то вся нагрузка по обработке запросов к данным ложится на базу - источник данных. Это значит, что любой запрос от Datalens должен обрабатываться базой-источником за приемлемое время – по практике это 3-10 секунд ожидания аналитика, работающего с дашбордом. А если таких пользователей-аналитиков несколько десятков, то база-источник должна успеть отработать запросы всех пользователей в приемлемое время

Поэтому для DataLens необходимо готовить аналитические витрины данных.

В редком случае получится пробросить данные с 1С, сайта или с ERP напрямую как «источник данных» в Datalens, не ухудшив производительность «базы-источника».

Чаще получается так, что:

  1. Доступ из Datalens в базу 1С запрещен политикой безопасности;
  2. База 1С не выдерживает тех запросов, которые генерирует Datalens, и дает ошибки доступа по таймауту.

Это все осложняется тем, что:

  1. Прямой доступ к базе данных 1С (MS SQL Server/PostgreSQL) запрещен политикой лицензирования 1С (хотя это достаточно часто используемый кейс в нашей практике);
  2. Удобного механизма доступа к БД 1С, как к реляционной базе – нет.

И какие возможны подходы?

Аналитику данных в 1С можно получить несколькими путями:

  1. Встроенные отчеты 1С;
  2. Экспорт готовых отчетов в Excel/CSV, с последующим импортом в стороннюю BI-систему;
  3. 1С Аналитика – BI-система от 1С.
  4. Самостоятельная работа с данными 1С в BI-системе, используя документированный протокол OData или недокументированный («прямой») доступ к данным 1С напрямую из ее базы данных;
  5. Использование готовых разработок по выгрузке данных из 1С в BI, вроде – «Экстрактор данных 1С в BI».

Разберемся со всем по порядку.

Встроенные отчеты 1С

Первое, что приходит в голову – это продолжать пользоваться отчетами 1С.

Разработчики 1С постарались и реализовали невероятно функциональный механизм формирования отчетов (действительно универсальных) на базе «Системы компоновки данных» (СКД).

Проблема в том, что:

  1. Разработка своих отчетов в 1С – это слишком сложно для нормального пользователя;
  2. Пользователя, который все таки освоил СКД, система возвращает в поиске (discovery) данных в времена работы с запросами (select) (это в худшем случае), ну или к заказу «универсальных» отчетов в 1С у очередного программиста 1С (у которого на типовом производственном предприятии хватает других задач);
  3. Все равно нужен программист, чтобы собрать более-менее удовлетворяющий запросам аналитика отчет с «сырыми» данными 1С;
  4. В итоге, пользователь – аналитик вновь оказывается один на один с Excel, в котором он крутит свои «выгрузки» из этих отчетов 1С.

Выгрузки в файлы

Следующее, что приходит в голову при работе с 1С – это сохранение отчета 1С в файл CSV/Excel, с последующей загрузкой его в Google sheets/Файлы Datalens.

Это скорее, история про «быстро скрутить красивый дашборд» по данным отчета:

1.png

Понятно, что отчет надо в 1С:

  • Правильно приготовить;
  • Отчет, особенно с очень детальными данными, будет исполняться долго (иногда очень долго);
  • Большие отчеты на тысячи строк (о миллионах тут речь даже не идет) сохраняются на диск в Excel долго (очень долго);
  • А так как предпочтительна одна таблица, включающая в себя все возможные поля и для измерений, и для показателей, и для фильтрации данных, то выгруженные данные в файлы из 1С необходимо еще соединить между собой, дообработать.

В плане BI - аналитики, для последующего анализа Excel-файлов намного удобнее – MS Excel.

Опять же, чтобы выгрузить достаточно подробные данные в файлы (ну или в базу данных) из 1С, нужны:

  1. Часто Программист (не всегда хватает типовых отчетов 1С);
  2. Время на разработку.

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

Однако, такой подход может быть первым этапом для тестирования и апробации Yandex DataLens на реальных данных из вашего 1С.

2.png

1С Аналитика

Понимая потребности аналитики своих пользователей, 1С выпустил собственный инструмент – «1С Аналитика», который включает в себя:

  1. Механизм автосоздания копии БД 1С (т.е. ввод данных и оперативная работа в «рабочей» базе, а построение отчетов на «отчетной» базе);
  2. Новый механизм работы с данными – «Data Accelerator» - это встраиваемая в 1С in-memory база данных, где данные для построения отчетности хранятся в оперативной памяти. Примечательным является замечание от 1С, на необходимость контроля за объемом оперативной памяти, используемым службой «Data Accelerator», чтобы избегать «падения» данной службы;
  3. Ну и Web-интерфейс (визуализация) дашбордов и чартов, которые строятся по данным в «Data Accelerator» - это, собственно, и есть – 1С Аналитика.

Для работы требуется:

  1. 1С Сервер (кластер серверов);
  2. Web-публикация 1С;
  3. Достаточно места в оперативной памяти для корректной и достаточной работы in-memory движка Data Accelerator.
Как это выглядит:
Источниками данных выступают все объекты метаданных 1С, но легкого механизма их связывания в пользовательском режиме нет. Необходим уже программист, чтобы собрать нужный «Запрос», который далее оформляется как «Источник данных».3.png

Пример демо-дашборда

4.png

Какие + и – мы определили для себя:

Плюсы

Минусы

Вся работа строится в единой «экосистеме» 1С

Работа только с данными 1С

Удобный drill-down вплоть до реального документа

Необходимость развертывания системы на кластере 1С Серверов, достаточно высокие требования к оборудованию

Есть крос-фильтрация, но иногда она усложняет понимание отчетов

Развертывание системы предполагает хорошую квалификацию Администраторов системы

Достаточно функциональная сводная таблица

Сложности работы с картами, иерархиями, кросс-фильтрацией

Поддерживается иерархия справочников 1С

Отсутствие аналитических функций: LOD, Before filter By, TOTAL, и др.

 

В целом, 1С Аналитика оставляет двойственное ощущение:

  • С одной стороны – возможность «провалиться» в данные 1С и явно хорошее решение для адептов «исключительно 1С»;
  • С другой стороны - со всех сторон ограничения: это и замкнутая экосистема, и развертывание исключительно внутри сети Заказчика, сложности UI;

44.png

Интересует бизнес-аналитика? Оставляйте заявку, и мы подберем для вас систему бизнес-анализа под потребности вашего бизнеса и поможем ее настроить.
Оставить заявку

1С + OData

Если вы чувствуете себя программистом, ну или готовы его нанять, то есть еще один способ получить данные напрямую из 1С – это получение данных по протоколу OData (Open Data Protocol).

Для работы с данными требуется:

  1. Публикация базы 1С на web-сервере (подходит и для файлового и клиент-серверного режима работы);
  2. Некий набор скриптов (Python, PHP etc.), чтобы преобразовать данные из получаемого формата «XML» / «JSON» в структуру таблиц базы данных.

5.png

Доступ вы получаете к тем объектам базы 1С, на которые дано разрешение для работы с OData.

Из плюсов:

  1. Данный способ добычи данных разрешен лицензионным соглашением 1С;
  2. Метод достаточно универсален.

Из минусов:

  1. Медленно, есть ограничения по извлечению данных по объему;
  2. Работает периодически нестабильно (метод не предназначен для извлечения больших объемов данных);
  3. Требуется конвертации данных из XML/JSON в данные БД.

Замечание:
Технология OData популярна для извлечения «по быстрому» из 1С для последующего использования в Power BI, который нативно поддерживает загрузку данных из Интернет в свою встроенную базу данных.
Yandex DataLens не поддерживает работу с OData напрямую, однако используя , например, Yandex Cloud Function можно реализовать скрипт для регулярного экспорта данных в облачный Clickhouse и визуализировать. Но без разработчика здесь не обойтись.

6.png

Прямой доступ к базе данных 1С

Если вспомнить на технологию работы 1С в клиент-серверном варианте (картинка взята с официального сайта 1С):

7.png

Как видим, основой работы является Сервер базы данных, причем наиболее популярными являются СУБД:

  1. Microsoft SQL Server;
  2. PostgreSQL.

Сразу же возникает резонный вопрос: «А можно ли обратиться к данным 1С напрямую, минуя 1С-сервер и его объектную модель?» Ответ приходит: «Да можно, но сложно».

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

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

8.png

Обратите внимание:

  1. На наименование таблицы - _Reference266X1
  2. На наименование полей:

Fld7692RRef – это ссылка на справочник Единиц измерения;

_Fld7689RRef – а это ссылка на справочник Видов номенклатуры.

Т.е напрямую читать данные из базы 1С в MS SQL Server/PostgreSQL крайне сложно.

Мы не рекомендуем подключаться из Yandex DataLens напрямую к БД 1С.

Есть специализированные сервисы и разработки, которые позволяют «перевести» эти «машинные» таблицы в «человекочитаемый» вид, через создание View (именованных представлений) к физическим таблицам БД:

  1. ATK BiView
  2. Коннектор 1С для выгрузки данных в Power[1] [2]

Таким образом, используя данные инструменты, вы, минуя 1С, сможете обращаться напрямую к таблицам в базе данных SQL.

В примере с «Коннектором 1С» таблица выше будет выглядеть вот так:

9.png

Т.е. все поля, да и имя самой таблицы «переведены» «на русский».

Тем не менее, даже получив доступ к непосредственно таблицам 1С, мы не решаем следующие проблемы:

  1. Все таблицы надо правильно соединить (join) между собой, чтобы получить ту самую «плоскую» таблицу для Yandex Datalens;
  2. Открывать доступ к базе данных 1С снаружи из интернет явно небезопасно;
  3. Вся нагрузка исполнения запросов из Yandex Datalens ложится на СУБД, с которой работает 1С («оперативная» или «отчетная» база).

Получается, что опять необходимы:

  1. Аналитическая база (желательно в облаке Yandex и желательно ClickHouse);
  2. Скрипты, для доставки данных из View (представлений) в аналитическую базу.

10.png

Экстрактор данных 1С -> BI

Если смотреть на идеологию работы с Yandex Datalens, то верной схемой является классическая схема построения BI-систем, когда:

  • источником данных для Yandex Datalens является специализированная база данных - “Хранилище данных”, где все необходимые данные предподготовлены к последующему использованию (очищены, агрегированы, денормализованы);
  • и есть “Система”, извлечения данных из 1С и трансформации их и загрузки данных в подготовленное “Хранилище данных”, оптимально работающее с BI.

11.png

Такая “Система” реализована в нашем продукте “Экстрактор данных 1С -> BI”.

12.png

“Экстрактор данных 1С -> BI”:

  • Формирует в 1С «Наборы данных», т.е. длинные, плоские денормализованные таблицы, включающие в себя все необходимые поля из 1С;
  • Генерирует автоматически и обновляет (Alter Table…) таблицы-приемники в БД ClickHouse;
  • Сопоставляет автоматически или с помощью аналитика Таблицы-источники из «Набора данных» 1С в Таблицы-приемники в БД Clickhouse;
  • Создает и выполняет расписания автоматической выгрузки данных из Таблиц-источников 1С в Таблицы-приемники Clickhouse.

13.png

Результатом является:

  1. Постоянно обновляемая из 1С База данных Clickhouse;
  2. Возможность комфортно работать с данными 1С в среде Yandex Datalens.

14.png

15.png

Резюме

 

Встроенные отчеты

выгрузки готовых отчетов и загрузка в BI

1C Аналитика

1С Odata

Подключение к БД напрямую

Использование готовых коннекторов для доступа к БД 1С напрямую

Выгрузка данных 1С с использованием “Экстрактора данных 1С-> BI”

Простота

да

нет

нет

нет

нет

да

да

Гибкость

нет

нет

да

да

нет

да

да

Возможность обогащения внешними данными

нет

нет

нет

да

да

да

да

Надежность

да

зависит от способа реализации

да

нет

нет[5]

да

да

возможность работы с большими объемами данных

нет

нет

да

нет

да

да

да

Настройка выполняется пользователем

да

да

да

нет

нет

да

да

Требуется ли разрабатывать БД (Хранилище данных) для работы с BI

нет

для небольших отчетов и выгрузок - нет

для больших данных - требуется разработка

нет

да, нужна разработка

Power BI - опционально

Datalens - да

Power BI - опционально

Datalens - да

Да

Экстрактор сам генерирует БД Хранилища данных

Работа с файловыми 1С

да

да

нежелательно

 

нет

нет

да

Работа с клиент-серверными 1С

да

да

да

 

да

да

да

Как всегда – выбор за вами:

  • Работать исключительно в экосистеме «1С», т.е. во встроенных и дописанных отчетах или в 1С Аналитика;
  • Использовать BI Yandex Datalens для исследования данных.
Для этого:

  • Добывать данные из 1С через разного рода выгрузки из отчетов или используя доступ напрямую к базе данных 1С, будь то OData или прямой доступ к БД;
  • Или использовать технологию выгрузки данных в БД Сlickhouse, используя существующие решения.
Встроенные инструменты аналитики в 1C обладают достаточно ограниченным функционалом, для полноценной аналитики нужно использовать внешние BI инструменты, особенно, если стоит также задача обогащения дополнительными источниками данных.

Для нас и наших заказчиков Yandex DataLens в связке с Managed Service for Clickhouse стал прекрасной более доступной альтернативой PowerBI, более простой как в плане поддержки и администрирования, так и для конечных пользователей - многие из которых теперь самостоятельно работают с данными.

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

Нужна консультация
Наши менеджеры ответят на все вопросы, произведут расчет стоимости услуг и подготовят коммерческое предложение!
Заказать проект

Это интересно