План аналитики
План аналитики используется для хранения статической информации, то есть информации, которая изменяется сравнительно редко. В частности, при разработке прикладных программ можно использовать план аналитики для создания справочников. Но этим его назначение не ограничивается: в плане аналитики можно хранить алгоритмы, дополнительные данные (которые, например, отображаются для конечного пользователя не в виде справочников, а в контексте какого-то диалога), служебные данные, и т.п. План аналитики представляет универсальное иерархическое хранилище самых разных абстракций, используемых в прикладной задаче.
Основной структурной единицей плана аналитики является объект аналитики. Хранение объектов в плане аналитики организовано в виде иерархической структуры, то есть объекты-потомки наследуют свойства родительских объектов и могут переопределять значения этих свойств.
Каждый объект аналитики имеет строковый код, название (произвольный комментарий) и права доступа. В плане аналитики объект идентифицируется по абсолютному коду, составленному из кодов объектов-предков в соответствии с иерархической последовательностью и собственного кода объекта, то есть строка кода - это путь до объекта аналитики. Коды объектов указываются через разделитель "/". Например, у объекта "ОРГ" есть дочерний объект "ОРГ1". Следовательно, абсолютный код объекта ОРГ1 - "ОРГ/ОРГ1". Количество уровней вложенности объектов в плане аналитики ограничено конечной, но очень большой величиной.
Любой объект аналитики может иметь неограниченное количество статических свойств. Значения статических свойств сохраняются во временной прогрессии. Значения статических свойств в отдельно взятой временной точке определяют состояние объекта аналитики в этой точке.
Помимо статических свойств, с объектом аналитики могут быть связаны определения динамических свойств. В то время как значения статических свойств определяют состояние самого объекта аналитики, значения динамических свойств являются частью ссылки на этот объект. То есть ссылка на объект аналитики состоит из указания абсолютного кода объекта и значений всех его динамических свойств. Например, для объекта "ВАЛЮТА" можно определить динамическое свойство "курс_валюты". Очевидно, что курс валюты - величина непостоянная, соответственно, представив его как динамическое свойство, мы даем пользователю возможность задавать значение курса каждый раз, когда он выбирает валюту.