Отправка сообщения без тела из информационной базы «Офис»
-
В информационной базе Офис создайте обработку ЗапросОтчетов.
-
Включите ее в подсистему ТоварныеЗапасы.
-
Создайте два реквизита у этой обработки:
- ВсеМагазины типа
Булево
, - ВыбранныйМагазин типа
СправочникСсылка.Подразделения
.
- ВсеМагазины типа
-
Создайте форму обработки.
-
Поместите реквизиты в форму.
-
Создайте команду ОтправитьЗапрос и разместите ее в форме:
-
Напишите код обработчика команды:
&НаКлиенте
Процедура ОтправитьЗапрос(Команда)
ОтправитьЗапросНаСервере();
КонецПроцедуры
&НаСервере
Процедура ОтправитьЗапросНаСервере()
Сообщение = СервисыИнтеграции.СервисОфиса.СоздатьСообщение();
// Для широковещательных сообщений код получателя должен оставаться пустым
Если Не Объект.ВсеМагазины Тогда
Сообщение.КодПолучателя = Объект.ВыбранныйМагазин.Код;
КонецЕсли;
Сообщение.Параметры.Вставить("ТипСообщения", "ЗапросОстатков");
СервисыИнтеграции.СервисОфиса.СетьМагазинов_ИзОфиса.ОтправитьСообщение(Сообщение);
КонецПроцедуры
С помощью метода СоздатьСообщение()
создается экземпляр сообщения.
В свойстве КодПолучателя
указывается код информационной системы, именно этому участнику обмена «1С:Шина» будет доставлять сообщение. Важно, что код задается администратором сервера, поэтому в вашем примере коды записей справочника Подразделения должны совпадать с кодами участников в «1С:Шине».
Если свойство КодПолучателя
не задано, то сообщение считается широковещательным и доставляется всем доступным получателям в соответствии со схемой процесса интеграции.
Подробнее об этом и других свойствах сообщений можно прочитать здесь.
Если требуется отправить сообщение нескольким получателям, но не всем, то в свойстве КодПолучателя должны быть указаны коды соответствующих информационных систем через запятую. Если при этом часть кодов будут указаны неверно, то такие неправильные коды игнорируются.
Затем создается параметр сообщения с именем ТипСообщения и в качестве значения ему устанавливается строка «ЗапросОстатков».
В простых случаях факт получения сообщения сам по себе может выступать в качестве триггера каких-то действий, тогда установка никаких дополнительных параметров не требуется. Однако при реализации реальных прикладных задач в один и тот же канал могут отправляться сообщения разных типов, а проверяя значение этого параметра на стороне получателя, вы сможете отличить такие сообщения друг от друга. Также при необходимости в параметрах сообщения можно передавать и другую полезную нагрузку, в качестве которой может выступать практически любое текстовое содержимое.
Далее с помощью метода ОтправитьСообщение()
сообщение передается для отправки.
Если метод ОтправитьСообщение()
вызван внутри транзакции, то реальная отправка сообщения произойдет только после фиксации этой транзакции.