ЭкаунтоЛогика 1.0

e5d6cebea6614c4985091d7b4adfe53b.pngХочу поделиться с уважаемой публикой.

Год-полтора назад я выступал на Хабре с предложениями о создании сетевой бухгалтерии нового типа. Найти человека, который бы воплотил идею в программном коде, не удалось (кто бы сомневался?), и через некоторое время я дошел до такой степени одичания отчаяния, что решился написать программный код самостоятельно.

Сказано — сделано: изучил язык программирования, насколько это оказалось в моих слабых бухгалтерских силах, и написал.

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

«ЭкаунтоЛогика» — конструктор для учета вещей (только не по бухгалтерским правилам, а по естественным, заимствованным у природы).

Интерфейс зауряден:

либо стандартная таблица, либо более наглядные иконки (с отображением свойств текущей иконки в инвертированной табличке слева). a9e99fa6ec8f4f248277a9a3c577596d.pngКаждая вещь либо поступает, либо выбывает (регистрируется соответственно по приходу или по расходу).

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

Светофор изменил цвет — предположим, с желтого на красный, — это один и тот же светофор или два разных светофора? Вопрос философский: в какой момент вещь изменяется настолько, что превращается в другую вещь? Можно решить так, а можно иначе: соответственно, перенести выбранный метод в программный код. «ЭкаунтоЛогика» решает таким образом, что для нее желтый светофор — это один объект, а красный светофор — другой: таким образом, при загорании на светофоре другой лампочки имеет место расход «желтого» светофора с одновременным приходом «красного» светофора. Следовательно, одно действие (в данном примере — загорание другой лампочки на светофоре) выполняется одновременно с несколькими вещами, причем с одними вещами по расходу, а с другими по приходу.

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

e72b8a958bb84ef68002740a23e1b83c.png

Перечень действий, выполняемых в «ЭкаунтоЛогике», не совпадает с принятым в традиционной бухгалтерии: не малопонятные «дебет» и «кредит», а осмысленные операции с вещами окружающей реальности:

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

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

708b09554d7c4ba187a99c8769cb97b1.png

Регистрация первичных данных — первая из двух обязательных сторон учетной программы, а как в «ЭкаунтоЛогике» решена вторая задача — генерация отчетов? При помощи так называемых отчетных папок.

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

5c4c9a4bfda746fc840a5aa47348748c.png

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

В соответствии с нашими установками, на верхнем уровне расположатся папки с названиями.

42bf19ffbbd4454084c31c978517157b.png

Зайдя внутрь какой-либо папки, на втором уровне иерархии мы обнаружим папки с местами хранения, и т.д.

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

Что такое обязательство — имею в виду не юридическое определение, а суть дела? Те же вещи окружающей нас действительности, которыми кто-то обязывается в пользу другого. Эти вещи существуют не в настоящем, в будущем:

бухгалтерская дебиторка — вещи, которыми кто-то обязался в нашу пользу (таким образом, вещь должна к нам поступить); бухгалтерская кредиторка — напротив, вещи, которыми мы обязались в пользу другого (по причине чего вещь должна от нас выбыть). Другими словами, обязательства — не особый объект учета, как ошибочно считается в традиционной бухгалтерии, а вещи, регистрируемые будущей датой: так они и учитываются в «ЭкаунтоЛогике».Предположим, вещь зарегистрирована 25 ноября с датой совершения 27 ноября.

83df4c01944a44c69a2a7e7c92f37c06.png

Что это означает? Только то, что 27 ноября она должна поступить: обыкновенная вещь — никакое не обязательство.

Обратите внимание на организацию учета по времени:

в отчетах за 24 ноября мы ничего увидим (а что мы можем увидеть, если регистрация осуществлена 25 ноября?), f317e965b7fd428799e59eed87abc2b0.pngв отчетах за 25 ноября мы увидим будущую вещь — дебиторское обязательство. Указание для действия вероятности позволяет отражать данный еще не состоявшийся объект с коэффициентом (вещь поступит нам с вероятностью 90%), 2a05d74a8d9e4ffa879258f03a3179cc.pngпосле даты совершения мы увидим ту же самую вещь в качестве наличной, действительно поступившей (и в этом случае никакого коэффициента вероятности быть не может: вещь или поступила, или не поступила, третьего не дано). c6657d1ad34844f79f073f498292ce2e.pngС наступлением даты совершения будущей операции соответствующий объект считается наличным (то есть реально поступившим), никаких особых действий (которые в бухгалтерии называются погашением обязательства) выполнять не нужно. Если, несмотря на ожидания, вещь не поступила, пользователь может отсрочить ее предполагаемое поступление или вовсе удалить действие как несостоявшееся — таким образом, сроки совершения зарегистрированных обязательств необходимо отслеживать.

