Глава 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, в котором создается одна компания с названием «
Моя компания».
|