Актуальность необходимости компаниям представлять своё положение в финансовом плане важна настолько, что они порой готовы платить бешеные деньги за решения, которые можно реализовать и более дешевыми и доступными способами. Именно такой и является данная разработка.
Данная разработка была протестирована на реальной конфигурации ERP и показала хорошие результаты. Способная генерировать план, факт и отклонение в цифрах и графике, а также предоставляющая возможность прямым образом проверить показатели на корректность посредством выведения также и данных использованных при расчете, данная разработка не глумлива над программистом 1С. Удобство системы имеет необычный характер. Вся настройка системы хранится в табличных документах, для работы с которыми написана специальная форма. Минимализм кода и сжатость писанины, а также обилие комментариев дает возможность легкой доработке системы, а также добавлению новых показателей.В плане добавления новых показателей данная разработка как раз также и очень удобна. Это обеспечено тем, что формулы пересчета плана для смешанного типа суммы (остаток + оборот) для разных периодичностей, а также для расчета показателей -- даны в человекочитабельном формате. Например так выглядит формула расчета показателя оборачиваемость активов:
((ЗначениеНаДату("АктивыИтого.СуммаНачальныйОстаток", ПервыйДеньТекущегоПериода) + ЗначениеНаДату("АктивыИтого.СуммаКонечныйОстаток", ПоследнийДеньТекущегоПериода)) / 2)
/ СуммаЗаПериод("ВыручкаПоОтгрузке.Сумма", ТекущийПериод) * ДлинаТекущегоПериодаВДнях
так -- формула EBITDA:
СуммаЗаПериод("ЧистаяПрибыль.Сумма", ТекущийПериод) + СуммаЗаПериод("НалогНаПрибыль.Сумма", ТекущийПериод) + СуммаЗаПериод("Проценты.Сумма", ТекущийПериод) + СуммаЗаПериод("Амортизация.Сумма", ТекущийПериод)
а так формула перерасчета плана "показателя Дюпона" для прочих периодичностей (в экземпляр бюджета забивается месяц):
([Чистая прибыль] / [Выручка по отгрузке]) * ([Выручка по отгрузке] / [Активы итого]) * ([Активы итого] / [Собственный капитал]) * (30 / [Дней в периоде])
Для месячной периодичности эта формула не имеет * (30 / [Дней в периоде]) на конце, но * (30 / [Дней в периоде]) добавлено чтобы привести итог в привычный формат месячного показателя. Оборотная часть уменьшится в периодичности неделя, а остаточная просто как обычно перенесется в неизменном виде, поэтому недельный показатель будет неудобочитаемым. Поэтому то и добавляется * (30 / [Дней в периоде]), чтобы как бы растянуть размер значения на привычный месяц, условно спрогнозировать что будет если бы так работали целый месяц.
Перед вычислением показателей, в типовом режиме данной разработки автоматически вычисляются такие временные показатели как ПервыйДеньТекущегоПериода, ПоследнийДеньТекущегоПериода, ТекущийПериод, ДлинаТекущегоПериодаВДнях, а перед перерасчетом плана, автоматически вычисляется "Дней в периоде". Добавление дополнительных типовых полей предусмотрено только доработкой соответствующих процедур общего модуля, но не представляется сложной.
Система дашборда использует три табличных документа чтобы получать настройки сбора данных, расчета плана и показателей.
В настройках статей указаны наименования статей, тип суммы (остаток + оборот) для расчета плана у прочих периодичностей (периодичность экземпляра бюджета подразумевается как месяц), формула для перерасчета плана, если тип суммы смешанный (остаток и оборот).
В настройках показателей просто указывается какие показатели активные, какие периодичности по ним собирать.
В настройках кешей в одном списке находятся как показатели так и и их составляющие, потому что показатель иногда может использоваться как вход для расчета другого показателя. Дается формула для расчета показателя, прочие настройки как тип суммы кеша (остаток, оборот, или смешанный), наименование поля суммы (Сумма, НашДолг, ДолгПартнера, Значение, и т.п. -- при чем, если тип суммы остаток, к полю суммы автоматически будет приклеено КонечныйОстаток и НачальныйОстаток, например НашДолгНачальныйОстаток и НашДолгКонечныйОстаток).
Подразумевается что будет вводится ежемесячный план в экземпляр бюджета, запрос в обработке вывода использует отбор по сценарию:
ВЫБРАТЬ
ОборотыБюджетов.Периодпланирования КАК Дата,
ОборотыБюджетов.СуммаСценария КАК План,
ОборотыБюджетов.СтатьяБюджетов.Наименование КАК Статья,
НастройкиБюджета.СпособРазбиенияПлана,
НастройкиБюджета.ФормулаДляРасчетаПриРазбиениеПлана,
НастройкиБюджета.ПорядокПолученияИРасчета,
НастройкиБюджета.ИдентификаторПоказателя
ИЗ
НастройкиБюджета как НастройкиБюджета
ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.ОборотыБюджетов КАК ОборотыБюджетов
ПО НастройкиБюджета.Статья = ОборотыБюджетов.СтатьяБюджетов.Наименование
ГДЕ
ОборотыБюджетов.Сценарий.Наименование = "Система дашборда"
Схема работы дашборда делится на две основные части:
1. Сбор и расчет показателей
2. Расчет плана и вывод показателей в обработке
Для сбора показателей заполняется таблица сбора и расчета, которая является выборкой из таблицы настроек кешей. Здесь по последовательности сбора и расчета (порядок сбора явно указывается для каждого показателя / части показателя в настройках кешей) сначала собираются элементарные данные, а потом уже идет черед того что нужно рассчитывать на основании этих элементарных данных.
Элементарные данные обычно всегда имеют "модуль добавления в кеш". Но некоторые показатели, как уже было упомянуто, которые используются в расчете других показателей, тоже могут иметь такой модуль. Сам кеш является таблицей где хранятся все кеши показателей пока всё не будет собрано и рассчитано. Если в настройках указано, что нужно записать кеш в регистр (регистр добавлен в конфигурацию) для последующего использования для тестирования показателей (два режима у обработки вывода -- "тестирование по одному" и "вывести все"), то нужные строки кеша будут выгружены в регистр для быстрого подтягивания в режиме "тестирование по одному".
В процессе сбора и расчета сначала всегда исполняется модуль получения данных, если он есть; затем модуль добавления полученных данных в кеш; затем расчет показателя, если текущая строка это показатель; затем модуль добавления рассчитанного показателя в кеш, если этот модуль заполнен. "Модули" -- текст в табличном документе настроек кешей, который выполняется при помощи функции выполнить().
Все данные получаются с периодичностью День. Прочие периодичности уже получаются на их основе.
При расчете всех периодичностей показателя, используется формула расчета показателя, прописанная в настройках кешей.
В обработке вывода, при выводе показателей сначала получается месячный план по всем статьям связанным с выводимыми показателями. Затем для периодичности запрошенной пользователем план перерасчитывается, используя формулу в настройках статей.
Если показатель в настройках показателей помечен как неактивный, то по нему не будет производится ни сбор, ни вывод, ни подтягиваться план -- основной или компоненты плана, если есть расчет плана.
Данному дашборду требуются работы по внедрению такие как настройка команды для формы "НастройкаТабличногоДокументаВКонстанте", создание
обработки с вызовом процедуры запуска сбора (процедура "СобратьДанныеИРасчитатьПокзатели" в общем модуле "ДашбордСервер").
Данная разработка была протестирована как рабочая (см. ниже версии платформы и конфигурации на которой осуществлялось тестирование), но допустимо что при переносе его в данную конфигурацию произошла деформация кода. Также, разработка не прошла глубокое тестирование, допускается что в расчетах есть ошибки. Также формулы в примерах выше могуть быть нерабочими, требуется проверка и возможная корректировка как формул, так и доработка кода.
Автор, предупреждая обо всём этом, снимает с себя ответственность за неудобства и потерянное время, если такое будет иметь место. Автор также предупреждает о том, что не нужно слепо доверять текущей разработке, но итоговый внедренный продукт перепроверить на адекватность относительно целей преследуемых пользователями данной обработки.
Расшериваю эту личную разработку не столько ради наживы, сколько с целью поделиться удобной системой дашборда с компаниями, которые ищут способ финансового анализа без лишних затрат, в частности в это нелегкое время. Поэтому цена, считаю, чисто символическая.
Наслаждайтесь!
Тестировалось на 1С:Предприятие 8.3 (8.3.18.1433), 1С:ERP Управление предприятием 2 (2.4.12.109).