Глава 6. БАЛАНС
Оганизация счетов в базе данных. Системные таблицы COMPANY, ACC, ACC_ROOTS.
Информация о компаниях хранится в системной таблице COMPANY.
Таблица компаний COMPANY
Название поля |
Тип данных |
Назначение |
COMPANY_ID |
INTEGER |
Внутренний ID компании |
COMPANY_CODE |
VARCHAR(20) |
Код компании (необязателен) |
NAME |
VARCHAR(80) |
Название компании |
SMALL_IMAGE |
BLOB |
Значок компании в формате BMP 16x16 пикселей |
При создании новой компании COMPANY_ID формируется при помощи
генератора COMPANY_ID_GEN.
Информация о счетах и регистрах хранится в двух системных таблицах
: ACC и ACC_ROOTS.
Таблица счетов ACC
Название поля |
Тип данных |
Назначение |
ACC_ID |
INTEGER |
Внутренний ID счета |
PARENT_ID |
INTEGER |
Внутренний ID родительского счета (каталога) |
ACC_ORDER |
INTEGER |
Порядковый номер счета внутри каталога |
HAS_CHILDREN |
SMALLINT |
Если счет является каталогом, то в этом поле записывается
1, если не является каталогом, то записывается 0 |
ACC_CODE |
VARCHAR(80) |
Пользовательский номер счета (необязателен) |
NAME |
VARCHAR(80) |
Наименование счета (уникальное в пределах компании) |
COMMENTS |
BLOB |
Примечания к счету |
IS_SALDO |
SMALLINT |
Если счет представляет остаток дополнительного регистра, то в этом
поле записывается 1, для обычных счетов 0 |
SALDO_KIND |
SMALLINT |
Вид остатка:
0 –дебетовый развернутый остаток,
1 – кредитовый развернутый остаток,
-1
– простой остаток |
SALDO_ROOT_ID |
INTEGER |
Только для счетов остатков регистров: внутренний ID регистра,
остаток которого представляет данный счет |
NO_BALANCE |
SMALLINT |
Признак забалансового счета.
0 – балансовый счет
1 – забалансовый счет |
COMPANY_ID |
INTEGER |
Внутренний ID компании |
Таблица регистров ACC_ROOTS
Название поля |
Тип данных |
Назначение |
ACC_ID |
INTEGER |
Внутренний ID счета |
ROOT_KIND |
SMALLINT |
Тип регистра:
0 – левой стороны баланса
1 – правой стороны баланса
2 – балансового регистра
3 – забалансового регистра |
CLASS_ID |
INTEGER |
Внутренний ID класса справочника, привязанного к регистру |
USE_QUANTITY |
SMALLINT |
Признак количественного учета:
0 – без количественного учета
1 – используется количественный учет |
COLOR |
VARCHAR(20) |
Цвет панели |
FONT_NAME |
VARCHAR(50) |
Название шрифта |
FONT_SIZE |
INTEGER |
Размер шрифтра |
FONT_CHARSET |
INTEGER |
Кодовая страница шрифта |
OBJECT_TREE |
SMALLINT |
Отображать дерево объектов (для небольших справочников)
0
– не отображать дерево
1 – отображать дерево |
RIGHT_HAND |
SMALLINT |
Способ отображения остатков на счетах регистра:
0 –
левосторонний регистр
1 – правосторонний регистр |
Все счета хранятся в таблице ACC. В поле PARENT
_ID указывается идентификатор родительского счета-каталога. Если
значение PARENT_ID равно 0, то такой счет
является корневым счетом (регистром) и он имеет вхождение
также в таблицу ACC_ROOTS.
При создании нового счета его ACC_ID формируется при
помощи генератора ACC_ID_GEN.
Кроме всего прочего, в таблице ACC существует запись о
«нулевом счете». Его ACC_ID = 0
. Дело в том, что ссылочная целостность в базе
данных организована таким образом, что поля типа «счет
» в других таблицах объявлены как NOT NULL и пустым
значением для них считается ACC_ID=0.
После создания каждой новой компании в триггере COMPANY_AFTER
_INSERT создаются основные регистры баланса этой компании и несколько
счетов (будущие основнные разделы) в каждом регистре:
Средства |
Обязательства и Капитал |
Оборотные средства |
Краткосрочные обязательства |
Основные средства |
Долгосрочные обязательства |
|
Капитал |
При создании пустой конфигурации отрабатывается сценарий базы данных ALLEGRO.
SQL, в котором создается одна компания с названием «
Моя компания».
|