Перейти к основному содержимому

Тип встроенного языка, порождаемый элементом проекта вида «КонтрактСервиса»

После того, как вы добавили в проект контракт сервиса и дали ему имя, «1С:Шина» создаст один тип встроенного языка. Имя этого типа совпадает с именем вашего контракта.

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

Тип «имя-контракта-сервиса»

Это абстрактный тип. Он доступен в том же окружении, которое указано в свойстве контракта Окружение: КлиентИСервер, Клиент, Сервер.

Этот тип содержит методы, объявленные в модуле контракта имя-контракта-сервиса.xbsl.

Кроме этого тип имеет статический метод, имя которого зависит от значения свойства контракта Множественный:

  • Истина — имя метода ПолучитьСервисы()
  • Ложь — имя метода ПолучитьСервис()

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

примечание

«1С:Шина» поддерживает механизм подписки на системные события.

Модуль контракта сервиса

В проекте модуль, расширяющий тип имя-контракта-сервиса, называется модулем контракта сервиса. Он доступен в том же окружении, которое указано в свойстве контракта Окружение: КлиентИСервер, Клиент, Сервер.

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

Также в модуле контракта сервиса могут быть объявлены:

Для методов и типов, объявляемых в модуле контракта сервиса, окружение не указывается, оно всегда равно окружению контракта (свойство Окружение).

Например, ниже показан модуль контракта сервиса, в котором объявлены два метода: ЗаписатьЗначенияОперативныхПоказателей() и ЗарегистрироватьСдельныйЗаработок().

Также в нем объявлены три типа данных, СтруктураЗаписи, СтруктураПоказателей и СтруктураЗаработка, которые используются в параметрах этих методов.

// Импорт подсистемы Главная, чтобы к справочнику Организации и НачислениеЗарплаты
// обращаться по неквалифицированному имени.
импорт Главная

// Объявление типов, использующихся в параметрах методов.
структура СтруктураЗаписи
пер Поле1: Строка
пер Поле2: Число
;

структура СтруктураПоказателей
пер Поле1: Строка
пер Поле2: Число
;

структура СтруктураЗаработка
пер Поле1: Строка
пер Поле2: Число
;

// Регистрирует значения оперативных показателей расчета зарплаты.
абстрактный метод ЗаписатьЗначенияОперативныхПоказателей(
Движения: Массив<СтруктураЗаписи>,
Организация: Организации.Ссылка,
ОперативныеПоказатели: СтруктураПоказателей,
ЗаписыватьДвижения = Ложь
)

// Регистрирует данные о сдельном заработке.
абстрактный метод ЗарегистрироватьСдельныйЗаработок(
Движения: Массив<СтруктураЗаписи>,
Организация: Организации.Ссылка,
СдельныйЗаработок: СтруктураЗаработка
)

Примеры