Добрый день! Бухгалтерия 3.0.53.38 платформа 8.3.10.2580 файловый вариант БД. Хочу что бы после заполнения отчета РегламентированныйОтчетИмущество, выдавало сообщение пользователю о сумме остаточной стоимости по разделу 2.1. В модуле УправлениеВнеоборотнымиАктивами в процедуре ЗаполнитьОтчетИмуществоФормаОтчета2017Кв4 добавила код:

```1c
    // Заполнение раздела 2.1
    ТЗСуммаОстаточнойСтоимостиРаздела_2_1 = Новый ТаблицаЗначений;
    ТЗСуммаОстаточнойСтоимостиРаздела_2_1.Колонки.Добавить("ОстаточнаяСтоимость");

    Пока Выборка.Следующий() Цикл
    ........
    ........
    Стр = ТЗСуммаОстаточнойСтоимостиРаздела_2_1.Добавить();
    Стр.ОстаточнаяСтоимость = Выборка.ОстаточнаяСтоимостьНа3112;

    КонецЦикла;

    СуммаОСИтого = ТЗСуммаОстаточнойСтоимостиРаздела_2_1.Итог("ОстаточнаяСтоимость");
    Сообщить(НСтр("ru='Остаточная стоимость по Разделу 2.1: '" + СуммаОСИтого));
```

Далее в модуле формы ФормаОтчета2017Кв4 в функцию было добавлено

```1c
    &НаСервере
    Функция ПроверитьВыполнениеЗадания()

    Если ДлительныеОперации.ЗаданиеВыполнено(СтруктураРеквизитовФормы.ИдентификаторЗадания) Тогда

    Задание = ФоновыеЗадания.НайтиПоУникальномуИдентификатору(СтруктураРеквизитовФормы.ИдентификаторЗадания);
    МассивСообщений = Задание.ПолучитьСообщенияПользователю();
    Для Каждого Сообщение Из МассивСообщений Цикл
    Сообщение.Сообщить();
    КонецЦикла;

    ЗагрузитьПодготовленныеДанные();
    Возврат Истина;
    Иначе
    Возврат Ложь;
    КонецЕсли;

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

И сообщение не выводится( Подскажите пожалуйста как можно вывести сообщения фонового задания?
---
А ПроверитьВыполнениеЗадания() - это метод формы отчета? Тогда попробуй так:

```1c
    Для Каждого Сообщение Из МассивСообщений Цикл
    ПроксиСообщение = Новый СообщениеПользователю;
    ПроксиСообщение.ИдентификаторНазначения = УникальныйИдентификатор;
    ПроксиСообщение.Текст = Сообщение.Текст;
    ПроксиСообщение.Сообщить();
    КонецЦикла;
```
---
ФоновоеЗадание.ПолучитьСообщенияПользователю (BackgroundJob.GetUserMessages)
ФоновоеЗадание (BackgroundJob)
ПолучитьСообщенияПользователю (GetUserMessages)

Описание:

Получает массив объектов СообщениеПользователю, которые были выведены в процессе работы фонового задания. Получение сообщений может выполняться как в процессе работы задания, так и по его завершении.
---
Фоновое задание выполняется на сервере - следовательно из процедуры выполняющейся с директивой &НаСервере сообщения выводиться не могут
---
&НаСервере могут выводиться сообщения))
---
освежись https://wonderland.v8.1c.ru/blog/otpravka-uvedomleniy-s-servera-v-klientskoe-prilozhenie/
---
Что "освежись", зачем мне эта информация? Пользователь пишет, что нельзя отправлять сообщения с сервера, хотя это не так.
---
Попробуйте в первом блоке кода заменить Сообщить() на ОбщегоНазначенияКлиентСервер.СообщитьПользователю().
Я вовсе не уверен что Сообщить() подменяется платформой на полноценное "СообщениеПользователю". Оно ведь просто по наследству от толстого клиента осталось.
---
Не получилось, пробывала

```1c
    Сообщение = Новый СообщениеПользователю;
    Сообщение.Текст = "ТУТ";
    Сообщение.Сообщить();
