Metadata as a Way of a
Business Application Description
In 1C:Enterprise, a business application is based on metadata, a structured
declarative description of a business application. The programming language
(1C:Enterprise script language) is used only where
algorithmic description is required (for example, for event handling, tax
calculation, etc).
The metadata objects form a hierarchy of objects that describe all business
application’s components and all aspects of the application's behavior. When the
business application runs, the framework 'plays back' the metadata, providing
the required functionality.
Metadata describe the data structure, type list, relations between various
objects, various behavioral features of objects, aspects of the visual display
of objects, the access rights restriction system, the application interface,
etc. The metadata actually store information not only about 'what to store in
the database', but also about 'why' various pieces of information are stored,
their roles in the system. The metadata are treated as data files.
Advantages of
Metadata-based Programming
The existence of a single platform with a standardized methodology
(standard data types, algorithms, interface solutions) of creation of
business application minimizes efforts on finding a necessary solution in
any situation, from adding a new specialist to a project to implementing
some subsystems of a business application.
The metadata description maximizes the use of visual editing; this
converts most of development work from laborious coding to visual designing.
By describing an application in terms of metadata, the developer
“communicates” to the framework a wealth of information that the system can
effectively use for diverse purposes. Based on the metadata description, the
system automatically 'builds' most of the mechanisms and objects that
support the application’s functions. For example, the metadata description
is enough for the framework to automatically generate user interface that
supports data entry and modification.
The ideology of using metadata-based programming can be characterized by the
following phrase: Let’s not program all functions of the solution being
developed; let’s explain the framework the makeup, features, and relationships
of the various parts of the solution, and then let the framework do as much as
possible for itself.