Конечно, регистрировать приходится не только дебиторку, но и кредиторку (с точки зрения экаунтологии, будущее выбытие вещи), и тут намечается некая непривычная счетному работнику сложность. Это в бухгалтерии можно зарегистрировать кредиторку безотносительно тому, чем обладаешь на данный момент, –, но только не в «ЭкаунтоЛогике», которая берет пример с реальности. Разве в реальной жизни вещь может выбыть раньше, чем поступила? Не может, немыслимо такое, потому и в «ЭкаунтоЛогике» немыслимо: для регистрации будущего выбытия вещи необходимо сначала зарегистрировать ее поступление, текущее или будущее (предполагаемое).

При очень, ну очень большом желании можно указать для будущего прихода вероятность 0%, а для будущего расхода 100%, тогда строка покажет потенциальное превышение расхода над приходом (лишь до момента наступления даты прихода, естественно).

c694c1a49ce14184b5e2b0d27528fe9d.png

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

Что такое доходы и расходы, в бухгалтерском учете прописано не очень понятно — правду говоря, отвратительно. Зато в «ЭкаунтоЛогике» определение формальное: доходы и расходы — числовые характеристики действия.Реализованы оба представимых способа вычислений.

Допустим, произошла усушка, масса вещи уменьшилась с 3 кг до 2 кг. Согласно экаунтологическому подходу, в операции изменения задействовано два объекта:

первый объект массой 3 кг (регистрируется по расходу), второй объект массой 2 кг (регистрируется по приходу). В соответствии с первым способом исчисления доходов-расходов, расходы составляют 3 кг, а доходы 2 кг. Согласно второму способу расходы составляют 1 кг (3 кг — 2 кг), доходы по понятным причинам отсутствуют. Пусть никого не смущает измерение доходов и расходов массой: при использовании другого измерителя доходы и расходы будут измерены в другой числовой характеристике (количестве, рублях, долларах, евро, тугриках, биткойнах) — в какой только пожелаете.В рамках доходов-расходов может быть организован учет в разрезе… скажем, контрагентов: в этом случае доходы — это поступившее от контрагента за период, тогда как расходы — переданное контрагенту за период. То же — в разрезе договоров, статей калькуляции и т.п.

8492b796b76a4c72990cfbe9c6768b86.png

Предвидя упреки в скудости отчетных форм «ЭкаунтоЛогики», поясню. Программа не предназначена для конструирования отчетов: форма отчетов единственная, тем не менее позволяющая получать в рамках реализованной методологии обороты-сальдо и доходы-расходы по любому пользовательскому разрезу данных. Дальнейшая обработка отчета производится путем экспорта в Excel.

Мне как разработчику (ну кто о себе доброго слова не скажет?!) методика представляется:

гибкой (учетный конструктор — этим все сказано); продуманной и формализованной; прогрессивной (достаточно отсутствия того, что в бухгалтерии называется «закрытием отчетного периода». В «ЭкаунтоЛогике» сальдо подсчитываются на основании простой выборки, без последовательного суммирования по операциям); обеспечивающей совместимость пользователей, ведущих независимый друг от друга учет. Последнее является главнейшим качеством программы, ради которого она проектировалась.Увы, полная совместимость не реализована в силу необходимости обмена данными через сайт (наподобие электронной почты), чего мне на сегодняшний день не осилить. Поэтому версия 1.0 десктопная: пользователь может зарегистрироваться под разными именами и передавать вещи самому себе, при этом базы данных с различной структурой согласуются между собой. Этим коммуникативные возможности программы исчерпываются… однако же могут быть расширены в следующих версиях. Нет, ну представьте: программка, установив которую на компьютер, можно получать сведения по купленным в магазине товарам непосредственно в личную базу! Дополнительный вид услуг, оказываемых торговыми точками!

Если у кого-то появилось желание опробовать «ЭкаунтоЛогику» вживую, скачать ее можно отсюда.

Системные требования: 32-разрядный Microsoft Office и 32-разрядная Windows. Если у вас 64-разрядная Windows, то, скорей всего, придется установить утилиту Microsoft Access Database Engine 2010 (32-разрядную). А при 64-разрядном Microsoft Office все равно не работает: провайдер Microsoft.ACE.OLEDB.12.0 не позволяет. Если кто подскажет, возможно ли решить проблему без замены провайдера, буду признателен.

Нет, а чего вы хотите от бухгалтера! Никогда раньше не программировал… программа учебная (во всех смыслах слова), сырая и, между прочим, довольно объемная (мне сказали, что 30 тыс. строк кода — это немало)… Посему не обессудьте, «ЭкаунтоЛогика» предлагается для ознакомления с оригинальной учетной методикой — в соответствии с принципом «as is» (что в переводе на русский означает: чем богаты, тем и рады).

© Habrahabr.ru