Вывести сообщение или уведомление во время выполнения регламентного задания

1. 1c_uZer 01.09.18 21:02 Сейчас в теме
Здравствуйте! Такой вопрос, сделал регламентное задание, мне нужно реализовать вывод сообщения во время его выполнения, нашел метод ПолучитьСообщенияПользователю(). Но не могу понять как с ним работать...подскажите кто сталкивался?

Код модуля:

&НаСервере
Процедура ВыборкаДокументовБезРегистрации() Экспорт
	
Сообщение = Новый СообщениеПользователю;

Сообщение.Текст = "Ошибка тестовая";

Сообщение.Сообщить();


Ид = РегламентныеЗадания.ПолучитьРегламентныеЗадания()[68].УникальныйИдентификатор;

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

Запрос = Новый Запрос();

Запрос.Текст = 
	
"ВЫБРАТЬ
|	ВходящиеДокументы.Ссылка,
|	ВходящиеДокументы.РегистрационныйНомер
|ИЗ
|	Справочник.ВходящиеДокументы КАК ВходящиеДокументы";

Результат = Запрос.Выполнить().Выгрузить();

Выборка = Запрос.Выполнить().Выбрать();

Пока Выборка.Следующий() Цикл
	
	Если НЕ ЗначениеЗаполнено(Выборка.РегистрационныйНомер) Тогда
		
		Сообщения = РЗ.ПолучитьСообщенияПользователю();// вот тут по идее должно быть сообщение, Сообщить() в регламентном задании соответственно не работает....как тут быть????
			
	КонецЕсли;
				
КонецЦикла;
	
КонецПроцедуры
Показать
По теме из базы знаний
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. Doreng 27 01.09.18 23:53 Сейчас в теме
(1)
ПолучитьСообщенияПользователю

Для начала неплохо бы определиться какому пользователю Вы хотите сообщить что то, потом помня, что сервер про клиент ничего не знает, понять что нужно клиентом цепляться к серверу и получать сообщение, если оно есть на сервере, тоесть сохранять сообщения и получать их с клиента.
5. 1c_uZer 02.09.18 07:23 Сейчас в теме
(2) пользователю, который работает с базой в данный момент. Я понял, что без клиента мы сообщение не увидим, так как его некому показывать...соответственно без клиента нам не обойтись выходит так?
7. dandykry 10 03.09.18 09:07 Сейчас в теме
(1) Если конфигурация на БСП то велосипед изобретать не нужно.

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



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


// Получает сообщения пользователю, отфильтровывает служебные сообщения о состоянии длительной операции.
// 
// Параметры:
//  УдалятьПолученные - Булево - Признак необходимости удаления полученных сообщений.
//  ИдентификаторЗадания - УникальныйИдентификатор - идентификатор фонового задания.
// 
// Возвращаемое значение:
//  Массив - ФиксированныйМассив - Массив объектов СообщениеПользователю, которые были сформированы в
//  фоновом задании.
Функция СообщенияПользователю(УдалятьПолученные = Ложь, ИдентификаторЗадания = Неопределено) Экспорт
Показать
Aleskey_K; 1c_uZer; +2 Ответить
3. Xershi 1496 02.09.18 07:16 Сейчас в теме
Делать регистр. Регламентным заданием туда писать инфу. Затем обработчик ожидания.
Либо ставить сервер взаимодействия.
Boneman; 1c_uZer; +2 Ответить
4. 1c_uZer 02.09.18 07:21 Сейчас в теме
(3)
заданием туда писать инфу. Затем обработчик ожидания.
Либо ставить сервер взаимодействия.


спасибо, буду пробовать через регистр)
10. Boneman 299 05.09.18 12:27 Сейчас в теме
(3) Сервер взаимодействия, крутая вещь. Мы тоже затестили уже.
Правда пока уж черезчур ново
6. Fox-trot 158 02.09.18 18:08 Сейчас в теме
а если не один, кто тогда получатель?
8. Rain88 376 05.09.18 11:43 Сейчас в теме
Чтобы определиться с решением задачи, думаю сначала надо ответить на несколько вопросов: Что делает регламентное задание? Что происходит по итогу его выполнения? Для чего пользователю показывать сообщение? Если это регламентное задание, то оно выполняется само, где в этот момент должен находиться пользователь, как он должен увидеть это сообщение? Может быть процедуру надо выполнять не через регламентное задание?
9. 1c_uZer 05.09.18 12:07 Сейчас в теме
(8) У нас есть запрос, из него выбираются документы. данные в регистр у меня пишутся. но мне нужно чтобы у меня выводилось после этого сообщение типо "Имеется незарегистрированный документ" + ссылка. По регламентному заданию регистр у меня обновляется...а вот как вывести сообщение в фоновом задании я не знаю к сожалению.
11. Boneman 299 05.09.18 12:34 Сейчас в теме
(9)
а вот как вывести сообщение в фоновом задании я не знаю к сожалению

так регламентное или фоновое ?
Регламентное - стартует и выполняется само, по расписанию, в принципе без участия пользователя.
А вот фоновое, схоже с регламентным, но запустить его можно из сеанса, для выполнения чего либо, чтобы не тормозить сеанс. Вот в фоновом - никаких регистров городить не нужно, достаточно поместить результат работы во временное хранилище, и получить на клиенте. Так все отчеты выполняются.
А если это именно регламентное, тогда да, какой то регистр городить надо.
13. 1c_uZer 05.09.18 12:43 Сейчас в теме
(11) по разному пробовал, вообще изначально хотелось бы чтобы было регламентное...сделал его предопределенным...в регистр данные пишет...видимо просто надо будет выводить измерения в виде сообщения через обработчик. просто получается что надо будет его определить в модуле управляемого приложения...я так понимаю только там он сможет отработать при запуске сеанса и повторяться через определенное время?
14. Boneman 299 05.09.18 13:04 Сейчас в теме
(13) ну всем то пользователям оно не нужно.
Можно просто общую форму сделать, или обработку - где можно будет результаты смотреть.
Да или вообще, данные то уже будут готовые в базе, просто отчет сделать и все. Кому нужно - дать на него права.
15. 1c_uZer 05.09.18 13:06 Сейчас в теме
(14)
просто отчет сделать и все. Кому нужно - дать на него права.

В том то вся и фишка, что требуется напоминание) по отчету да, было бы все проще=) но его же надо формировать)
17. Boneman 299 05.09.18 13:07 Сейчас в теме
(15)
В том то вся и фишка, что требуется напоминание

обычно из регламентных задач, служебные оповещения тупо на почту шлют ))
18. Rain88 376 05.09.18 13:46 Сейчас в теме
(15) В унф знаю есть такой механизм, как напоминания, создаётся для документов событий, записывается в определенный регистр сведений и потом напоминалка выводится для указанного пользователя. Может быть рассмотреть и взять за основу этот вариант? Я правда не знаю, в бсп это включено или нет.
19. Rain88 376 05.09.18 13:49 Сейчас в теме
(15) да и вообще, думаю все же можно обойтись просто обработчиком ожидания и не городить никаких дополнительных регистров и регламентных заданий.
20. Rain88 376 05.09.18 15:28 Сейчас в теме
(15) Вот тут можно посмотреть информацию по напоминаниям, они включены в БСП.
16. 1c_uZer 05.09.18 13:07 Сейчас в теме
(14) это конечно довольно быстро но вот не все хотят совершать лишние движения)))
Оставьте свое сообщение

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