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

Отправка сообщения без тела из информационной базы «Офис»

  • В информационной базе Офис создайте обработку ЗапросОтчетов.

  • Включите ее в подсистему ТоварныеЗапасы.

  • Создайте два реквизита у этой обработки:

    • ВсеМагазины типа Булево,
    • ВыбранныйМагазин типа СправочникСсылка.Подразделения.
  • Создайте форму обработки.

  • Поместите реквизиты в форму.

  • Создайте команду ОтправитьЗапрос и разместите ее в форме:

  • Напишите код обработчика команды:

    &НаКлиенте
    Процедура ОтправитьЗапрос(Команда)

    ОтправитьЗапросНаСервере();

    КонецПроцедуры

    &НаСервере
    Процедура ОтправитьЗапросНаСервере()

    Сообщение = СервисыИнтеграции.СервисОфиса.СоздатьСообщение();

    // Для широковещательных сообщений код получателя должен оставаться пустым
    Если Не Объект.ВсеМагазины Тогда
    Сообщение.КодПолучателя = Объект.ВыбранныйМагазин.Код;

    КонецЕсли;

    Сообщение.Параметры.Вставить("ТипСообщения", "ЗапросОстатков");
    СервисыИнтеграции.СервисОфиса.СетьМагазинов_ИзОфиса.ОтправитьСообщение(Сообщение);

    КонецПроцедуры

С помощью метода СоздатьСообщение() создается экземпляр сообщения.

В свойстве КодПолучателя указывается код информационной системы, именно этому участнику обмена «1С:Шина» будет доставлять сообщение. Важно, что код задается администратором сервера, поэтому в вашем примере коды записей справочника Подразделения должны совпадать с кодами участников в «1С:Шине».

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

совет

Подробнее об этом и других свойствах сообщений можно прочитать здесь.

примечание

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

Затем создается параметр сообщения с именем ТипСообщения и в качестве значения ему устанавливается строка «ЗапросОстатков».

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

Далее с помощью метода ОтправитьСообщение() сообщение передается для отправки.

дополнительно

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