Элемент проекта

Элемент проекта — это часть проекта, описывающая некоторую функциональность, например: Справочник Сотрудники, Перечисление СостояниеЗаказов и т. д.

Добавление элементов

Элементы в проект добавляете вы, исходя из того, какая функциональность приложения вам требуется. Это основной сценарий разработки.

При этом есть несколько элементов, которые изначально присутствуют в любом проекте — их добавляет автоматически. Например, это проект и пользователи.

Виды элементов

Вы не можете добавить в проект «какой угодно» элемент. Вы можете добавить элемент, принадлежащий к одному из видов, которые определены в .

Например, в существует вид элементов Справочник, и вы можете добавить в свой проект один или несколько элементов этого вида: справочник Сотрудники, справочник Товары, справочник Поставщики и т. д. Все эти элементы будут обладать схожими свойствами, схожим поведением, которое определяется их принадлежностью к виду Справочник.

Полный список видов элементов проекта вы можете посмотреть здесь.

Модификация элементов

После того как вы добавили элемент в свой проект, вы можете изменить его свойства, изменить его состав, настроить его связь с другими элементами проекта и изменить его поведение. Тем самым вы расширяете возможности «типового» элемента, добавляете ему «индивидуальность», настраиваете его на решение тех задач, которые нужны именно в вашем приложении.

Описание структур данных

Как правило, любое приложение обрабатывает и хранит данные, которые вводят пользователи. Для описания наборов таких данных в есть разные виды элементов, например Справочник. Элемент этого вида позволяет в приложении работать с данными, которые в упрощенном виде можно представить в виде таблицы: строки таблицы — это элементы справочника, а колонки — это свойства элементов справочника, которые отличают один элемент от другого. Например, справочник Сотрудники:

Код ФИО Возраст
001 Булатов И.В. 32
002 Громова Н.П. 45
003 Орлова Е.Н. 23
004 Савинская З.Ю. 41

Разные справочники в вашем проекте могут иметь разные колонки, разные типы данных, которые могут храниться в этих колонках. Но для каждого из этих справочников создаст в базе данных таблицы с нужными колонками и индексами, обеспечит запись данных в эти таблицы и чтение их оттуда, поиск данных и другие операции с ними.

Всю информацию, необходимую для создания таких таблиц, возьмет из элемента проекта, созданного вами.

Создание типов встроенного языка

Многие элементы проекта порождают типы встроенного языка. Для каждого вида элементов знает, какие типы нужно добавить во встроенный язык. Таким образом, языковая среда каждого конкретного проекта является уникальной.

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

Перечисление, например, порождает единственный тип, которого вполне достаточно для работы с элементами конкретного перечисления.

Создание пространств имен встроенного языка

Проект состоит из элементов, но в функциональном смысле он разделен на изолированные части, каждая из которых может использоваться в других частях проекта. Для выделения изолированных частей вы используете элементы проекта вида Подсистема и Пакет. Внутрь подсистем и пакетов вы добавляете элементы: справочники, перечисления, компоненты и т. д.

Имена элементов проекта используются и в свойствах связанных элементов, например, в свойстве Владелец, и в типах встроенного языка, порождаемых этими элементами.

Если одна подсистема использует элементы из двух других подсистем (Основная и КонтрольДоступа), в каждой из которых есть, например, справочник Сотрудники, то может возникнуть путаница. Непонятно, какой именно из двух справочников нужно использовать.

Для решения этой проблемы и подсистемы и пакеты порождают во встроенном языке собственные пространства имен. В результате, указывая квалифицированное имя (Основная::Сотрудники и КонтрольДоступа::Сотрудники), вы всегда сможете отличить один справочник от другого (подробнее).

Набор прав для работы с данными

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

Чтобы это стало возможным, для каждого вида элементов, которые участвуют в управлении доступом, содержит набор прав. Право — это возможность выполнить определенное действие — например, прочитать данные или изменить их.

Для разных видов это разный набор прав, но все эти наборы прав определены на уровне .

Расширение типов встроенного языка

Добавление элементов в проект и их модификация «с помощью мыши» позволяют вам настроить проект на решение именно ваших задач, но не до конца.

Во-первых, далеко не все нужные вам изменения можно сделать таким образом. «С помощью мыши» у вас не получится заставить программу следовать вашему алгоритму действий в той или иной ситуации.

Во-вторых, вам наверняка захочется, чтобы типы встроенного языка, порождаемые , были бы более удобными для вас. Например, чтобы они имели дополнительные методы, структуры данных или исключения.

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

Для многих типов встроенного языка, которые порождаются элементом проекта, вы можете добавить в проект его модуль. Например, модуль справочника. Во-первых, в этом модуле вы сможете обработать события, которые есть у этого типа, а во-вторых, в этот модуль вы можете добавить публичные методы, структуры, исключения, которые расширят контракт этого типа.