Создание сообщения

Чтобы создать сообщение, воспользуйтесь методом СистемаВзаимодействия.СоздатьСообщение(). Необходимые параметры:
ИдентификаторОбсуждения
Идентификатор обсуждения типа Ууид, в которое нужно отправить сообщение
Получатели
Идентификатор пользователя типа Ууид (или массив таких идентификаторов) системы взаимодействия, которому адресовано сообщение
ТекстСообщения
Текст сообщения типа Строка, который отправляется в обсуждение
Вложения
Массив вложений типа ВложениеВзаимодействия, которые нужно отправить в обсуждение

В ответ будет возвращен идентификатор этого сообщения на сервере типа Ууид.

Отправка сообщения под служебным пользователем


@ВПодсистеме
структура Сообщение
    знч Текст: Строка
    знч Получатель: Пользователи.Ссылка
    
    конструктор(Текст, Получатель)
;

@ВПроекте
метод ОтправитьУведомление()

    знч ИдОперацииДляЗаданий = новый Ууид()
    
    знч Получатель = Пользователи.НайтиПоКоду("IvanovII")
    знч Сообщение = новый Сообщение("Уведомление через сообщение", Получатель)
    
    ЗапланированныеЗадания.Создать(&ОтправитьСообщение, Сообщение)
            .Настроить(Ключ = "СообщениеСВ_" + ИдОперацииДляЗаданий, ПовторыПриОшибке = СтратегияПовтора.Инкремент(3, 10с, 20с))
            .Запланировать()
;

@ВПодсистеме
метод ОтправитьСообщение(Сообщение: Сообщение)
    // установим пользователя, от которого будет отправлять сообщения
    знч БотДляОтправки = Пользователи.НайтиПоКоду("Bot")
    исп СистемаВзаимодействия.УстановитьТекущегоПользователяВзаимодействия(БотДляОтправки)
    
    // Фиктивное получение ид обсуждения в рамках примера
    знч ИдентификаторОбсуждения: Ууид = ПолучитьИдентификаторОбсужденияКаналаУведомлений(Сообщение.Получатель)
    знч ИдПользователя = СистемаВзаимодействия.ПолучитьИдПользователяВзаимодействия(Сообщение.Получатель)
    
    СистемаВзаимодействия.СоздатьСообщение(ИдентификаторОбсуждения, ИдПользователя, Сообщение.Текст)
;
           

Создание сообщения, сообщения с вложением


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

знч ИдПользователяСВ = Ууид{520a34cb-f8cb-4c79-ba78-45b7fdfb080a}

// создание сообщения c вложением
попытка

    // загрузим вложение на сервер взаимодействия
    знч Файл = новый Файл("C:/test/price.xlsx")
    знч Вложение = СистемаВзаимодействия.ЗагрузитьВложение(
            Содержимое = Файл.ОткрытьПотокЧтения(),
            Имя = "price.xlsx",
            ТипСодержимого = "application/octet-stream"
    )

    пер МассивПолучателейСообщения : Массив<Ууид> = новый Массив<Ууид>()
    МассивПолучателейСообщения.Добавить(ИдПользователяСВ)

    // создадим сообщение с вложением, сообщения с вложениям можно создавать без текста
    ИдСообщения = СистемаВзаимодействия.СоздатьСообщение(
        ИдОбсуждения = ИдОбсуждения,
        Получатели = МассивПолучателейСообщения,
        Вложения = [Вложение]
    )

    // получим только что отправленное сообщение
    знч Сообщение = СистемаВзаимодействия.НайтиСообщение(ИдСообщения)

    знч ВходящееВложение = Сообщение.Вложения[0]
    знч ИдВложения = ВходящееВложение.Ид // 1aee7439-6268-4f01-a4e3-432ac0dd79f4
    знч ИмяФайла = ВходящееВложение.Имя // price.xlsx
    знч РазмерФайла = ВходящееВложение.Размер // 1024(в байтах)
    знч Содержимое: Байты = ВходящееВложение.ПолучитьБайты()

    // сохраним вложение на компьютер
    пер НовыйФайл = новый Файл("C:/test/price_new.xlsx")
    исп ПотокЗаписи = НовыйФайл.ОткрытьПотокЗаписи()
    ПотокЗаписи.Записать(Содержимое)
    ПотокЗаписи.Закрыть()
поймать Исключение : ИсключениеСистемыВзаимодействия
    // Обработка исключения
;

//
// ... можно создать еще сообщения ...
//