Материал из Ananas
Перейти к: навигация, поиск

ОБЩИЕ ПОЛОЖЕНИЯ

Система АНАНАС состоит из объектов. Данные каждого объекта хранятся в одной или нескольких таблицах БД. Объекты определяются классами. Каждому классу соответствует свой набор таблиц БД, для хранения объектов данного класса. Классы могут меняться настройщиком системы в определенных рамках и по определенным правилам. Изменение класса приводит к соответствующему изменению объектов и структур БД. Классы объединены в группы. Все классы одной группы имеют для хранения данных своих объектов одинаковое количество таблиц БД схожей структуры со схожими именами. Настройщик может добавлять новые классы в систему, удалять существующие. Группы не могут быть добавлены или удалены настройщиком.

Именование таблиц БД

Имена таблиц БД назначаются системой по следующему принципу: Префикс (2 символа) + идентификатор в виде числа. В пределах одной БД идентификаторы должны быть уникальны. Префикс определяет принадлежность к группе классов.

Именование полей таблиц БД

Поля таблиц БД делятся на 2 группы: системные и пользовательские. Системные поля имеют фиксированное имя для каждого типа таблицы и не доступны для пользователя и прикладного программиста. Пользовательские поля создаются при настройке прикладной конфигурации. Имена пользовательских полей таблиц БД назначаются системой по следующему правилу: Префикс (2 символа) + идентификатор в виде строки или числа. В пределах одной таблицы идентификаторы должны быть уникальны. Префикс пользовательского поля “uf”. Префикс кода типа поля (код в структуре метаданных) для полей неопределенного типа – “ut”1. В случае с полем неопределенного типа, оно фактически представлено в таблице двумя полями – значением с именем “ufxxxx” и типом “utxxxx”. Часть идентификатора поля у них одинаковая. Для идентификации конкретной записи каждая таблица БД всегда имеет поле ID типа BigInt2. При добавлении строки таблицы система получает очередное значение ID путем добавления записи в таблицу уникальностей. При этом автоматически увеличивает ID очередной записи таблицы уникальностей на 1, используется флаг autoincrement сервера БД. Нумерация начинается с 1. 0 – не корректное значение (отсутствие ссылки). Все связи между таблицами и ссылки на строки таблиц осуществляются с использованием значения поля ID.


ОБЪЕКТЫ СИСТЕМЫ

Параметры

Параметры используются для хранения редкообновляемых или совершенно необновляемых, то есть постоянных значений простой структуры, используемых системой в процессе своей работы. В качестве примера параметров можно привести банковские реквизиты предприятия, эксплуатирующего Ананас, ФИО руководителя, главного бухгалтера.


Поле Тип Обязательное Примечание
id BigInt * Уникальный идентификатор объекта
Code Char(8) * Пользовательский код элемента
name Char(25) * Наименование элемента
******* Пользовательские поля

Справочник

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

Таблица элементов

Префикс “se”

Поля таблицы

Поле Тип Обязательное Примечание
id BigInt * Уникальный идентификатор записи
idg LongInt * ID группы или 0 – вне групп.
ido LongInt * ID элемента справочника-владельца (для подчиненных справочников). = 0 – нет владельца
code Char(8) * Пользовательский код элемента
name Char(25) Наименование элемента
******* Пользовательские поля

Таблица групп

  Префикс “sg”

Поля таблицы

Поле Тип Обязательное Примечание
id BigInt * Уникальный идентификатор записи
idp BigInt * Код родительской (вышестоящей) группы или 0 – для корневых групп
code Char(8) * Пользовательский код элемента
level Int * Уровень в дереве групп. 0 – корень
name Char(25) Наименование элемента
******* Пользовательские поля

Документ

Таблица шапки

  Префикс “dh”

Поля таблицы

Поле Тип Обязательное Примечание
id LongInt * Уникальный идентификатор записи
date Date * Дата регистрации в журнале документов
name Char(20) * Исходящий номер документа в журнале регистрации
******* Пользовательские поля
 * Примечание
 Исходя из структурной декомпозиции шапки документа на таблицу журналов документов и таблицу документа с пользовательскими реквизитами дату,
 номер и другие общие реквизиты документа следует брать из журнала документов.

Таблица списков

Префикс “dl” На каждую табличную часть документа создается своя таблица БД. Имя таблицы формируется по следующему правилу: Префикс+ИдентификаторДокумента+ИдентификаторТаблицы, где идентификатор документа и идентификатор таблицы берутся из конфигурации. Идентификаторы таблиц должны быть уникальны в пределах одного документа.

Поля таблицы

Поле Тип Обязательное Примечание
id BigInt * Уникальный идентификатор записи
idd BigInt * ID Документа-владельца
lnum int * Номер строки внутри табличной части. Нумерация с 1.
******* Пользовательские поля

Регистр остатков

Отражает обороты аналитического учета и хранит остатки разрезов аналитики. Система автоматически пересчитывает остатки в таблице остатков при проведении документов.

Таблица оборотов

Префикс “rg”

Поля таблицы

Поле Тип Обязательное Примечание
Id BigInt * Уникальный идентификатор записи
idd BigInt * ID документа.
idt Int * ID строки активной табличной части документа при выполнении операции.
opcode Int * Код операции
dk Char(1) Дебет/Кредит
******* Пользовательскиереквизиты разрезов аналитики
******* ЧИСЛО Пользовательские реквизиты значений аналитики
******* Информационные пользовательские реквизиты

Таблица остатков

Префикс “rs”

Поля таблицы

Регистр оборотов

  Похож на регистр остатков, но отражает только обороты.

Таблица оборотов

Префикс “ro”

Поля таблицы

СЛУЖЕБНЫЕ ОБЪЕКТЫ СИСТЕМЫ

Перекрестные ссылки

Таблица перекрестных ссылок Имя “a_ptrs”

Поля таблицы

Нумератор документов

Таблица нумератора Имя “a_num”

Поля таблицы

Журнал документов

Журнал документов предназначен для регистрации документов в порядке поступления в БД и хранения реквизитов документов, общих для всех документов системы.

Таблица журнала документов Имя “a_journ”

Поля таблицы