Привет! Я — Мария, с 2006 года внедряю заказные и типовые решения на базе хранилища «ПрограмБанк.БизнесАнализ». В компании ПрограмБанк я прошла путь от аналитика до руководителя производственного центра.

Основная специализация нашей команды — это автоматизация бизнес‑процессов сбора данных и подготовки управленческой и финансовой отчетности. Хранилище БизнесАнализ с самого своего зарождения было low‑code платформой для разработчиков, на которой мы и сами автоматизировали задачи своих клиентов. Поэтому естестественным продолжением стала его новая версия с no‑code инструментами для решения тех же самых задач.

Наш пользователь — это сотрудник планового отдела, специалист по управленческой отчетности, финансовый аналитик, аналитик данных, хорошо владеющий excel, но не программист.

Self‑service инструменты дают ему возможность самостоятельно нас��роить с нуля свои собственные многопользовательские приложения, в которых

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

  • могут быть настроены многомерные отчеты

  • могут быть настроены бизнес‑процессы подготовки исходных данных или расчета отчетов с контролем сроков и разделением ответственности

  • можно быстро сделать копию приложения и внести изменения или проверить гипотезу
    может быть настроено разделение доступа к данным и алгоритмам

Единственная задача, с решением которой рано или поздно понадобится помощь ИТ‑спецов заказчика — это настройка ETL.

Когда я рассказываю про наш проект, часто встречаю скепсис в стиле: «Ну да, видели мы такой no‑code! Это только для типовых сайтов, мобильных приложений или проверки гипотез работает! Настроим минимум, а потом подсядем на ваши классические доработки».

Хорошо понимаю такие опасения, такие же аргументы используем и мы, например, при выборе импортозамещенного Service Desk.

Но мы всё таки хотим показать, что теперь и в сфере финансов и отчетности можно настроить и поддерживать no‑code приложение без программирования.

Для этого я подготовила цикл статей с конкретными примерами.

Мой первый пример — это настройка бюджетирования в небольшом коммерческом банке.

Статья будет интересна сотрудникам плановых отделов, специалистам по управленческой отчетности, дата‑аналитикам, архитекторам и другим ИТ‑спецам от бизнеса, которые находятся в поиске лучшего инструмента для своих пользователей или уже выбрали нашу или похожую no‑code платформу.

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

Чтобы не зарываться слишком глубоко в бюджетные дебри, возьмем только небольшой кусок — кредитование физлиц — и на этом примере посмотрим, что именно нужно сделать пользователю, чтобы настроить бюджетный процесс в нашем self‑service, а потом сравним с классическим подходом к автоматизации.

Настройка приложений обычно выполняется либо ответственным пользователем, либо по его методологии, которая оформляется в виде excel‑файла. Поэтому в процессе настройки мы не задаемся вопросами, а сколько и каких аналитик или показателей у нас должно быть, что по какой формуле в формах считается — вся эта информация у нас есть.

Структура приложения в объектах self‑service будет такой:

Здесь будут:

  1. 3 справочника,

  2. витрина для сбора первичных данных по кредитному портфелю,

  3. 5 многомерных форм.

Переходим к непосредственной настройке приложения Бюджет:

1. Создаем приложение

Новое приложение сразу занимает свое место в общем дереве приложений

2. Настраиваем типовые справочники

Так называемые типовые справочники дальше будут использоваться в качестве финансовых аналитик‑измерений в многомерной модели

В нашем примере стандартная история для финансовой отчетности — аналитики‑справочники валюты, центры финансовой ответственности (типа подразделений), продукты.

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

Пользователь указывает название справочника и настраивает список атрибутов

  • названия,

  • их типы — строка, число, логическое или другой справочник,

  • обязательное ли,

  • признак уникальности (ключ).

Атрибуты для срока актуальности и настройки не ограниченных по количеству уровней и несбалансированных иерархий добавляются автоматом.

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

3. Настраиваем специализированные справочники

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

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

Так же это типы значений — они понадобятся для того, чтобы настроить разные способы расчета и выводить отдельно в форме План и Факт.

4. Настраиваем базовую структуру форм многомерных показателей

