Система построена в архитектуре "клиент-сервер", в качестве сервера используется СУБД Oracle версии 8i, 9i, в качестве клиента используется специальное приложение, написанное на Delphi версии 6.0. Кроме того, в системе используется специализированный объектно-ориентированный язык CPL, который транслируется в конструкции языка PL/SQL, а также интерпретируемый язык Python для организации нестандартной обработки данных на стороне клиента.
Система состоит из ядра и функциональных модулей, при этом в ядре можно выделить общесистемные и прикладные службы.
- общесистемные службы используются всей системой; без них невозможно функционирование ни одного функционального модуля и системы в целом;
- прикладные службы являются общими для всех функциональных модулей, отражая при этом специфику деятельности организации; как правило, функциональные модули пользуются этими службами, хотя принципиально можно построить модуль с использованием только общесистемных служб ядра.
Общесистемные службы опираются на словарь данных системы, представляющий собой централизованное хранилище, в котором описаны все основные элементы системы, поделенные на следующие классы:
- системные сообщения (информационные сообщения и сообщения об ошибках), описывающие различные ситуации, возникающие в ходе работы системы; служба системных сообщений позволяет вызывать прерывания серверных процедур по событию возникновения сообщения и протоколировать эти события в системном журнале;
- домены (расширенные типы данных), включая описание правил контроля и списка допустимых значений; домены используются при описании сущностей, экранных форм и отчетов, а также предоставляют простой способ добавления в систему коротких стандартных справочников без создания под них специальных таблиц и экранных форм;
- сущности (таблицы и связи между ними) с выходом на кодогенерацию скриптов по созданию таблиц, ограничений, триггеров, индексов; этот класс словаря данных может использоваться как для создания схемы данных СУБД, так и для ее описания;
- запросы с возможностью параметрической настройки условий и с возможностью сохранения в виде представлений (view), этот класс используется при построении экранных и отчетных форм;
- бизнес объекты (прикладные бизнес объекты), описывающие свойства и поведение той или иной прикладной сущности, с выходом на генерацию пакетов (package) в СУБД; сервисы бизнес объектов обеспечивают некоторые возможности, свойственные для объектно-ориентированного подхода;
- экранные формы разных типов, на основании которых клиентское приложение в процессе работы создает окна, при этом типы форм ограничены возможностями клиентского приложения; в этом же классе хранятся описания динамических экранных форм в стандарте XML;
- отчеты (шаблоны отчетов), на основании которых в процессе работы приложения происходит формирование отчетов; отчетная форма может иметь набор параметров и набор запросов, поддерживается два вида шаблонов: на основе листов электронной таблицы и на основе документов Microsoft Word, последний вид используется в основном для получения отчетов текстового вида (например, текста договора) и сложных "парадных" отчетов (с графикой, сложными стилями и т.п.).
Помимо службы хранения указанных данных, ядро включает в себя службы ведения словаря данных (создание и коррекция, кодогенерация и т.п.), пользовательский интерфейс для управления словарем данных, сервисы для интерпретации и визуального представления объектов словаря данных в процессе работы приложения.
К другим важнейшим общесистемным службам ядра, не касающимся непосредственно словаря данных, относятся:
- служба соединения с базой данных, обеспечивающая установку и завершение соединения с базой данных; служба отвечает за формирование пароля для входа в СУБД и хранение контекста пользователя (имя пользователя, подразделение, дата текущего операционного дня, язык и др.);
- служба доступа к данным для WEB-сервера;
- служба безопасности, обеспечивающая ведение пользователей системы и управление паролями; минимальная длина пароля и частота его изменения могут задаваться администратором системы; возможна привязка пользователя к конкретной рабочей станции; предусмотрены защита от несанкционированного доступа и автоматическое отключение пользователя от системы после заданного интервала неактивности;
- служба обработки системных сообщений обеспечивает обработку ошибок;
- служба аудита обеспечивает настройку и ведение журналов аудита;
- служба полномочий по доступу к прикладным объектам системы, на ее основе строится, например, разделение доступа пользователей к счетам, документам, отчетам и т.п.; в отличие от разделения доступа на уровне объектов СУБД, данная служба позволяет разделить прикладные объекты в зависимости от их свойств и назначить разные уровни доступа к этим объектам разным пользователям;
- служба ограничения видимости, позволяющая ограничить видимую часть иерархических справочников для конкретных пользователей и задач; при этом пользователи будут видеть не весь справочник (например, план счетов), а только доступную для них часть;
- служба управления отчетами, обеспечивающая их экспорт, вывод на печать, формирование в пакетном режиме (при этом задается как набор отчетов, так и набор их параметров), доступ к экспортированным отчетам;
- служба импорта и экспорта данных системы в текстовом формате; предусмотрена возможность генерации и обработки сообщений в форматах SWIFT и XML;
- служба правил кодирования прикладных объектов – позволяет формулировать сложные правила, включающие в себя ссылки на другие атрибуты, маски, готовые тексты; обеспечивается автоматический подбор значения атрибута по умолчанию (в том числе уникального значения) и контроль значения, заданного или измененного пользователем;
- конструктор экранных форм включает библиотеку компонент и типовых форм клиентской части, которая позволяет как создавать на основе типовых форм специализированные экранные формы путем программирования на Delphi и включения в состав динамической библиотеки, так и создавать интерпретируемые формы путем описания их через словарь данных, в том числе в стандарте XML.
В прикладной части ядра системы содержатся важнейшие прикладные бизнес объекты, на которых строится предметная область. К этим бизнес объектам относятся: "процессы", "сценарии", "операции", "подразделения", "счета", "контрагенты", "документы", "графики", "аналитики", "показатели". Прикладные службы ядра обеспечивают ведение этих бизнес объектов и предоставляют функциональным модулям возможность работы с ними.
Прикладные службы ядра системы опираются на возможности общесистемных служб. К прикладным службам относятся:
- служба управления процессами для поддержки описания и обработки сценариев как правил поведения процессов, их состояний, последовательности выполнения операций в ходе процесса, доступа пользователей к операциям;
- служба ведения счетов: общие свойства счетов, изменение и получение остатков и оборотов, контроль остатков, типизация остатков и оборотов;
- конструктор операций позволяет модифицировать бизнес логику существующих операций, а также создавать новые операции; при описании операций используются методы и свойства участвующих бизнес объектов, бухгалтерские и аналитические модели, экранные формы, логические блоки; операции или отдельные их блоки могут конструироваться путем наследования из описанных операций; конечным результатом описания является генерация исполняющей процедуры;
- конструктор аналитических моделей позволяет в табличной форме описывать проводки по аналитическим счетам, возникающие в ходе операции, при этом для описания счетов используется аналитический план счетов и набор дополнительных признаков (аналитик);
- конструктор бухгалтерских моделей позволяет в табличной форме описывать проводки по счетам Главной Книги, необходимые для отражения операции, при этом для описания счетов может использоваться базовый план счетов и набор дополнительных признаков (аналитик); модели допускают как немедленное создание записей в Главной Книге, так и отложенное, в последнем случаем финансовые записи могут вестись общими суммами;
- служба ведения валют и базовых операций с валютой: ведение курсов, расчет сумм переоценки, отражение при операциях в иностранной валюте, поддержка мультивалютных счетов;
- служба графиков: расчет, перерасчет, поддерживаются табличные и периодические графики;
- конструктор аналитических разрезов как дополнительных классификаторов счетов в системе, позволяют создавать на основе имеющихся или новых сущностей аналитические плоскости, на которых определяются дополнительные свойства счетов в системе;
- служба консолидации – позволяет создавать иерархическую классификацию некоторого множества объектов (группы консолидации) в системе в интересах получения отчетности; допускается явное (путем перечисления) и неявное (путем задания правил соответствия) отнесение объектов в группы;
- служба финансовых показателей, которая на базе групп консолидации и дополнительных аналитик позволяет рассчитывать с заданной периодичностью заданные на множестве объектов показатели, хранить архив рассчитанных показателей в заданных аналитических разрезах (можно хранить как точные, так и округленные значения), корректировать этот архив, выполнять к нему динамические запросы; показатели используются при получении аналитической и статистической отчетности.
В целом ядро системы позволяет развивать и модифицировать прикладную функциональную часть системы силами пользователей, лишь ограниченно привлекая специалистов компании-разработчика, что обеспечивает успешную адаптацию системы к потребностям конкретной организации и позволяет реагировать на изменения в инструкциях и в законодательстве. По сути, система внутри себя содержит достаточный набор инструментов для собственного развития.
|