Получение сообщений

Для получения сообщений вы можете использовать следующие методы типа СистемаВзаимодействия:

  • ПолучитьНепрочитанныеСообщения() — возвращает непрочитанные сообщения для указанного обсуждения. Количество запрашиваемых сообщений устанавливается параметром ЛимитСообщений, но не может превышать 100 (даже если фактических сообщений больше). Установить последнее прочитанное сообщение в обсуждении можно с помощью метода УстановитьПоследнееПрочитанноеСообщение(). Непрочитанными будут считаться сообщения, которые следуют после указанного сообщения.
  • ПолучитьСообщения() — возвращает сообщения указанного обсуждения. Количество запрашиваемых сообщений устанавливается параметром ЛимитСообщений, но не может превышать 100 (даже если фактических сообщений больше). Сообщения возвращаются в порядке от последних созданных к более ранним. В параметре НачальноеСообщение вы можете указать идентификатор сообщения, тогда будут выбраны сообщения, созданные ранее указанного.
  • НайтиСообщение() — возвращает сообщение системы взаимодействия по его идентификатору. Если сообщение не найдено, будет возвращено Неопределено. Длительность ожидания определяется параметром Таймаут.
  • ОжидатьНовыеСообщения() — если на момент запуска есть непрочитанные сообщения, то возвращается их список. Если сообщений нет, то выполняется ожидание поступления новых. Длительность ожидания определяется параметром Таймаут.

Получение непрочитанных обсуждений и сообщений


// подключение, инициализация, создание сообщения и т.д.
// ...

попытка
    // получаем непрочитанные обсуждения
    пер МассивИдентификаторовНепрочитанныхОбсуждений = СистемаВзаимодействия.ПолучитьНепрочитанныеОбсуждения(10)
   
    // получаем непрочитанные сообщения каждого непрочитанного обсуждения (выдаются в хронологическом порядке)    
    для ИдентификаторНепрочитанногоОбсуждения из МассивИдентификаторовНепрочитанныхОбсуждений
        //Консоль.Записать("Обсуждение # " + ИдентификаторНепрочитанногоОбсуждения)
   
        пер МассивНовыхСообщений = СистемаВзаимодействия.ПолучитьНепрочитанныеСообщения(ИдентификаторНепрочитанногоОбсуждения)
        для Сообщение из МассивНовыхСообщений
            //Консоль.Записать("Сообщение # " + Сообщение.Ид + " : " + Сообщение.Текст)
   
            // устанавливаем прочитанное сообщение как последнее прочитанное
            СистемаВзаимодействия.УстановитьПоследнееПрочитанноеСообщение(ИдентификаторНепрочитанногоОбсуждения, Сообщение.Ид)
        ;
    ;
   
поймать Исключение : ИсключениеСистемыВзаимодействия
    // Обработка исключения
;

Получение сообщения по идентификатору


// подключение, инициализация, создание сообщения и т.д.
// ...

знч ИдСообщения = Ууид{520a34cb-f8cb-4c79-ba78-45b7fdfb080d}
знч Таймаут = 5с

пер Сообщение: СообщениеВзаимодействия?
попытка
    Сообщение = СистемаВзаимодействия.НайтиСообщение(ИдСообщения, Таймаут)
поймать Исключение: ИсключениеСистемыВзаимодействия
    если Исключение это ИсключениеЗапретаДоступаСистемыВзаимодействия
    // Консоль.Записать("Нет доступа к сообщению с ид '%ИдСообщения'")
    иначе если Исключение это ИсключениеТаймаутаСистемыВзаимодействия
    // Консоль.Записать("Время ожидания ответа вышло. Попробуйте снова.")
    иначе если Исключение это ИсключениеНеНайденОбъектСистемыВзаимодействия
    // Консоль.Записать("Сообщение c ид '% ИдСообщения' не найдено")
;