понедельник, 30 сентября 2019 г.

Сообщения пользователю, из которого исключены сообщения БСП


// Возвращает массив сообщений пользователю, из которого исключены служебные сообщения БСП,
// используемые для отображения прогресса выполнения фонового задания.
//
// Параметры:
// УдалятьПолученные - Булево - Если Истина, то сообщения будут удалены из очереди после получения.
// ИдентификаторЗадания - УникальныйИдентификатор, Неопределено - Идентификатор фонового задания,
//  сообшения из которого получать. Если не указан, то возвращает сообщения из основного сеанса.
//
// Возвращаемое значение:
// ФиксированныйМассив - Массив сообщений пользователю.
//
Функция ПолучитьСообщенияПользователюБезСлужебных(УдалятьПолученные = Ложь, ИдентификаторЗадания = Неопределено) Экспорт

 Если ЗначениеЗаполнено(ИдентификаторЗадания) Тогда

  ФоновоеЗадание = ФоновыеЗадания.НайтиПоУникальномуИдентификатору(ИдентификаторЗадания);

  Если ФоновоеЗадание <> Неопределено Тогда
   СообщенияПользователю = ФоновоеЗадание.ПолучитьСообщенияПользователю(УдалятьПолученные);
  КонецЕсли;
 Иначе
  СообщенияПользователю = ПолучитьСообщенияПользователю(УдалятьПолученные);
 КонецЕсли;

 Результат = Новый Массив;

 Для Каждого СообщениеПользователю Из СообщенияПользователю Цикл
  Если СтрНачинаетсяС(СообщениеПользователю.Текст, "{СтандартныеПодсистемы.ДлительныеОперации}") Тогда
   // Это служебное сообщение БСП, его исключаем.
   Продолжить;
  КонецЕсли;
  Результат.Добавить(СообщениеПользователю);
 КонецЦикла;

 Возврат Новый ФиксированныйМассив(Результат);

КонецФункции

Комментариев нет:

Отправить комментарий