```

Тоже не так, такое ощущение что нет этих сообщений, может они удаляются?
---
Во втором блоке кода тоже нужно заменить на СообщениеПользователю.
Т.е. в фоновом задании нужно выводить через него, и потом на сервере через него же и ретранслировать.
Иначе на клиента не попадут.
Не, не то говорю. Попробуйте при ретрансляции не
Сообщение.Сообщить() по сообщению из массива, а создавать новые сообщения пользователю:
ОбщегоНазначенияКлиентСервер.СообщитьПользователю(Сообщение.Текст)
---
во-первых, это нужно делать в фоновом задании.
во-вторых, проверка выполнения когда происходит? Может задание еще не выполнилось.
---
А выполнять надо &НаКлиенте?
---
На клиенте вставляю код, пишет
Переменная не определена (ФоновыеЗадания)
  Задание = <<?>>ФоновыеЗадания.НайтиПоУникальномуИдентификатору(СтруктураРеквизитовФормы.ИдентификаторЗадания); (Проверка: Тонкий клиент)
---
ПроверитьВыполнениеЗадания() хоть по обработчику ожидания выполняется?
---
не из фонового задания сообщения на форму ожидания выводится
---
Задам вопрос по-другому. В какой момент выполняется ПроверитьВыполнениеЗадания()? По кнопке, что ли?
---
при заполнении...это тестово, чтобы понять выводятся ли сообщения вообще...а так будет на форме отчета...ПроверитьВыполнениеЗадания() не удачное место засунуть этот код))
---
Ничего не понял. У тебя хоть в нужную ветку заходит? Данные загружает, истину возвращает?
Это пробовала?

```1c
    Для Каждого Сообщение Из МассивСообщений Цикл
    ОбщегоНазначенияКлиентСервер.СообщитьПользователю(Сообщение.Текст)
    КонецЦикла;
```
---
ОбщегоНазначенияКлиентСервер.СообщитьПользователю(Сообщение.Текст)

Да это очень помогло! Осталось только это сообщение на форму отчета вывести, а не на форму ожидания
---
А ПроверитьВыполнениеЗадания() - это метод формы отчета? Тогда попробуй так:

```1c
    Для Каждого Сообщение Из МассивСообщений Цикл
    ПроксиСообщение = Новый СообщениеПользователю;
    ПроксиСообщение.ИдентификаторНазначения = УникальныйИдентификатор;
    ПроксиСообщение.Текст = Сообщение.Текст;
    ПроксиСообщение.Сообщить();
    КонецЦикла;
```
---
В фоновом кидаю сообщение:

```1c
    ОбщегоНазначения.СообщитьПользователю("Документы по Контрагенту за период не получены! Обработка не выполнялась.",,"Объект.Контрагент");
```

После выполнения

```1c
    ИначеЕсли ЗаданиеВыполнено(ФоновоеЗадание) тогда

    ОтключитьОбработчикОжидания("ПроверитьПрогресс");

    СообщенияИзФона = ПолучитьСообщенияФоновогоЗадания(ФоновоеЗадание);
    Для Каждого Сообщ Из СообщенияИзФона Цикл
    ОбщегоНазначенияКлиентСервер.СообщитьПользователю(Сообщ.Текст);
    КонецЦикла;
```

ФоновоеЗадание есть - находит по УИДУ.
СообщенияИзФона возвращает фиксированный массив размера 0.

Что не так?
---
Заработало через вызов БСП

```1c
    &НаСервереБезКонтекста
    Функция ПолучитьСообщенияФоновогоЗадания(ФоновоеЗадание)
    Если ФоновоеЗадание <> Неопределено Тогда
    Возврат ДлительныеОперации.СообщенияПользователю(,ФоновоеЗадание);
    КонецЕсли;
    КонецФункции
```

а! и установку
 УстановитьОтключениеБезопасногоРежима(Истина);
в процедуре инициации фоновой обработки иначе валило "Можно запускать обработку..."