Анализируем структуру и варианты заполнения показателей многомерных форм в excel‑файле от методолога.

В описании видим, что, например, у формы Портфель аннуитентных кредитов есть

  • аналитики‑параметры: Банковский продукт, Центр финансовой ответственности, Валюта,

  • по столбцам разложены месяцы внутри финансового года,

  • по строкам — список показателей,

  • ячейки на пересечении — числовые данные. Жёлтые ячейки — ручной ввод, остальные — расчет по формуле.

Для одной и той же формы в методологии есть три варианта — плановые значения, фактические и сравнение План‑Факт.

Какие self‑service возможности есть, чтобы пользователь смог настроить такие формы

  • настройка несбалансированной иерархии показателей, которые будут заголовками строк таблицы, с указанием типа данных,

  • выбор аналитик (справочников) в качестве параметров (фильтров) формы,

  • выбор аналитик (справочников) в качестве измерений по строкам или столбцам,

  • добавление показателям типов значений.

Уже на этом этапе мы получаем многомерную форму с нужной структурой и возможностью вводить данные вручную, пока не определены и не настроены источники и формулы.

Сразу настраиваем для показателей способы агрегации. Есть возможность выбрать стандартные варианты — сумма, средневзвешенное, количество и т. д., есть возможность задать свою формулу. Эти настройки используются при автоматическом расчете итогов и агрегатов.

Если есть необходимость делать в формах т. н. винтажный анализ — для этого предусмотрена возможность указать календарь и по строкам, и по столбцам одновременно:

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

5. Настраиваем витрину сбора данных

Настройка витрины данных похожа на настройку типового справочника

  • названия показателей,

  • их типы — строка, число, логическое или другой,

    • для чисел можно указать формулу расчета,

  • обязательное ли,

  • признак уникальности (ключ),

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

Сразу после сохранения пользователю становятся доступны два взаимодополняемых способа заполнения витрины

  • ручной ввод данных

  • загрузка данных из excel

Готовый excel‑шаблон для загрузки можно скачать из редактора витрины.

На этом этапе сразу добавляем в витрину небольшое количество данных для начальной отладки формул. Позднее при помощи excel‑шаблона можно будет загружать рабочие объемы первичных данных.

В дальнейшем ИТ‑специалисты банка смогут автоматизировать загрузку данных следующим путем:

  1. через настройку Бизнес‑словаря — тогда пользователь сможет настроить связь витрины с внешней системой, выбирая готовые показатели среди понятных для себя названий источников и их атрибутов

  2. через настройку загрузки данных из внешней системы напрямую в таблицу витрины

6. Настраиваем формулы

Теперь самая трудоемкая часть процесса настройки многомерных форм — формулы.

В формулах пользователь может использовать обращение к

  • показателям витрин

  • другим показателям внутри этой же формы

  • показателям других форм того же самого приложения

  • показателям форм других приложений

  • показателям с другим контекстом — из других периодов и другими аналитиками

  • агрегированным показателям

Кроме базовых операций сложения, умножения и т.п, пользователю доступны аналоги функций Excel. Есть навигатор по функциям, из которого можно добавлять шаблоны вызова. Есть навигатор по показателям приложения, из которого можно быстро добавить остальное содержимое формулы.

Какие функции, к примеру, могут использоваться в формулах

  • Одноименные аналоги Excel

    • СУММЕСЛИ

    • ВПР

    • ОСПЛТ

    • ПРПЛТ

  • СУММНИЖЕ — сумма всех дочерних по иерархии показателей

  • СРВЗВЕШЕСЛИ — аналог СУММЕСЛИ только значения не суммируются, а определяется средневзвешенное значение

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

Примеры формул:

"Выдано кредитов, тыс.руб" — СуммЕсли("Кредитный портфель#Сумма повторных выдач по траншам ВКЛ, руб")/1000
здесь данные витрины для суммирования автоматически фильтруются по продукту из контекста ячейки с формулой

"Возврат кредитов, тыс.руб"* "стадия обесценения 1, тыс.руб "[[Предыдущий "Год"]]/"Портфель на конец периода, тыс.руб"[[Предыдущий "Год"]]
расчет на основании значений предыдущего периода

