Проект gpl-2C

 

Документация\Архитектура 2с

 

Архитектура системы

Система состоит из трех основных частей:

1. Репозитария метаданных (md2-файла)

2. Исполняемой машины

3. Подсистемы для связи с внешними устройствами (графическая система, БД…) 

Репозитарий метаданных

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

Он хранит список ранее скомпилированных модулей (т.е. код на языке 2С, переведенный в байт-код) для обеспечения кэширования и список запущенных на исполнение (т.е. спроецированных в памяти) глобальных модулей.

 

 

Исполняемая виртуальная машина

Порядок запуска системы

В данном разделе описывается алгоритм работы процедуры CEnterpriseApp::InitInstance()

· Регистрация системных объектов:

1. СписокЗначений, ValueList

2. ДеревоЗначений, ValueTreeCtrl

3. Массив, Array, Структура

4. ФайлМетаданных, MetadataFile

5. QuerySQL, ЗапросSQL

6. Файловая система

7. Grid, Сетка

8. Menu, Меню

9. Метаданные, Metadata

10. Модуль, Module

11. Текст, Text

12. Число

13. Строка

14. Дата

· Подключение плагинов

· Если не задана конкретная база, то: старт диалога выбора баз, выход

· Инициализация графической среды MDI

· Запуск пользовательской среды - исполнение конфигурации (алгоритм работы процедуры CModuleManager::Load()):

1. Открытие файлов *.md2 с системными библиотеками функций и объектов уровня 1.

2. Открытие текущей конфигурации - файла config.md2, который должен находиться в каталоге базы данных.

3. Компиляция глобального модуля "Инициализации системы" и запуск предопределенной процедуры «ПриНачалеРаботыСистемы»

4. Обработка макрообъектов

· Компиляция модулей объекта

· Регистрация макрообъекта в «Регистраторе объектов»

· Запуск предопределенных процедур модулей объектов

4. Компиляция остальных общих (глобальных) модулей конфигурации и запуск предопределенных процедур

Примечание:

Код текста модуля, не входящий в функции и процедуры игнорируется. Исключения составляют модули форм, в которых сначала исполняется код модуля не входящий в состав функций и процедур, а после этого выполняются предопределенные процедуры и функции, предусмотренные контекстом исполнения.