BI-система 1С:Аналитика – это отдельная компонента платформы 1С:Предприятие, интеграция с которой доступна в платформе с версии 8.3.17.1496 и выше.
«1С:Аналитика» предоставляет пользователям 1С дополнительный визуальный интерфейс для создания аналитических отчетов на основе метаданных информационной базы. Позволяет выводить таблицы, диаграммы, дашборды. Формирует отчеты «на лету» – в момент изменения состава и фильтров отчета нужные данные подтягиваются из базы, и у вас сразу же формируются все отчеты.
«1С:Аналитика» предназначена для пользователей, отвечающих за анализ данных, которым необходимо интерактивно работать с возможностью гибкого изменения вида отчетов.
Компонента «1С:Аналитика» является отдельным сервером, интегрированным в сервер «1С:Предприятие». В процессе работы пользователя она формирует запрос и передает его в кластер сервера «1С:Предприятие», который обрабатывает данные и возвращает назад. По сути, в «1С:Аналитике» отрабатываются те же алгоритмы, что и в СКД, и основную нагрузку берет кластер «1С:Предприятия», а не «1С:Аналитика».
До сентября 2021 года «1С:Аналитика» была в бета-версии, и лицензии на нее предоставлялись бесплатно по запросу в количестве до 10 штук. Начиная с версии платформы 8.3.19 после выхода системы в релиз, один сеанс клиента системы «1С:Аналитика» вместе с «Дата акселератором» и «Механизмом копий баз данных» можно запустить без лицензий. Это технически возможно и является правомерным, если с информационной базой работают не более 5 пользователей.
«Механизм копий баз данных» и «Дата акселератор»
Для работы «1С:Аналитики» нужно настроить «Механизм копий баз данных» и «Дата акселератор». «1С:Аналитика» сможет работать и без этих механизмов, но любая аналитическая отчетность несет нагрузку на сервер, и, если не будете использовать «Механизм копий баз данных», все остальные пользователи в момент формирования отчета будут испытывать неудобства в работе с системой.
«Механизм копий баз данных» создает физические копии базы данных – их можно сделать неограниченное количество. При этом копируется не база целиком, а отдельные таблицы, которые мы укажем – это будет не бэкап базы, который можно потом развернуть для работы, это просто копии отдельных таблиц.
Механизм «Дата акселератор» – это часть «Механизма копий баз данных», служба, которая хранит данные в оперативной памяти рабочего сервера (In-memory DB) кластера «1С:Предприятие». Может работать только под управлением 64-битной операционной системы.
Так как у нас все данные хранятся в оперативной памяти, перезапуск рабочего сервера приведет к тому, что память очистится, и нам необходимо будет выполнить начальное обновление копии базы данных.
Если система состоит из нескольких серверов, мы через требования назначения функциональности можем настроить, на каком сервере будет располагаться «Дата акселератор».
Стоит отметить, что, согласно правилам, «Механизм копий баз данных» доступен только в КОРП-версии сервера «1С:Предприятие». Но для работы «Дата акселератора» его на данный момент можно настроить не только в версии КОРП, но и в версии ПРОФ. Поэтому если у вас куплен сервер версии 1С:ПРОФ, вы сможете установить «1С:Аналитику» и настроить себе встроенный в «Механизм копий баз данных» «Дата акселератор».
Основные преимущества «1С:Аналитики»
«1С:Аналитику» можно использовать:
-
для быстрого построения отчетов на высоконагруженных системах;
-
для пользователей, не обладающих специфическими навыками – если пользователь не знает, что такое СКД, «1С:Аналитика» проста в использовании и позволяет получить определенные данные.
-
для разработки аналитических отчетов без привлечения программистов – если в системе заложена правильная структура, то на «1С:Аналитике» можно быстро и просто получить отчеты без разработки отчетов на СКД.
В России большинство предприятий работают на 1С и, с большой долей вероятности, уже консолидировали все данные по компании, например, в 1С:ERP, т.е. все данные уже есть в единой базе данных. А «1С:Аналитика» работает напрямую с этой базой.
-
Получается, что нам не нужно разрабатывать дополнительную базу или куда-то выгружать информацию – «1С:Аналитика» может все получить из этой базы.
-
Также «1С:Аналитика» может получить данные вплоть до ссылки документа или справочника. Это значит, что при анализе данных мы можем провалиться до самого источника и проанализировать, откуда у нас получилась та или иная цифра.
-
Главное преимущество – «1С:Аналитика» пользуется учетными записями и правами той информационной базы, к которой подключается. Нам не нужно настраивать дополнительные учетные записи и права – если в системе «1С:Предприятие» используется RLS, все это будет поддерживаться на стороне «1С:Аналитики». То, что можно в «1С:Предприятии», можно и в «1С:Аналитике» – это позволяет экономить время и деньги на обслуживание системы.
Системные требования, необходимые для того, чтобы работать с «1С:Аналитикой», представлены на слайде.
Подчеркну, что «1С:Аналитика» работает только с 64-битной операционной системой, начиная с версии платформы 8.3.17.1496 и выше.
Расскажу про наш практический опыт работы с «1С:Аналитикой» в ходе проекта на небольшом предприятии, где нам необходимо было консолидировать данные из нескольких баз «1С:Управление торговлей» и «1С:Бухгалтерии» в «Финансисте».
Какие-то данные «Финансист» позволяет загрузить сам, но некоторых данных нам не хватало, и мы напрямую перетащили в «Финансист» информацию из УТ-шных регистров накопления «Выручка» и «СебестоимостьПродажи», чтобы вывести эти данные в «1С:Аналитике».
Настройка «1С:Аналитики»
Далее нам необходимо настроить «1С:Аналитику».
Стандартно ее можно запустить из папки, в которую она была установлена, по батнику start.bat. Но если нужно запускать «1С:Аналитику» как сервис, нужно зарегистрировать службу самостоятельно.
Для этого заходим в командную строку и набираем команды, которые приведены на слайде:
-
Создание сервиса: java -jar runner.jar -wd _data -p 8181 –sc
-
Удаление службы: java -jar runner.jar -wd _data -p 8181 -sd
Команда подсказки
java -jar runner.jar
покажет, какие команды у «1С:Аналитики» вообще есть.
В команде создания сервиса стандартный порт 8181, который использует «1С:Аналитика», можно поменять.
Таким образом мы превратили «1С:Аналитику» в службу.
Чтобы понять, хватает ли нам ресурсов текущего компьютера, можем использовать программу Process Explorer, которая показывает, сколько памяти съел каждый процесс.
Для «1С:Аналитики» нас интересуют процессы:
-
analytics.exe – исполняемый файл сервиса;
-
и dbda.exe – «Дата акселератор».
Настройка «Механизма копий баз данных»
«Механизм копий баз данных» настраивается в самой информационной базе с помощью встроенной стандартной обработки «Управление копиями базы данных».
Мы отмечаем галочками те таблицы, которые хотим видеть в копии базы данных – на слайде приведен пример с «Дата акселератором».
Автоматически обновляться копия базы данных не будет – для обновления нужно написать простое регламентное задание в две строчки, как показано на слайде выше. Это задание будет обновлять копию базу данных с заданной периодичностью.
Когда настраиваем систему «Дата акселератора», нужно понять, хватит ли нам места, будет ли все это работать, и какие таблицы мы можем поместить в «Дата акселератор», а какие – нет.
Например, в случае маленьких таблиц данные из основной базы данных мы получим быстрее, чем если поместим эти таблицы в «Дата акселератор». Поэтому все таблицы в «Дата акселератор» помещать не рекомендуется.
Я ради интереса на маленькой базе данных в 10 ГБ попробовала поместить в «Дата акселератор» все таблицы, а потом в отдельной копии поместила только нужные. И сравнила производительность работы с «1С:Аналитикой» по технологическому журналу. При помещении всех таблиц производительность упала на 30%.
Чтобы определить, какие таблицы нужно поместить в копию, фирма «1С» выпустила обработку «Подбор таблиц для Дата Акселератора», которая может автоматически настроить копию базы данных:
-
по данным технологического журнала – получая объекты метаданных из текста запроса к СУБД;
-
по данным текста запроса на языке 1С;
-
из отчета конфигурации на базе СКД.
Когда используем «1С:Аналитику», текста запроса у нас нет, и отчет конфигурации мы сформировать не можем. Поэтому нам нужно воспользоваться технологическим журналом.
Для этого настраиваем в технологическом журнале два события: dbmsql и dbda.
-
Событие dbda можно не настраивать, оно возникает, когда система при формировании отчета воспользовалась «Дата акселератором».
-
С событием dbmsql мы получим запрос SQL, который потом сможем подставить в обработку, чтобы она смогла автоматически отобрать таблицы, которые нужно добавить в копию базы данных.
«Механизм копий баз данных» и «Дата акселератор» работают не только в «1С:Аналитике», но в СКД и во всех запросах. Например, при настройке СКД в пользовательском режиме мы можем в самой настройке указать, будем ли мы брать данные из конкретной копии базы данных или из основной базы данных.
То же самое в «1С:Аналитике»: при формировании отчета мы можем указать, что используем «Дата акселератор», или хотим получить данные из базы в режиме онлайн.
Для события dbmsql мы в настройке технологического журнала устанавливаем:
-
<eq property=”p:processName” value=”Analytics”/> – отбор на процесс 1С:Аналитики;
-
<eq property=”Usr” value=”Analytics”/> – отбор на пользователя Analytics;
-
<eq property=”Sql” value=”%test%”/> – отбор на то, что текст запроса содержит %test%.
Отбор типа “Sql” помогает отобрать определенный SQL-запрос – когда мы в «1С:Аналитике» формируем отчет и ставим отбор на наименование номенклатуры, которое содержит %test%. В результате мы получаем в технологическом журнале SQL-запрос, который впоследствии вставим в обработку.
Здесь видно, что нам отобрались данные по пользователю Analytics и по запрос содержит %test%.
Далее мы подставляем этот запрос в обработку «Подбор таблиц для Дата акселератора», и система автоматически определяет, какие объекты использовались при его выполнении, и какие объекты необходимо поставить в копию БД.
В результате нашего внедрения мы получили дашборды с отчетами «Прибыль» и «Выручка и себестоимость продаж».
Метод «Выразить»
Так как «1С:Аналитика» использует типовые механизмы, аналогичные СКД, мы столкнулись с тем, что некоторые отчеты работали долго, потому что в них использовался составной тип данных.
В частности, в запросе одного из отчетов у нас использовалось поле «АналитикаСтатьи» – это характеристика из плана видов характеристик, который содержал около 10 видов объектов. Когда пользователь обращался через точку, шло соединение со всеми таблицами, и отчеты работали медленно.
Мы использовали классический метод «Выразить», чтобы определить тип данных, и у нас не было соединений.
Дополнительные источники
Помимо обращений к таблицам баз данных, в системе «1С:Аналитика» можно использовать дополнительные источники – запросы, написанные на 1С.
Но «1С:Аналитика» – не СКД, у нее меньше возможностей, и запросы для дополнительных источников имеют ряд ограничений:
-
Не могут содержать пакетные запросы и использовать временные таблицы. Мы можем использовать только подзапросы. Это сделано для быстродействия: если будем использовать временные таблицы или пакеты запросов, у нас отчеты будут формироваться долго.
-
«1С:Аналитика» не поддерживает регистры бухгалтерии и регистры расчетов.
Что касается таблиц внешних источников – я пробовала на тестовой базе подключить таблицу SQL как внешний источник, но в «1С:Аналитике» она у меня не появилась в метаданных, поэтому пока «1С:Аналитика» не поддерживает внешние источники.
Что мы реализовали в системе «Финансист»
От отдела маркетинга нам поступил запрос: в системе «Финансист» необходимо реализовать универсальный механизм получения данных из внешних баз – чтобы можно было подключиться к какой-нибудь информационной базы и указать данные, которые нужно получить.
Этот механизм основывался на справочнике «Ключи аналитики» с дополнительными реквизитами, поэтому для него не была предусмотрена быстрая работа на большом объеме данных.
«Ключи аналитики» – это обычный справочник с кодом и наименованием, для которого через механизм БСП реализованы дополнительные реквизиты.
Пользователь настраивает, что хочет вывести информацию по номенклатуре и контрагентам из регистра «Продажи». И дальше все это передается в документ, который делает проводку в оборотный регистр.
Если мы просто сформируем отчет в «1С:Аналитике» по регистру «Продажи», он будет выглядеть примерно так, как на слайде: вид ключа, сумма по количеству и по сумме.
Понятно, что в таком виде этот отчет не интересен. Любой пользователь хочет отобрать данные, допустим, по контрагенту «Альфа», но так как дополнительные реквизиты – это отдельная таблица, в стандартном виде обращение к ним не предусмотрено.
Чтобы выводить данные по дополнительным реквизитам в отдельных колонках, мы написали свою обработку. В ней пользователь проставляет галочками данные, которые он хочет вывести для анализа, система автоматически формирует текст запроса, и пользователю остается вручную добавить этот запрос в качестве дополнительного источника в систему «1С:Аналитика».
В результате в системе «1С:Аналитика» появляется дополнительный источник, в котором есть отдельные поля «Контрагент» и «Номенклатура» – пользователь может сформировать отчет, который ему нужен.
Дополнительная информация по теме
Для подготовки к докладу я использовала следующие источники информации:
-
«1С: Аналитика»: https://v8.1c.ru/platforma/1s-analitika/
https://its.1c.ru/db/analytics
https://www.youtube.com/watch?v=zVRR1OU7Z2g -
«Механизм копий баз данных»: https://its.1c.ru/db/v8317doc/bookmark/dev/TI000002104
-
Настройка «Дата акселератора»: https://its.1c.ru/db/metod8dev#content:5951:hdoc
-
Обработка «Подбор таблиц для Дата акселератора»:
https://its.1c.ru/db/files/1CITS/EXE/DataAccelerator/DataAccelerator.zip
Практика
Покажу на копии демо-базы «Финансиста», как работает «1С:Аналитика».
Вот, основной интерфейс «1С:Аналитики» – здесь перечислены уже готовые отчеты.
Также отсюда можно создать новый отчет, папку или дашборд.
Сделаем простой отчет по данным регистра «Обороты бюджетов движения денежных средств».
При создании отчета на основании объекта метаданных «Регистр накопления», «1С:Аналитика» автоматически подставляет сюда колонки, соответствующие ресурсам этого регистра и отчет сразу выводит итоговые значения ресурсов из нашего регистра.
В «1С:Аналитике» эти показатели называются «Факты». «Факты» с точки зрения «1С:Аналитики» и «Ресурсы» с точки зрения 1С – это примерно одно и то же.
Допустим, мы хотим оставить здесь только колонку с суммой взаиморасчетов – остальные колонки удаляем путем перетаскивания с командной панели в поле отчета.
Далее, мы хотим вывести данные по организации – перетаскиваем измерение «Организация» из структуры регистра также в отчет. При добавлении новой колонки данные здесь автоматически разбиваются в выбранном разрезе – пользователь сразу может все это увидеть.
Отличительная особенность «1С:Аналитики» – она по умолчанию формирует отчет только по верхнему уровню иерархии.
Укажем ей, что хотим вывести все элементы.
Дальше мы хотим добавить сюда измерение «МестоУчетаДенежныхСредств» (Банк/Касса) и «Период день».
Причем, хотя мы и выбрали «Период день», система автоматически привела его к году (с помощью конструкции «Извлечь(ПериодДень, ГОД)»), потому что данных меньше.
Поставим, что хотим получать данные помесячно.
И укажем, что нам нужны данные периода в колонках.
Мы получили информацию по поступлению денежных средств по каждому периоду.
Дальше – если мы хотим отфильтровать информацию в отчете по одной организации, выделяем нужную ячейку и нажимаем кнопочку «Оставить».
Можем нажать «Создать фильтр» – «Произвольный фильтр».
И установим период – только 2018 год.
У нас отобразилась информация только за 2018 год. Система работает быстро.
Сейчас отчет в «1С:Аналитике» находится в статусе «Черновик», но если перевести его в статус «Опубликовать», отчет будет доступен для других пользователей.
При этом опубликованный отчет не будет доступен другим пользователям в этом интерфейсе – нужно скопировать ссылку, отправить тому, с кем хотите поделиться отчетом, пользователь сможет перейти по ссылке и увидеть отчет.
Т.е. отчеты, которые перечислены на главной странице 1С:Аналитики, доступны только под тем пользователем, под которым я работаю. Если зайти под другим пользователем – у него будет свой список отчетов.
1С:Аналитика имеет мало возможностей: например, тут нет условного оформления, мы не можем менять внешний вид шапки, строк и колонок отчета.
Максимум – мы можем сменить название колонки. Для этого в контекстном меню показателя нажмем «Редактировать».
И в диалоговом окне его переименуем – назовем «Период».
Теперь колонка в отчете стала называться «Период». Причем, если бы у вас в регистре было измерение «Период», система не разрешила бы задать такой же заголовок для другого поля.
Здесь есть определенные функции, которые мы можем редактировать – разница, процент. Например, мы можем добавить колонку, которая считает разницу.
В колонке с такой функцией будет выводиться разница текущего с предыдущим.
На главной странице мы можем создать дашборд с графиками – здесь мы графики можем добавить или редактировать.
Например, мы можем поменять оси для измерений – переместить место учета денежных средств на ось X.
График станет выглядеть по-другому.
При редактировании ресурсов мы можем написать какое-то выражение с использованием ряда функций, которые здесь указаны – вычислить разницу, процент, получить начало периода, использовать какое-то условие и т.д.
Для каждой функции здесь приведено удобное описание, как ей пользоваться.
1С:Аналитика пока молодая система, возможностей мало – я показала практически все, что она умеет.
Вопросы
А есть ли возможность в «1С:Аналитике» реализовать дашборды с зависимостью выделения одного графика от другого – как это сделано в Qlik?
Пока в «1С:Аналитике» еще мало возможностей, и такого еще не сделали. Сейчас фирма «1С» хочет, чтобы люди стали эту систему активно внедрять, и по мере востребованности тех или иных функций их будут реализовывать – идея примерно такая.
Как реализована работа с другими пользователями? Как поделиться отчетом?
Есть возможность передать ссылку на отчет. Но он будет доступен только если он находится в статусе «Опубликован». Если он находится в статусе «Черновик», он не будет доступен другим пользователям.
Можно ли использовать в «1С:Аналитике» внешние источники?
Я у себя пробовала добавить в конфигурацию внешний источник. По сути, после нажатия кнопки «Обновить метаданные» он должен был появиться в 1С:Аналитике, но он не появился. Поэтому пока внешние источники не используются.
Для работы 1С:Аналитики, как и любой другой BI системы, у вас должны быть уже подготовленная правильная структура метаданных. Все данные должны быть в идеале в плоском варианте. Тогда это будет работать хорошо.
1С:Аналитику ни в коем случае нельзя сравнивать с СКД. Конечно же, СКД – это более сильный и более функциональный механизм, они не сравнимы. 1С:Аналитика нужна, чтобы быстро что-то посмотреть.
Насколько «1С:Аналитика» занимает оперативную память?
Когда мы пользовались, «1С:Аналитика» использовала 2 Гб памяти, она сама по себе использует не так много памяти. У вас всю память съест «Дата акселератор», а не «1С:Аналитика». «1С:Аналитика», по сути, сама никаких запросов не формирует, все формирует кластер 1С. У вас вся нагрузка пойдет на rphost, а не на «1С:Аналитику».
*************
Данная статья написана по итогам доклада (видео), прочитанного на онлайн-митапе "Бизнес-анализ по данным базы 1С. Интеграция c платформами BI".