Компиляция метаданных
Last updated
Last updated
В процессе работы с конфигуратором, "компиляция" это то что будет выскакивать на экране чаще всего. Компиляция это процесс валидации метаданных и подготовка этих метаданных к использованию. Когда мы редактируем объект и затем сохраняем его, сразу запускается процесс компиляции этого объекта и всех его дочерних объектов (см. наследование).
Во время компиляции происходит слияние всех родительских метаданных с метаданными компилируемого объекта. Это необходимо для обеспечения возможности наследования.
Например у нас есть Представление "Заявка". В нем есть поля "ID", "Number". У этого представления есть дочернее представление "Заявка на вызов курьера", с одним единственным полем "Курьер". Поля ID, Number в дочернем представлении мы уже не описываем, так как они унаследуются от базовой заявки.
Вот компиляция объекта "Заявка на вызов курьера" как раз и достает все родительские метаданные вверх по иерархии, склеивает их с метаданными самого объекта и складывает в готовом к употреблению виде в базу. Поэтому когда мы меняем объект у которого есть дочерние, то процесс компиляции также пересобирает и их. Например если мы в базовом представлении переименовали поле Name с "Наименование" на "Имя", то нужно перекомпилировать не только базовую заявку, но и Заявку на вызов курьера. Все это конечно происходит автоматически и не требует внимания разработчика.
Затем, когда мы запускаем приложение, при использовании того или иного объекта (например "Главная форма приложения" или тот же пример "Заявка на вызов курьера"), система подтягивает эти метаданные и инициализирует ими данный объект. За счет того что как правило в средне-статистической системе объектов очень много (а иначе зачем вам платформа), то и обращений к базе происходило бы достаточно большое кол-во. А процесс компиляции собирает и оптимально раскладывает по полкам все необходимые метаданные для быстрой работы runtime. Разработчик же заботится об удобстве расположения полей, правильной логике и обо всем, чему в традиционной разработке из-за большой рутины не уделяют должного внимания.