Ultima-S: Постановка задачи на 20-уровневую бухгалтерию

Для служебного использования

От руководителя группы бухгалтерии В. Иванова

коммерческому директору компании Ниеншанц Д.Разгуляеву

Постановка задачи

20 уровневая Бухгалтерия

Цель

  1. Обосновать необходимость и нишу применения 20 и более уровневых бухгалтерий
  2. Описать учетный механизм позволяющий иметь счета с 20 и более уровней аналитики
  3. Данный механизм не должен существенно замедлять работу системы (не более 10%)
  4. Данный механизм должен существовать как расширение 5-уровневой бухгалтерии
  5. Данный механизм должен обеспечить совместимость с 5-уровневой бухгалтерией по структуре проводок и сальдо
  6. Для данного механизма нужно описать способ создания проводок и построения типовых отчетов.

Необходимость и ниша применения 20 и более уровневых бухгалтерий

Высокая стоимость имеющихся 20 и более уровневых бухгалтерий

На первый взгляд кажется, что уже 5 уровней аналитики более чем достаточно для учета на счетах. Именно из этого исходят средние по тяжести бухгалтерии сегодня. Однако бухгалтерии тяжеловесы позволяют иметь неограниченное или ограниченное большим числом (20 и более) количество аналитических уровней. Стоят такие системы очень дорого (100К $ и выше). Как видно существует потребность в таких мощных аналитических бухгалтериях, и чтобы ее удовлетворить пользователю надо заплатить большие деньги.

Единый учетный регистр ДР и ДДС требующий 10 и более уровней

Действительно, 5 уровней аналитики, как правило, вполне достаточно для хранения всей аналитической информации в балансе. Однако это не означает что это удобно для эффективного анализа данной информации. Гораздо удобнее для отчетов таких как “Движение Денежных Средств” (ДДС) и “Отчет о Доходах и Расходах” (ОДР) иметь один учетный регистр и сканировать его по всей необходимой аналитике стандартным генератором отчетов типа Analyser, чем собирать информацию по всему балансу неким фиксированным отчетом, который под задачу еще нужно программировать. Данный подход, при котором счет содержит в себе всю заявленную аналитическую информацию о своих объектах учета можно назвать подходом единого учетного регистра. Использование единых учетных регистров сразу увеличивает потребность в уровнях аналитики где-то до 10 уровней.

Например, для единого учетного регистра ДР имеем 7 аналитических уровней

ЦФУ, Доход/Расход, Юрлицо, Статья Затрат, Вид Деятельности, Внешние/Внутренние затраты, Оборотная аналитика.

Для ДДС имеем уже 10 уровней

Банк/Касса, Валюта, Расчетный счет, ЦФУ, Доход/Расход, Юрлицо, Статья Затрат, Вид Деятельности, Внешние/Внутренние затраты, Оборотная аналитика.

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

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

Следует отметить, что существуют учетные методы, которые быстро расходуют уровни аналитики следующим образом. Часто некой комбинации аналитики идентифицирующей сам аналитический разрез сопутствует один или несколько признаков, в принципе легко вычисляемых, но их надо запрограммировать. Однако если их положить как уровень аналитики, то анализ объекта упрощается и доступен стандартными средствами аналитических отчетов типа Analyzer. Такой метод использования аналитических уровней можно назвать спекулятивным. Например, для статьи затрат, из ДР и ДДС приведенных выше, достаточно легко вычисляется признак доходная она или расходная, но можно проблему решить проще не создавая программируя некий специфичный отчет для этого. Достаточно просто положить данный признак статьи как аналитику. Еще вариант – ложится как аналитика папка нахождения объекта ОС, чтобы получить простой анализ по группам ОС.

OLAP – Живые кросс-таблицы в 10 и более уровней

Следует отметить, что только на идее единого учетного регистра можно построить онлайновую аналитику (OLAP, имеется в MSSQL 7.0). OLAP позволяет создать живой кросс-отчет подобный кросс-таблицам создаваемыми мастерами в Excel. Однако OLAP позволяет производительно оперировать с большими объемами данных и большими объемами размерностей, а также на лету их перегруппировывать, сворачивать/разворачивать и т.д. OLAP-представление возможно построить только для одного счета, т.к. каждая размерность OLAP-представления должна содежать однотипные объекты. Поэтому счета для OLAP должны иметь максимальное количество аналитик.

 

Постановка

Обычная ограниченная по уровням (например, пяти) бухгалтерия базируется на так называемой сальдовой таблице примерно такой структуры:

  1. Счет
  2. Период (чаще N или код периода, т.е. некая грануляция),
  3. Поля уровней аналитики (по одному на каждый уровень),
  4. Поля сальдовой информации (дебетовые и кредитовые сальдо, обороты).

Например, упрощенный вид сальдовой таблицы 1С 7.5:

Счет Период Аналитика 1 Аналитика 2 Аналитика 3 Сальдо на конец периода
41 1 мес Монитор LG Склад 2 эт. Партия 1 10
41 2 мес Монитор LG Склад 2 эт. Партия 1 5
41 2 мес USR 33600 Склад 1 эт. Партия 2 10
50 1 мес Касса N1 Рубли 0 100

У нас имеется абсолютно аналогичная сальдовая таблица Saldo. Заполняется она из проводок довольно сложным, но очень производительным триггером (0.2 сек на проводку при 10000 разрезов).

Как видим, используемый способ хранения отводит под 1 уровень аналитики 1 колонку сальдовой таблицы. В случае если надо добавить еще один уровень, то необходимо добавить поле в сальдовую таблицу и сделать довольно трудоемкое изменение механизма формирования сальдовой таблицы (в нашем случае это триггер). Задача добавить в 3х уровневую сальдовую таблицу еще 3 уровня (например, для склада ЦФУ, Юрлицо, Статус Товара) достаточно сложна.

Создать сразу сальдовую таблицу с очень большим количеством уровней (20 и более) нельзя из-за того на существующих средствах построения БД на базе SQL Server не удается создать производительные алгоритмы обновления сальдовой таблицы даже с 10 уровнями, которые не требовали бы больших финансовых затрат на создание технологии.

……

Стоп-с. С этого момента я уже описывал спецификацию на новый вид аналитики и новый механизм формирования сальдо в 20 уровней. Пока аналогов этому нет, поэтому сие мне публиковать не разрешают. Тем не менее большинству создателей небольших и средних БД не нужна такая мощная машина проводок, опишем далее машину проводок примерно в 5 уровней аналитики.