"Портфель аннуитетных кредитов#Начисление процентов, тыс.руб"[["Банковские продукты" = 'Ипотека ФЛ']]
берем из другой формы значение по конкретному продукту, при этом другой контекст или тип значения не указываются, значит определяются автоматически как совпадающие с ячейкой вызова

СрВзвешЕсли( "Кредитный портфель#Срок кредита (транша), дней", "Кредитный портфель#Сумма выдач, руб", "Кредитный портфель#Сумма выдач, ед.">0")

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

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

Бонус с витринами для внешнего доступа к собранным данным:
Пользователи с достаточными правами могут подключаться напрямую к хранилищу через sql и использовать собранные и рассчитанные данные прямо сразу в своих любимых внешних инструментах типа BI или Power Query. Для этого у каждой витрины и многомерной формы есть автогенерируемые вьюшки.

7. Настраиваем бизнес-процесс бюджетирования

Итак, источники, структуры и формулы для форм настроены - теперь дело за бизнес-процессом.

Тут тоже довольно простая визуальная настройка.
Нужно определить

  • названия шагов и этапов

  • их последовательность и зависимости

  • список ответственных пользователей

  • форму, которую необходимо заполнить на каждом шаге

Всё.

При запуске бизнес‑процесса на конкретный финансовый период — в нашем случае на следующий плановый год — администратор процессов укажет относительные или абсолютные сроки по каждому шагу.

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

8. Итоговая структура self-service приложения

В итоге наш финансов��й аналитик получил следующий функционал

  • бизнес‑процесс планирования

  • витрина по кредитному портфелю с 4 дополняющими друг друга вариантами сбора данных

  • многомерные формы в разрезе валют, центров финансовой ответственности и продуктов, а также их агрегаты:

    • Матрица винтажного анализа по кредитам

    • Портфель аннуитентных кредитов

    • Модель формирования резервов

    • Отчет о финансовых результатах

    • Баланс

  • самостоятельное дальнейшее управление изменениями внутри банка

Финальным результатом работы этого приложения будут Балансы и Отчеты о финансовых результатах каждого центра финансовой ответственности и консолидированные отчеты в целом по банку.

Что технически делалось для настройки:

  • ввод названий

  • включений опции через флажки

  • выбор значений из списка вариантов с обычными не специализированными названиями

  • упорядочивание списков мышкой

  • написание формул, аналогичных формулам в Excel

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

У обученного аналитика настройка данного функционала на нашей self-service платформе заняла до 8ми часов чистого времени. Допустим с перерывами на подумать или консультации это могло быть ∓3 рабочих дня.

Что мы знаем о том, на что бы он мог потратить такое же количество времени? Да, только на написание ТЗ на автоматизацию того же самого.

В сравнении с классической автоматизацией при использовании self-service платформы банк получает

  • экономию времени сотрудников, так как они смогут внедрять приложения в те сроки, в которые обычно пишется ТЗ

  • снижение операционных затрат, так как количество приложений на одной платформе не ограничено

  • нет необходимости в сотрудниках с какой-то специальной квалификацией для работы с платформой и дальнейшей поддержки приложений

По нашему мнению честный No-Code выглядит именно так.

Прошу вас в комментариях дать обратную связь, какие моменты вас заинтересовали, что было бы полезно раскрыть глубже в следующих примерах. Так же интересно ваше мнение о том, правильно ли называть такие инструменты no‑code или нет.


Если вы вы заинтересовались платформой БизнесАнализ — предлагаем вам посмотреть видео записи вебинаров на тему «Как создать и настроить многомерную бюджетную модель коммерческого банка без MS Excel и программирования».

На вебинарах мы не только рассказываем более подробно про возможности наших self‑service инструментов, но и буквально показываем все то, о чем я выше написала — а именно настраиваем приложения с нуля.

Так же здесь на Хабре есть ещё одна моя статья с описанием примера настройки другого no-code приложения - ALM (Управление активами и пассивами).

И возможно вам будет интересно почитать про наш опыт быстрого запуска MIS в универсальном коммерческом банке при помощи инструментов self-service.