Элемент проекта
Элемент проекта — это часть проекта, описывающая некоторую функциональность, например: «Процесс Интеграции», «Http-сервис» и т. д.
Добавление элементов
Элементы в проект добавляете вы, исходя из того, какая функциональность приложения вам требуется. Это основной сценарий разработки.
При этом есть несколько элементов, которые изначально присутствуют в любом проекте — их «1С:Шина» добавляет автоматически. Например, проект.
Виды элементов
Вы не можете добавить в проект «какой угодно» элемент. Вы можете добавить элемент, принадлежащий к одному из видов, которые определены в «1С:Шине».
Например, в «Шине» существует вид элементов Процесс Интеграции, и вы можете добавить в свой проект один или несколько элементов этого вида: процесс интеграции СкладМагазины, процесс интеграции ОфисМагазины, процесс интеграции ОфисСклад и т. д. Все эти элементы будут обладать схожими свойствами, схожим поведением, которое определяется их принадлежностью к виду Процесс Интеграции.
Полный список видов элементов проекта вы можете посмотреть здесь.
Модификация элементов
После того как вы добавили элемент в свой проект, вы можете изменить его свойства, изменить его состав, настроить его связь с другими элементами проекта и изменить его поведение. Тем самым вы расширяете возможности «типового» элемента, добавляете ему «индивидуальность», настраиваете его на решение тех задач, которые нужны именно в вашем приложении.
Создание типов встроенного языка
Многие элементы проекта порождают типы встроенного языка. Для каждого вида элементов «Шина» знает, какие типы нужно добавить во встроенный язык. Таким образом, языковая среда каждого конкретного проекта является уникальной.
Например, процесс интеграции в проекте порождает сразу несколько типов встроенного языка.
Создание пространств имен встроенного языка
Проект состоит из элементов, но в функциональном смысле он разделен на изолированные части, каждая из которых может использоваться в других частях проекта. Для выделения изолированных часте й вы используете элементы проекта вида Подсистема и Пакет. Внутрь подсистем и пакетов вы добавляете элементы проекта.
Если одна подсистема использует элементы из двух других подсистем (Магазины и Офисы), в каждой из которых есть, например, процесс интеграции ОбменСоСкладом, то может возникнуть путаница. Непонятно, к какому именно процессу интеграции нужно обратиться.
Для решения этой проблемы и подсистемы и пакеты порождают во встроенном языке собственные пространства имен. В результате, указывая квалифицированное имя (Магазины::ОбменСоСкладом
и Офисы::ОбменСоСкладом
), вы всегда сможете отличить один процесс интеграции от другого (подробнее).
Набор прав для работы с данными
Пользоват ели, работающие с приложением, как правило, обладают разными возможностями. Одни пользователи могут просматривать и изменять любые данные, другие, например, могут просматривать только определенный набор данных, а изменять не могут ничего.
Чтобы это стало возможным, для каждого вида элементов, которые участвуют в управлении доступом, «1С:Шина» содержит набор прав. Право — это возможность выполнить определенное действие — например, прочитать данные или изменить их.
Для разных видов это разный набор прав, но все эти наборы прав определены на уровне «1С:Шины».
Расширение типов встроенного языка
Добавление элементов в проект и их модификация «с помощью мыши» позволяют вам настроить проект на решение именно ваших задач, но не до конца.
Во-первых, далеко не все нужные вам изменения можно сделать таким образом. «С помощью мыши» у вас не получится заставить программу следовать вашему алгоритму действий в той или иной ситуации.
Во-вторых, вам наверняка захочется, чтобы типы встроенного языка, порождаемые «1С:Шиной», были бы более удобными для вас. Например, чтобы они имели дополнительные методы, структуры данных или исключения.
Для реализации всех этих задач в «Шине» существует встроенный язык, а в проекте существуют модули, в которых вы можете написать текст программы на встроенном языке.
Для многих типов встроенного языка, которые порождаются элементом проекта, вы можете добавить в проект его модуль. Например, модуль процесса интеграции. В этом модуле вы сможете обработать события, которые есть у этого типа (например, написать обработчики для трансформации либо маршрутизации сообщений).