Имя: Пароль:
1C
1С v8
Как лучше получить сообщения из под регламентного задания ?
,
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)спасибо
Основная теорема систематики: Новые системы плодят новые проблемы.