| 
    
            
         
         | 
    
    
  | 
Как лучше получить сообщения из под регламентного задания ? | ☑ | ||
|---|---|---|---|---|
| 
    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)спасибо     
         | 
| Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |