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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Для разных видов это разный набор прав, но все эти наборы прав определены на уровне «1С:Шины».

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

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

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

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

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

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