Тип встроенного языка, порождаемый элементом проекта вида «КонтрактСервиса»
После того, как вы добавили в проект контракт сервиса и дали ему имя, «1С:Шина» создаст один тип встроенного языка. Имя этого типа совпадает с именем вашего контракта.
Например, если в проекте есть контракт APIСервиса, то будет создан тип APIСервиса
. В общем случае имя этого типа выглядит следующим образом: имя-контракта-сервиса
.
Тип «имя-контракта-сервиса»
Это абстрактный тип. Он доступен в том же окружении, которое указано в свойстве контракта Окружение: КлиентИСервер, Клиент, Сервер.
Этот тип содержит методы, объявленные в модуле контракта имя-контракта-сервиса.xbsl.
Кроме этого тип имеет статический метод, имя которого зависит от значения свойства контракта Множественный:
Истина
— имя методаПолучитьСервисы()
Лож ь
— имя методаПолучитьСервис()
Эти методы предназначены для того, чтобы получить все экземпляры типов-одиночек, которые реализуют этот контракт.
«1С:Шина» поддерживает механизм подписки на системные события.
Модуль контракта сервиса
В проекте модуль, расширяющий тип имя-контракта-сервиса
, называется модулем контракта сервиса. Он доступен в том же окружении, которое указано в свойстве контракта Окружение: КлиентИСервер, Клиент, Сервер.
В модуле контракта сервиса должны быть объявлены методы (с ключевым словом абстрактный
), из которых состоит контракт. Реализация этих методов должна находиться в элементах проекта, которые реализуют этот контракт.
Также в модуле контракта сервиса могут быть объявлены:
Для методов и типов, объявляемых в модуле контракта сервиса, окружение не указывается, оно всегда равно окружению контракта (свойство Окружение).
Например, ниже показан модуль контракта сервиса, в котором объявлены два метода: ЗаписатьЗначенияОперативныхПоказателей()
и ЗарегистрироватьСдельныйЗаработок()
.
Также в нем объявлены три типа данных, СтруктураЗаписи
, СтруктураПоказателей
и СтруктураЗаработка
, которые используются в параметрах этих методов.
// Импорт подсистемы Главная, чтобы к справочнику Организации и НачислениеЗарплаты
// обращаться по неквалифицированному имени.
импорт Главная
// Объявление типов, использующихся в параметрах методов.
структура СтруктураЗаписи
пер Поле1: Строка
пер Поле2: Число
;
структура СтруктураПоказателей
пер Поле1: Строка
пер Поле2: Число
;
структура СтруктураЗ аработка
пер Поле1: Строка
пер Поле2: Число
;
// Регистрирует значения оперативных показателей расчета зарплаты.
абстрактный метод ЗаписатьЗначенияОперативныхПоказателей(
Движения: Массив<СтруктураЗаписи>,
Организация: Организации.Ссылка,
ОперативныеПоказатели: СтруктураПоказателей,
ЗаписыватьДвижения = Ложь
)
// Регистрирует данные о сдельном заработке.
абстрактный метод ЗарегистрироватьСдельныйЗаработок(
Движения: Массив<СтруктураЗаписи>,
Организация: Организации.Ссылка,
СдельныйЗаработок: СтруктураЗаработка
)