- Урок 4. Пошаговая инструкция по составлению бухгалтерских проводок с примерами
- Что такое двойная запись в бухгалтерском учете?
- Что значит составить проводку в бухучете?
- Примеры
- Корреспонденция
- Принцип двойной записи: почему активы равны пассивам
- Виды счетов
- Применимость двойной бухгалтерии
- Пример двойной записи
- Модель данных
- Расчетные периоды
- Агрегирование транзакций
- Пакетная обработка
- Архитектура программной части
- Пробный баланс
Каждая хозяйственная операция , оформленная документально, находит свое отражение на взаимосвязанных счетах. Связь между бухгалтерскими счетами обеспечивается применением способа двойной записи.
Двойная запись – это способ обязательного одновременного отражения
хозяйственных фактов в одной и той же величине , выраженной в едином денежном измерителе в двух или нескольких взаимосвязанных счетах в дебетовой части одних и в кредитовой части других.
Двойная запись – непременное требование бухгалтерского учета.
Двойная запись основана на двойственной группировке средств по бухгалтерскому балансу, на четырех типах изменения в бухгалтерскомбалансе и на значении дебета и кредита в активных и пассивных счетах.
Каждая хозяйственная операция вследствие этого затрагивает две статьи баланса, что характеризуется влиянием на баланс четырех типов операций, которые изменяют или только имущество организации (актив баланса), или только источники формирования этого имущества (пассив баланса), или одновременно и имущество, и источники его образования (актив и пассив баланса).
Примеры: 1) С расчетного счета предприятия получено в кассу 30 тыс. руб.
В результате этой операции затронуты два вида средств: наличные деньги в кассе и д.ср-ва на Р. Счете в банке. Оба счета активные, отражаем по д-ту сч. Касса и К-ту сч. Р. Счет. ( Вид операции на счетах)(слайд)
Схема при сложной записи: Начислена персоналу заработная плата в сумме 40 тыс. руб., в том числе сч.20 -10 тыс. руб., 23 сч. -5 тыс. руб., ОПР -15 тыс. руб. и ОХР -15 тыс. руб.
Метод двойной записи имеет большое контрольное значение, поскольку одна и та же хозяйственная операция в равной сумме отражается дважды –
по дебету одного и кредиту другого счета, то сумма этих величин, записанных по дебету, должна быть равна сумме величин , записанных по кредиту счетов. Отсутствие такого равенства свидетельствует об ошибках , допущенных при регистрации данных.
В бухгалтерском учете получают три пары равных контрольных итогов: Общая сумма начальных дебетовых сальдо по всем счетам равна общей сумме кредитовых сальдо; общая сумма дебетовых оборотов по счетам равна сумме кредитовых оборотов; общая сумма конечных дебетовых сальдо по всем счетам равна общей сумме кредитовых сальдо.
Таким образом, контролируются не только правильность регистрации данных, но и правильность расчета сальдо по всей совокупности счетов бухгалтерского учета.
Корреспонденции счетов. Бухгалтерские проводки, их классификация.
Корреспонденции счетов – это форма выражения взаимосвязи между счетами бухгалтерского учета, возникающей при отражении в них фактов, вызываемых хозяйственной операцией.
Бухгалтерские счета, между которыми возникает такая взаимосвязь, называются корреспондирующими.
Указание счетов бухгалтерского учета, на которых должна быть отражена
хозяйственная операция в одной и той же сумме называется бухгалтерской проводкой или бухгалтерской записью, счетной формулой, бухгалтерской моделью, контировкой (конто – счет)
По способу отражения бухгалтерские проводки бывают:
• формульные – представлены в линейном виде, в котором наряду с наименованием корреспондирующего счета указывается также его шифр (код);
• графические – раскрывают типизацию корреспондирующих счетов. От-
сюда их назначение – использование при разработке программ автоматизированного учета, в которых бухгалтерская проводка – алгоритм конкретной хозяйственной операции;
• структурные – представлены в виде взаимосвязанных счетов Т-модели;
• матричные – по строению представляют собой матрицу (таблицу), в ко-
торой по вертикали отражаются дебетуемые счета, а по горизонтали –
По количеству корреспондирующих счетов бухгалтерские проводки
• на простые — в них корреспондируются только два счета,
• сложные — в них один счет корреспондирует с несколькими счетами.
(Имеют место обезличенные (сборные) бухгалтерские проводки, когда
несколько счетов одновременно дебетуются и несколько кредитуются. В российском бухгалтерском учете их применение не допускается, так как теряется экономический смысл подобных операций. Однако в странах с развитой рыночной экономикой они имеют место).
Бухгалтерские проводки по характеру отражаемых с их помощью
данных:
• реальные – отражают изменения в объектах бухгалтерского учета как
следствие имевших место фактов хозяйственной жизни. Реальные провод-
− на реальные прямые – характеризуют данные об экономических ресурсах хозяйственной единицы и их движении. ( например: Отпущены со склада материалы в основное производство)
− на реальные относительные – фиксация хозяйственных фактов, связанных с предстоящими изменениями в составе экономических ресурсов. ( Например: начислена зарплата работникам основного производства. Т.е. определяется необходимость платежа и право его требовать)
• условные (методологические) – зафиксированная в них корреспонденция счетов основана не на фактах хозяйственной деятельности, имевших место в реальной хозяйственной деятельности, а на потребности выполнения бухгалтерских приемов. Условные проводки классифицируются на :
− условные проводки уточнения показателей – методологический при-
ем бухгалтерского учета, позволяющий уточнить оценку или состав
показателя. К проводкам, уточняющим показатели, можно отнести исправительные записи: дополнительную (составляется дополнительная
запись) и отрицательную (сторнировочную) проводку (суммы записывают красными чернилами);
− условные проводки переноса показателей – методологический прием
бухгалтерского учета, позволяющий выделить необходимый объект
бухгалтерского учета на самостоятельном счете, на котором этот объект получает дополнительное отражение или группировку.(Например: расчеты на содержание и управление производством в течение отчетного периода собираются на счете «ОПР», в конце месяца распределяются между объектами калькулирования и и переносятся на счет «Основное производство». Поскольку в действительности такой хозяйственной операции не было, перенос осуществляется условной проводкой. Выявление финансового результата по счету «Продажи» и перенос прибылей и убытков на счет «Прибыли и убытки»
Урок 4. Пошаговая инструкция по составлению бухгалтерских проводок с примерами
Всем привет! В 4 уроке разберемся, как легко составлять бухгалтерские проводки. Простыми словами объясняется правило двойной записи и пошаговый алгоритм составления записей в бухучета для любых хозяйственных операций.
Обычно всех начинающих бухгалтеров пугает эта тема, однако всё просто. Чтобы правильно сделать проводку в бухгалтерском учете, достаточно иметь под рукой План счетов и знать пинцип двойной записи.
Что такое двойная запись в бухгалтерском учете?
Двойная запись — это способ ведения бухучета, при котором одна и та же сумма хозяйственной операции вносится одновременно в дебет одного счета и в кредит другого.
Благодаря такому методу учета операций на предприятии обеспечивается главное правило бухгалтерского учета — равность активов и пассивов.
Активы — это имущество, деньги, пассивы — источники их формирования (долги и обязательства). Учет ведется правильно, если общая величина активов предприятия равна пассивам. Это главное правило бухгалтерского баланса.
Счет — это таблица с двумя столбцами — левый называется дебет, правый — кредит.
Отражение одной и той же сумму одновременно на двух счетах вызывает изменение активов или пассивов на одинаковую величину, в любой момент времени сохраняя итоговое равенство.
Каждый день компания совершает множество операций — оплата поставщикам, отгрузка товаров, получение денег от покупателей, передача ТМЦ в производство, выдача зарплаты, оплата налогов, начисление амортизации и т.д.
Для каждой такой операции необходимо оформить подтверждающий документ, на основании которого сумма учитывается в бухгалтерском учете по принципу двойной записи — вносится в дебет одного счета и в кредит другого.
Так как каждая сумма учитывается дважды — по дебету и кредиту, то в конечном итоге суммарный дебетовый оборот всех счетов всегда равен суммарному кредитовому обороту.
Благодаря соблюдению этого правила, можно легко отследить, правильно ли ведется бухгалтерский учет. Если равенство соблюдается, бухучет правильный.
Если равенство нарушается, то нужно искать ошибку — какая-то проводка составлена не верно.
Двойная запись, то есть отражение суммы операции на двух разных счетах (двойная запись), называется бухгалтерской проводкой.
Что значит составить проводку в бухучете?
Составить проводку в бухгалтерском учете для какой-либо операции — это значит отразить ее сумму одновременно на двух разных счетах (по дебету и кредиту) с учетом правила двойной записи.
Говоря простыми словами, чтобы составить проводку, нужно выбрать два бухгалтерских счета и внести сумму операции в дебет одного и в кредит другого.
После каждой выполненной проводки меняется величина суммарного дебетового и кредитового оборотов на одну и ту же величину, что сохраняет бухгалтерский баланс.
Прежде, чем перейти к пошаговой инструкции по формированию проводок в бухучете, нужно вспомнить несколько важных правил, которые мы изучили в предыдущих уроках:
Правило 1:
На активных счетах учитываются активы, на пассивных — пассивы, на активно-пассивных — и то, и другое в зависимости от ситуации.
Правило 2:
На активном счете увеличение актива отражается по дебету, уменьшение — по кредиту. Остаток (сальдо) всегда дебетовый или равен 0.
Правило 3:
На пассивном счете увеличение пассива отражается по кредиту, уменьшение — по дебету. Остаток (сальдо) всегда кредитовый или равн 0.
Правило 4:
Активно-пассивный счет может вести себя либо как активный, либо как пассивный. Остаток (сальдо) может быть любым.
Примеры
Пример 1: От поставщика поступили товары на склад на основании товарной накладной на сумму 100 000.
Пользуясь пошаговой инструкцией, составим проводку для указанной выше операции:
- Шаг 1. Два участвующих счета — 60 «Расчеты с поставщиками и подрядчиками» (активно-пассивный) и 41 «Товары» (активный).
- Шаг 2. Сумма операции из товарной накладной = 100 000.
- Шаг 3. В процессе указанной операции активы (товар) поступают от поставщика на склад.
Появление товаров на нашем складе (увеличение актива) отражается по дебету активного счета 41.
Выбытие товаров от поставщика (уменьшение актива) отражается по кредиту активно-пассивного счета 60 (в данном случае он ведет себя как активный).
То есть сумму 100 000 одновременно внести в Дебет 41 и в кредит 60. Такая запись и называется проводкой. Сокращенно может обозначаться Дт 41 Кт 60.
Обратите внимание: В ходе данной операции мы одновременно уменьшили активы на одном счете на 100 000 и на ту же сумму 100 000 увеличили активы на другом, в итоге общая величина активов после проводки не изменилась.
Пример 2: Организация берет кредит в банке в сумме 200 000 на срок 5 лет.
- Шаг 1. Два счета, которые участвуют в операции — 67 «Долгосрочные кредиты и займы» (пассивный) и 51 «Расчетные счета» (активный).
- Шаг 2. Сумма — 200 000.
- Шаг 3. В процессе операции пассив (задолженность перед банком) создает актив (деньги на расч/счете).
Появление безналичных денег (увеличение актива) отражается по дебету активного сч. 51.
Актив «деньги» формируется благодаря появлению кредиторской задолженности (увеличение пассива), которая отражается по кредиту пассивного сч. 67.
То есть сумма кредита 200 000 одновременно вносится в дебет 51 и в кредит 67. Проводка — Дб 51 Кт 67.
Обратите внимание: В ходе данной операции мы увеличили одновременно общую величину активов и пассивов на одну и ту же сумму 200 000. То есть итоговый баланс по-прежнему выполняется.
Пример 3: Организация выплатила работника заработную плату наличными в размере 200 000.
- Шаг 1. Два участвующих счета — 70 «Расчеты с персоналом по оплате труда» (пассивный) и 50 «Касса» (активный).
- Шаг 2. Сумма — 200 000.
- Шаг 3. В ходе операции уменьшается количество наличных денег в кассе и погашается задолженность перед работниками.
Выдача денег из кассы (уменьшение актива) отражается по кредиту активного сч. 50.
Погашение долга по заработной платы (уменьшение пассива) отражается по дебету пассивного сч. 70.
То есть сумму операции 200 000 нужно внести в дебет 70 и кредит 50 — проводка Дт 70 Кт 50.
Обратите внимание: В ходе данной операции мы уменьшили общую величину активов на 200 000 и вместе с тем уменьшили общую величину пассивов на те же 200 000. То есть итоговое равенство по-прежнему сохраняется.
Еще примеры проводок в бухучете:
Если после разбора трех примеров, все равно не понятно, как соствалять проводки в бухгалтерии, давайте разбираться вместе. Пишите в комментариях ниже свой вариант операции — сделаем для него проводку вместе.
Корреспонденция
В бухгалтерском учете также часто встречаются понятия «корреспонденция», «корреспондирующие». Что это такое?
Корреспонденция счетов — взаимодействие двух счетов, участвующих в бухгалтерской проводке.
Корреспондирующие счета — это два счета бухгалетрского учета, которые участвуют в проводке.
Полный курс «Бухучет с нуля» можно приобрести по этой ссылке »»».
Принцип двойной записи: почему активы равны пассивам
Иван взял в долг 150 рублей у друга. 100 рублей он потерял, а на оставшиеся деньги купил два карандаша по 10 рублей. 30 рублей сдачи он вернул другу и остался должен еще 120 рублей. Плюс у него остались два карандаша по 10 рублей — еще 20.
Куда делись десять рублей?
Представим движение денег в виде таблицы:
Суммировать долги и карандаши не стоит — их движение учитывается отдельно от денег. Десять рублей никуда не пропали, просто поступления и выплаты нужно правильно посчитать.
Эта таблица — упрощенный пример счета «Деньги». Счет в бухгалтерском учете — это регистр, в котором компании учитывают движение средств и источников их образования. Каждая операция записывается на двух счетах.
Этот способ называется двойной записью. Он показывает взаимосвязь потраченных денег и купленного товара. Иван потратил 20 рублей на покупку карандашей: количество денег уменьшилось, а количество карандашей увеличилось.
Каждая операция фиксируется проводкой. В левой части указывается де́бет — приход имущества и материалов. В правой кр́едит — источник, из которого финансируется приобретение. Также проводка содержит дату операции и ее сумму.
Если бы карандаши покупала компания за наличные, проводка выглядела бы так:
25.08.2022 Дт 10 «Материалы» Кт 50 «Касса» 20
Названия и номера счетов одинаковы для всех компаний, ведущих стандартизированный бухгалтерский учет с помощью принципа двойной записи. Они пользуются планом счетов, утвержденным Приказом Минфина. В управленческом учете компания может использовать тот план счетов, который ей удобен.
Счет может быть разбит по субсчетам. Так счет 41 «Товары» включает товары в рознице, на складах, тару и покупные изделия. Все операции по счету за месяц суммируются и формируют оборот за период. Он считается отдельно по дебету и кредиту. Остаток по счету на конец периода называется сальдо:
Счет 50 «Касса»
Виды счетов
Счета могут быть активные, пассивные и активно-пассивные. Часть счетов совпадает со статьями бухгалтерского баланса: активы включают основные и оборотные средства, пассивы — собственный капитал и обязательства. Активы приносят прибыль, пассивы — ее финансируют, поэтому активы всегда равны пассивам.
Активные счета применяют для фиксирования движения основных и оборотных средств:
- основные средства включают оборудование, транспорт, недвижимость; — складские запасы, деньги на расчетном счету и в кассе.
Сальдо (конечный остаток) по этим счетам может быть только дебетовым (положительным) или нулевым. Примером такого счета может быть счет 41 «Товары» — запас товаров в магазине не может уйти в минус.
Пассивные счета используют для учета собственного капитала и обязательств. К обязательствам относятся кредиты. Сальдо по этим счетам может быть только кредитным или нулевым. Пассивным является счет 66 «Расчеты по краткосрочным кредитам и займам».
Активно-пассивные счета могут иметь как положительное, так и отрицательное сальдо. К ним относятся расчеты с поставщиками, покупателями, персоналом, бюджетом. Например, счет 68 «Расчеты по налогам и сборам».
Сальдо по активным счетам формирует активы в бухгалтерском балансе. Сальдо по пассивным — пассивы. Дебетовое сальдо по активно-пассивным счетам суммируется и отражается в балансе как дебиторская задолженность, а кредитное — как кредиторская.
Также существуют временные счета, они закрываются в конце отчетного периода. Счет 90 «Продажи» аккумулирует информацию по доходам и расходам, например, себестоимости проданного товара за период, обычно месяц.
Применимость двойной бухгалтерии
На старте проекта низкая цена простой записи всегда искушает, а стоимость реализации и сложность полноценной двойной записи кажется излишней. Однако в действительности часто использование простой записи оказывается ложной экономией.
Если бухгалтерская информация в ИТ системе лишь копирует существующую бумажную отчетность, хранящуюся вне разрабатываемой БД, тогда простая запись еще имеет право на жизнь. Однако если хотя бы один из перечисленных ниже фактов о системе правдив, то с самого начала стоит использовать двойную запись:
- Если когда-либо потребуется бухгалтерский аудит информации
- Если информация в системе — единственный источник сведений о собственности
- Если информация касается объектов, имеющих высокую ценность
- Если систему планируется серьезно развивать в дальнейшем
Пример двойной записи
Ключевой идеей двойной записи является существование особого «cash book» аккаунта (прим. перев.: не нашел как это адекватно назвать по-русски, может кто подскажет?). Этот аккаунт содержит записи, сделанные когда ценности (например, деньги) вносятся или выводятся из нашей бухгалтерской системы.
Таким образом, текущий баланс этого аккаунта отражает общее количество ценностей в системе.
Дальше показан простой пример с двумя аккаунтами, «cash book» и «Смит».
(а) £300 вводится в систему и кладется на счет Смита. Создается кредит на £300 в аккаунте Смита (кредит справа, дебет слева). Чтобы уровнять эту сумму, создается дебет на £300 в аккаунте cash book.
(b) Затем Смит выводит £50 из системы. Создаем дебет на эту сумму в аккаунте Смита и кредит в cash book.
(c ) Добавим еще один аккаунт Паттел и переведем 100£ ему от Смита. Для этого нам понадобится создать дебет на эту сумму у Смита и кредит у Паттела.
(d) В качестве завершающего штриха пусть теперь Паттел выведет из системы 60£. Мы создаем дебет в его аккаунте и кредит в Cash book.
В результате всех этих операций мы можем подсчитать, что итоговый баланс Смита 150£, Паттела 40£, а в Cash Book -190£, отрицательная сумма балансов всех остальных аккаунтов. Основываясь на этих простых правилах и операциях в дальнейшем можно построить очень комплексные системы контроля ценностями.
Модель данных
Структура простой модели данных, которая может использоваться для представления всей этой информации:
Таблица POSTING содержит сами двойные записи. Хранение всех цифр в одной таблице сильно упрощает все вычисления. В качестве первичного ключа стоит использовать монотонно возрастающий счетчик.
Значения при этом должны идти подряд, в таком случае по номеру всегда можно будет убедиться, что ни одна запись не была удалена. Таблицы BATCH и JOURNAL используются для контроля и ввода данных в эту таблицу POSTING.
Каждая запись в таблице JOURNAL представляет транзакцию (с точки зрения бизнеса), которая генерирует двойные записи. Такая транзакция — это завершенная единица работы или какого-либо бизнес-процесса. Либо все POSTING записи, ассоциированные с JOURNAL записью должны быть успешно завершены, либо ни одна из них.
Сумма всех POSTING записей в рамках одной транзакции должна давать ноль. Каждая операция по переводу средств из примера выше представляется своей записью в таблице JOURNAL
Запись в таблице BATCH сделана для удобства ввода данных. Она используется для группировки записей JOURNAL в удобные пакеты, например набор чеков для ввода в систему, какой-то глобальный бизнес-процесс вроде начисления процентов сразу всем пользователям и т.п.
Таблица ACCOUNT хранит данные о владельцах ценностей в системе.
Таблица ASSET TYPE содержит информацию о типах ценностей, использующихся в системе. Добавив тип ценности в первичный ключ таблицы POSTING можно сделать систему, оперирующую сразу несколькими видами ценностей (например, обработку нескольких валют).
Вот как может выглядеть такая БД для примера выше в максимально упрощенном виде:
Баланс столбца Amount в таблице POSTING всегда равен нулю после завершения любой транзакции из JOURNAL (ПО должно гарантировать отсутствие записи незавершенных транзакций в БД).
Сумма операций для аккаунта Cash Book дает -190, что равно сумме балансов Смита и Паттела с обратным знаком.
Для демонстрации работы с многовалютностью был добавлен новый вид ценности. Если Смит хочет поменять 20 фунтов на доллары по курсу 1 за 1.5, транзакция будет проведена через Cash Book таким образом:
Расчетные периоды
Модель, которую мы получили, отлично выглядит, но в реальности очень быстро сломается под высокой нагрузкой из-за того, что мы не можем ничего удалять и вынуждены постоянно пересчитывать все возрастающее количество записей в POSTING.
Большинство систем бухучета имеют понятие расчетного периода — обычно это месяц, три месяца или год. Такой период подсказывает удобные моменты для разделения потока данных. Обычно удобной точкой является конец года, календарного или финансового.
Мы можем добавить столбец с индикатором периода к таблице POSTING и к ее первичному ключу, разбив данные на группы, которые могут обрабатываться независимо. Если бы в примере выше часть записей попала на новый расчетный период, балансы аккаунтов были бы перенесены следующим образом.
Сперва были бы очищены балансы предыдущего периода.
А затем они были бы перенесены в новый период
После определенного времени все записи периода YEAR 1 могут быть отправлены в архив и удалены из системы без потери ее целостности.
Агрегирование транзакций
Некоторые операции в бухгалтерской системе могут затрагивать сразу многих, или вообще всех пользователей. Например, выплата процентов всем пользователям в виде доли от их текущего баланса.
Такие операции могут быть обработаны в рамках одной транзакции в таблице JOURNAL и можно агрегировать все операции с Cash Book в одну общую запись в таблице POSTING (вместо создания отдельной операции для каждого аккаунта). Это позволит соблюсти все перечисленные выше правила бухгалтерского учета и при этом сократить в два раза количество записей в БД. При использовании такого подхода конец года в БД будет выглядеть так:
Пакетная обработка
Пакетная обработка часто используется для упрощения ввода данных в бухгалтерскую систему.
Исторически так работала обработка чеков. Бухгалтеру выдавалась пачка из десяти чеков, номер пачки и общая сумма всех чеков. На первом этапе чеки вносятся в систему в виде «неавторизованных» записей.
При этом через таблицу BATCH проверяется их количество и общая сумма, и только если они совпадают с правильным значением пользователю позволяется закоммитить пачку. После того как это сделано, пачка отправляется другому сотруднику, который проверяет ее на валидность и затем «авторизует» если все введено верно.
Такой процесс называется «maker/checker» и может использоваться для ввода любых значимых данных в систему.
Правильным при этом будет хранить «неавторизованные» записи в отдельной таблице от основного набора двойных записей в таблице POSTING. Также можно иметь целый ряд таких таблиц для разных бизнес-процессов. Например, в случае с чеками, через которые осуществляется ввод или вывод денег из системы, бухгалтеру надо будет проверить только один аккаунт.
Так как второй, Cash Book, в таких операциях всегда подразумевается неявно. В таком случае в таблице CHEQUE можно будет обойтись только одним столбцом с аккаунтом, в то время как в гипотетической таблице FUND TRANSFER нужно будет два столбца: «отправитель» и «получатель».
Именно тут возникает основное непонимание принципов двойной записи. Большинство людей в обычной жизни встречают только простые бумажные книги учета. В такой бумажной книге, например для учета финансов какого-то клуба по интересам, нужна только одна запись для каждой операции.
Однако в ней по-прежнему есть неявная двойная запись, так как всегда неявно присутствует Cash Book аккаунт (в данном случае — этот самый клуб), ведь все движения средств это всегда или ввод (оплата взносов участниками), или вывод денег из системы (траты клуба).
Вторая причина заблуждений — то что в личных выписках по счету деньги, положенные на счет будут считаться «кредитом», потому что человек по сути кредитует банк, который получает его деньги. Хотя если бы этот человек вел свою бухгалтерскую книгу, эта запись была бы в ней учтена как «дебет» — так как банк должен эти деньги своему клиенту. Эти деньги выводятся из «платежной системы» пользователя и вводятся в систему банка.
Архитектура программной части
ПО, реализующее такую бухгалтерскую систему с двойной записью, лучше всего разрабатывать с помощью ООП и многоуровневого подхода. Уровни получаются такими:
- Внешний интерфейс
- Бизнес-логика
- Работа с БД
Конечно, архитектура системы будет зависеть от того, что именно эта система должна делать, однако можно предположить наличие в ней следующих модулей:
PostEntry: модуль, который управляет созданием двойных записей в таблице POSTING. Он отвечает за вставку записей, присвоение ID и таймстампов. Модуль не может удалять или изменять записи и никакой другой модуль не должен удалять или изменять эти записи, за исключением возможного удаления старых архивированных записей для уже неактуальных расчетных периодов.
Таблица POSTING должна быть доступна только на чтение для всех других модулей.
MakeDeposit, MakeWithdrawal, MakeTransfer: эти модули реализуют базовую бизнес-логику для операций переводов средств. Они будут использовать модуль PostEntry для занесения своих результатов в БД
ChequeEntry и ChequeAuthorisation, ReceiveBACS (прим перев: BACS — система межбанковских платежей): эти модули будут связывать систему с внешним миром и предоставят высокоуровневый интерфейс. Они будут использовать модули бизнес-слоя для выполнения своих функций. В таком случае можно гарантировать правильность процессинга вне зависимости от метода ввода данных, так как и ChequeEntry и ReceiveBACS будут работать через тот же самый MakeDeposit
Эту методологию разделения слоев можно применять в большей или меньшей степени, в зависимости от сложности системы и желаемой чистоты использования принципов объектного дизайна. При этом может иметь смысл, например, разрешить модулю генерации отчетов (например TestTrialBalance) прямой доступ к БД с уровня интерфейса — вместо того чтобы создавать промежуточные модули на бизнес и БД слоях.
Пробный баланс
«Пробный баланс» — главный способ проверки целостности бухгалтерской системы. Если все записи вносились в систему по правилам двойной записи и не было никаких ошибок, в таком случае сумма всех записей должна давать ноль. Вероятность того, что несколько отдельных ошибок сложатся в и сумме дадут ноль на невалидной базе обычно настолько мала, что ей пренебрегают.
Лучшим способом проверки является последовательное движение от верхнего уровня к нижнему. Проверки имеет смысл выполнять в таком порядке:
- Сумма всех значений в столбце POSTING.Amount
Если найдена ошибка (значение не ноль), то: - Сумма всех значений POSTING.Amount, но отдельно посчитанная для разных типов ценностей и расчетных периодов
На этом этапе должно стать яснее, в какой части системы произошла ошибка. - Проверка отдельных операций в таблице JOURNAL. Поскольку сумма всех POSTING.Account в каждой транзакции из таблицы JOURNAL должна тоже давать ноль, дальше можно отследить конкретную проблемную транзакцию.