8.Документальная подсистема
Документальная
подсистема представляет собой инструмент для ведения истории оперативного учета
на предприятии. Документальная подсистема построена с учетом следующих базовых
концепций :
1. Концепция "вектора направления
информации".
Любой документ,как правило,
представляет собой выражение
направления движение товара, денег
или услуг от одного к другому
в виде набора соответствующих
аттрибутов.
2. Концепция "истории движения
обьектов учета" по суммовым и/или
количественным аттрибутам. Любой
документ в системе обладает
"памятью" при движении по
этапам бизнес-процесса.
3. Концепция "наследования
документа".
Любой документ или начинает
бизнес-процесс или продолжает его
наследуя информацию из предыдущего
документа по цепочке бизнес-
операций.
4. Концепция "оперативного учета
как основа для бухг. учета".
Любой документ может быть настроен
так, что будет являться
основой для автоматического создания
бухг.операции.
Вообще,документ является сложным
обьектом, обладающий рядом
свойств, которые интересны сами по себе,а соединеные вместе в
одном представлении выражают новое
качественное свойство как
единица информации для оперативного
учета на предприятии.
С учетом представленных концепций
структура документа реализована
следующим образом :
1. Тип документа является уникальным в
перечне типов документов.
2. Документ определяется как набор
строк,каждая из которых
предствляется как набор полей. В
идеале каждая строка документа
выражает отдельный(инкапсулированный)
обьект,например :
строка "Реквизит
контрагента" включает Адрес,Имя,Счет
контрагента и т.д. строка
"Товар" включает Имя,Код,Цену,Налог
товара и т.д.
3. Поля документа представляются как
выражение справочной системы в
наборе связей внутри строки
документа.
Каждое поле документа обладает рядом свойств, таких как :
1. Способность
вызвать тот справочник из справочной системы,
который определил это поле документа, с
возможностью
редактирования в этом справочнике или/и
выбора
из него другого обьекта в это
поле редактирования.
2. Способность
иметь собственный алгоритм вычисления, который
представляет собой вызов определенной и
хранимой в БД
процедуры или функции ( PL/SQL для Oracle ).
3. Способность быть редактируемым или
нет.
4. Способность быть видимым в
интерфейсе или нет.
5. Способность иметь значение по
умолчанию или нет.
При такой структуре построения
документа,каждое поле экземпляра
документа обладает собственной
записью в БД, и
соответственно,обрабатывается
собственной транзакцией,
что приводит в случае сбоя системы к
потере не строки документа,а
только текущего поля.
Каждый экземпляр поля документа обладает
рядом аттрибутов, таких как :
1. Ссылку
на породивший его экземпляр документа.
2. Ссылку
на породивший его экземпляр бизнес-операции в журнале
операций.
3. Ссылку на код строки в породившем его
экземпляре документа.
3. Ссылку
на код справочника породившего это поле в экземпляре
документа.
4. Собсвенный
код обьекта учета, если этот обьект попал туда из
справочной системы.
5. Собственное
значение/имя, которое может совпадать со справочной
системой, или нет если это поле выражает
количественный или
суммовой аттрибут.
Можно также сказать, что поле документав в
общем случае выражает
историю изменения обьекта учета во
времени.
Надо специально отметить,что любой
документ имеет временную
характеристику, а справочник нет,т.к.
выражает статичные(текущие)
аттрибуты обьекта.