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

  • В информационной базе Офис создайте обработку ЗапросОтчетов.
  • Включите ее в подсистему ТоварныеЗапасы.
  • Создайте два реквизита у этой обработки:

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

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

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

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

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

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

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

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

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

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