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

Элемент проекта — это часть проекта, описывающая некоторую функциональность, например: «Процесс Интеграции», «Http-сервис» и т. д.

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

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

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

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

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

Например, в «1С:Шине» существует вид элементов Процесс Интеграции, и вы можете добавить в свой проект один или несколько элементов этого вида: процесс интеграции СкладМагазины, процесс интеграции ОфисМагазины, процесс интеграции ОфисСклад и т. д. Все эти элементы будут обладать схожими свойствами, схожим поведением, которое определяется их принадлежностью к виду Процесс Интеграции.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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