Сообщение пользователю и фоновое задание

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

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

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

КонецЦикла;

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

Показать


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

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

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

Показать


И сообщение не выводится( Подскажите пожалуйста как можно вывести сообщения фонового задания?
По теме из базы знаний
Найденные решения
16. herfis 513 26.10.17 11:20 Сейчас в теме
(15) А ПроверитьВыполнениеЗадания() - это метод формы отчета? Тогда попробуй так:

Для Каждого Сообщение Из МассивСообщений Цикл
     ПроксиСообщение = Новый СообщениеПользователю;
     ПроксиСообщение.ИдентификаторНазначения = УникальныйИдентификатор;
     ПроксиСообщение.Текст = Сообщение.Текст;
     ПроксиСообщение.Сообщить();
КонецЦикла;
Aleksey_1C; NatalkaBal; +2 Ответить
Остальные ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
4. mickey.1cx 402 26.10.17 09:13 Сейчас в теме
(1)

ФоновоеЗадание.ПолучитьСообщенияПользователю (BackgroundJob.GetUserMessages)
ФоновоеЗадание (BackgroundJob)
ПолучитьСообщенияПользователю (GetUserMessages)

Описание:

Получает массив объектов СообщениеПользователю, которые были выведены в процессе работы фонового задания. Получение сообщений может выполняться как в процессе работы задания, так и по его завершении.
2. Zoomby 26.10.17 09:02 Сейчас в теме
Фоновое задание выполняется на сервере - следовательно из процедуры выполняющейся с директивой &НаСервере сообщения выводиться не могут
17. Bepcuc 1 03.02.24 00:03 Сейчас в теме
(2)&НаСервере могут выводиться сообщения))
19. Bepcuc 1 04.02.24 17:42 Сейчас в теме
(18) Что "освежись", зачем мне эта информация? Пользователь пишет, что нельзя отправлять сообщения с сервера, хотя это не так.
Риник; +1 Ответить
3. herfis 513 26.10.17 09:12 Сейчас в теме
Попробуйте в первом блоке кода заменить Сообщить() на ОбщегоНазначенияКлиентСервер.СообщитьПользователю().
Я вовсе не уверен что Сообщить() подменяется платформой на полноценное "СообщениеПользователю". Оно ведь просто по наследству от толстого клиента осталось.
6. NatalkaBal 29 26.10.17 09:25 Сейчас в теме
(3)Не получилось, пробывала
Сообщение = Новый СообщениеПользователю;
Сообщение.Текст = "ТУТ";
Сообщение.Сообщить();

Тоже не так, такое ощущение что нет этих сообщений, может они удаляются?
8. herfis 513 26.10.17 09:28 Сейчас в теме
(6) Во втором блоке кода тоже нужно заменить на СообщениеПользователю.
Т.е. в фоновом задании нужно выводить через него, и потом на сервере через него же и ретранслировать.
Иначе на клиента не попадут.
Не, не то говорю. Попробуйте при ретрансляции не
Сообщение.Сообщить() по сообщению из массива, а создавать новые сообщения пользователю:
ОбщегоНазначенияКлиентСервер.СообщитьПользователю(Сообщение.Текст)
9. spacecraft 26.10.17 09:29 Сейчас в теме
(6)
во-первых, это нужно делать в фоновом задании.
во-вторых, проверка выполнения когда происходит? Может задание еще не выполнилось.
5. NatalkaBal 29 26.10.17 09:16 Сейчас в теме
А выполнять надо &НаКлиенте?
7. NatalkaBal 29 26.10.17 09:26 Сейчас в теме
На клиенте вставляю код, пишет
Переменная не определена (ФоновыеЗадания)
Задание = <<?>>ФоновыеЗадания.НайтиПоУникальномуИдентификатору(СтруктураРеквизитовФормы.ИдентификаторЗадания); (Проверка: Тонкий клиент)
10. herfis 513 26.10.17 09:32 Сейчас в теме
ПроверитьВыполнениеЗадания() хоть по обработчику ожидания выполняется?
11. NatalkaBal 29 26.10.17 09:54 Сейчас в теме
(10)не из фонового задания сообщения на форму ожидания выводится
12. herfis 513 26.10.17 10:02 Сейчас в теме
(11) Задам вопрос по-другому. В какой момент выполняется ПроверитьВыполнениеЗадания()? По кнопке, что ли?
13. NatalkaBal 29 26.10.17 10:14 Сейчас в теме
(12)при заполнении...это тестово, чтобы понять выводятся ли сообщения вообще...а так будет на форме отчета...ПроверитьВыполнениеЗадания() не удачное место засунуть этот код))
14. herfis 513 26.10.17 10:25 Сейчас в теме
(13) Ничего не понял. У тебя хоть в нужную ветку заходит? Данные загружает, истину возвращает?
Это пробовала?
Для Каждого Сообщение Из МассивСообщений Цикл
     ОбщегоНазначенияКлиентСервер.СообщитьПользователю(Сообщение.Текст) 
КонецЦикла;
NatalkaBal; +1 Ответить
15. NatalkaBal 29 26.10.17 10:34 Сейчас в теме
(14)
ОбщегоНазначенияКлиентСервер.СообщитьПользователю(Сообщение.Текст)


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

Для Каждого Сообщение Из МассивСообщений Цикл
     ПроксиСообщение = Новый СообщениеПользователю;
     ПроксиСообщение.ИдентификаторНазначения = УникальныйИдентификатор;
     ПроксиСообщение.Текст = Сообщение.Текст;
     ПроксиСообщение.Сообщить();
КонецЦикла;
Aleksey_1C; NatalkaBal; +2 Ответить
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот