|
Как лучше получить сообщения из под регламентного задания ? | ☑ | ||
---|---|---|---|---|
0
kovalev_oleg
14.11.12
✎
13:07
|
В реглментном задании обрабатывается некая информация, при выполнении необходимо выдвать служебную информацию, как лучше вывести эту информацию по запросу конкретного пользователя на экран данного пользователя ?
Если можно поделитесь примером |
|||
1
ДенисЧ
14.11.12
✎
13:08
|
писать в РС с указанием откуда и кому.
у пользователя - по кнопке читать и, при необходимости, удалять. |
|||
2
х86
14.11.12
✎
13:09
|
(1)+1
еще как вариант писать в ЖР, отправлять почтой |
|||
3
kovalev_oleg
14.11.12
✎
13:12
|
(1) не подходит, так как возможны сообщения по блокировке данных, если будет блокировка то он и в регистр не запишет.
(2) можно подумать А Что нибудь с объектом СообщениеПользователю() в данном случае сделать можно ? |
|||
4
Лефмихалыч
14.11.12
✎
13:15
|
ФоновоеЗадание.ПолучитьСообщенияПользователю (BackgroundJob.GetUserMessages)
ФоновоеЗадание (BackgroundJob) ПолучитьСообщенияПользователю (GetUserMessages) Синтаксис: ПолучитьСообщенияПользователю(<УдалятьПолученные>) Параметры: <УдалятьПолученные> (необязательный) Тип: Булево. Признак необходимости удаления полученных сообщений. Истина - удалять. Значение по умолчанию: Ложь. Возвращаемое значение: Тип: ФиксированныйМассив. Описание: Получает массив объектов СообщениеПользователю, которые были выведены в процессе работы фонового задания. Получение сообщений может выполняться как в процессе работы задания, так и по его завершении. Доступность: Сервер, толстый клиент, внешнее соединение. |
|||
5
mikecool
14.11.12
✎
13:15
|
СообщениеПользователю() вернет только если есть сторона клиента, в регламенте ее нет
|
|||
6
MrStomak
14.11.12
✎
13:16
|
(5) Как это нет, есть запрос конкретного пользователя
|
|||
7
Лефмихалыч
14.11.12
✎
13:16
|
Глобальный контекст.ПолучитьСообщенияПользователю (Global context.GetUserMessages)
Глобальный контекст (Global context) ПолучитьСообщенияПользователю (GetUserMessages) Синтаксис: ПолучитьСообщенияПользователю(<УдалятьПолученные>) Параметры: <УдалятьПолученные> (необязательный) Тип: Булево. Признак необходимости удаления полученных сообщений из списка. Истина - удалять. Значение по умолчанию: Ложь. Возвращаемое значение: Тип: ФиксированныйМассив. Описание: Получает массив объектов СообщениеПользователю, которые еще не были выведены пользователю. Такое может происходить при работе в регламентных заданиях, на стороне сервера или в Web-сервисах. Доступность: Сервер, толстый клиент, внешнее соединение. См. также: СообщениеПользователю Глобальный контекст, метод Сообщить |
|||
8
MrStomak
14.11.12
✎
13:16
|
Получитьсообщенияпользователю() и через ЗначениеИзСтрокиВнутр ЗначениеВСтрокуВнутр передавай какие угодно данные
|
|||
9
MrStomak
14.11.12
✎
13:18
|
(2),(3) - извращаетесь.
|
|||
10
rs_trade
14.11.12
✎
13:20
|
(9) изврат как раз через сообщения пользователю. самый нормальный вариант писать в журнал.
|
|||
11
MrStomak
14.11.12
✎
13:33
|
(10) Какой нафиг нормальный вариант? Скорость работы журнала несопоставима абсолютно. У меня многопоточные обработки на лету получают данные через сообщения, чтение журнала - это секунды, секуууундыыы. Ну и с каких это пор использование встроенных возможностей по обмену данными является извратом, а использование предназначенного совершенно для другого объекта - нормальной практикой?
|
|||
12
rs_trade
14.11.12
✎
14:06
|
(11) Речь идет о выводе служебных сообщений, а не о получении данных из журнала. Сообщить что что то началось, закончилось, ошибку показать.
|
|||
13
kovalev_oleg
14.11.12
✎
14:20
|
(11) я думаю такой вариант подойдет, только если можно скинь пример сообщения и как его получать, пробуем что -то не получается.
|
|||
14
MrStomak
14.11.12
✎
14:31
|
В общем модуле:
Сообщение = Новый СообщениеПользователю; Сообщение.Текст = ЗначениеВСтрокуВнутр(ПрибыльПоРеализации); Сообщение.Поле = "ПрибыльПоРеализации"; Сообщение.Сообщить(); От сеанса клиента на сервере: Задание=ФоновыеЗадания.НайтиПоУникальномуИдентификатору(айди ); Сообщения=ТекЗадание.ПолучитьСообщенияПользователю(Истина); Если ТипЗнч(Сообщения)=Тип("ФиксированныйМассив") Тогда ПрибыльПоРеализации=ПолучитьТаблицуИзСообщения("ПрибыльПоРеализации",Сообщения); Функция ПолучитьТаблицуИзСообщения(ИмяТаблицы,МассивСообщений) Для Каждого СообщениеПотока Из МассивСообщений Цикл Если СообщениеПотока.Поле=ИмяТаблицы Тогда Возврат ЗначениеИзСтрокиВнутр(СообщениеПотока.Текст); Прервать; КонецЕсли; КонецЦикла; Возврат Неопределено; КонецФункции // ПолучитьТаблицуИзСообщения() |
|||
15
kovalev_oleg
14.11.12
✎
14:36
|
(14)спасибо
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |