Как реализовать отправку файлов в Skype из 1С?

Программист 1С v8.3 (Управляемые формы) IT и автоматизация бизнеса
← На главную

В современных бизнес-процессах часто возникает задача автоматического уведомления пользователей через мессенджеры. Skype, несмотря на обилие конкурентов, остается важным корпоративным инструментом. Отправка простого текста обычно не вызывает затруднений, но когда дело доходит до передачи документов, отчетов или счетов в формате PDF, разработчики сталкиваются с техническими нюансами Microsoft Bot Framework API. Разберем подробно, как модифицировать стандартную отправку сообщений для поддержки вложений.

Анализ базового механизма отправки

Прежде чем переходить к файлам, проанализируем базовый код для отправки текстового сообщения через API версии v3. Для взаимодействия используется объект HTTPСоединение и метод POST к адресу activities. Основной момент здесь — получение авторизационного токена Bearer, который имеет ограниченный срок жизни (обычно 1 час или 3600 секунд). Если ваш бот перестает работать через час, причина кроется в необходимости обновления этого токена.

Рассмотрим структуру стандартного запроса, от которой мы будем отталкиваться:


ЗаголовкиHTTP = Новый Соответствие; 
ЗаголовкиHTTP.Вставить("Content-Type", "application/json"); 
ЗаголовкиHTTP.Вставить("Authorization", "Bearer " + Токен); 

JSONСтруктура = Новый Структура; 
JSONСтруктура.Вставить("type", "message"); 
JSONСтруктура.Вставить("text", ТекстСообщения); 

HTTPЗапрос = Новый HTTPЗапрос("apis/v3/conversations/" + LoginSkype + "/activities", ЗаголовкиHTTP); 

Структура вложений в API Skype

Для реализации передачи файлов нам необходимо дополнить JSONСтруктура новым свойством attachments. Это массив объектов, так как одно сообщение может содержать несколько файлов. Каждый объект вложения должен описывать тип контента, его местонахождение и имя.

Выясним, какие поля являются обязательными для объекта вложения:

Подготовка файла к отправке

Проанализируем алгоритм подготовки данных в 1С. Поскольку мы не можем передать файл напрямую, нам нужно реализовать промежуточный этап. Рассмотрим шаги:

  1. Программно выгружаем нужный документ из 1С во временный файл на диске, используя ПолучитьИмяВременногоФайла.
  2. Читаем файл в объект ДвоичныеДанные.
  3. Отправляем этот файл на свой промежуточный сервер (например, через HTTPСоединение методом PUT или POST), чтобы получить публичную ссылку.
  4. Полученную ссылку подставляем в структуру сообщения для Skype.

Программная реализация формирования JSON с файлом

Теперь разберем, как должен выглядеть код формирования структуры сообщения с вложением в 1С. Мы создадим массив вложений и добавим в него структуру, описывающую наш файл.


// Подготовим массив вложений
МассивВложений = Новый Массив;

Вложение = Новый Структура;
Вложение.Вставить("contentType", "application/pdf"); // Указываем тип файла
Вложение.Вставить("contentUrl", "https://yourserver.com/files/invoice123.pdf"); // Ссылка на файл
Вложение.Вставить("name", "Счет_на_оплату.pdf"); // Имя файла для пользователя

МассивВложений.Добавить(Вложение);

// Собираем общую структуру сообщения
JSONСтруктура = Новый Структура;
JSONСтруктура.Вставить("type", "message");
JSONСтруктура.Вставить("text", "Направляем вам документы по заказу:"); // Можно добавить текст к файлу
JSONСтруктура.Вставить("attachments", МассивВложений);

// Сериализация в JSON
ЗаписьJSON = Новый ЗаписьJSON;
ЗаписьJSON.УстановитьСтроку();
ЗаписатьJSON(ЗаписьJSON, JSONСтруктура);
ТелоЗапросаJSON = ЗаписьJSON.Закрыть();

Использование карточек (Cards) для улучшения интерфейса

Если мы хотим, чтобы файл выглядел не просто как ссылка, а как красивая карточка с кнопкой скачивания или превью, проанализируем использование HeroCard. В этом случае contentType вложения меняется на application/vnd.microsoft.card.hero, а в поле content передается объект, содержащий заголовок, текст и массив кнопок buttons.

Это особенно полезно для отправки изображений, так как Skype сможет сгенерировать миниатюру (превью) прямо в окне диалога.

Важные ограничения и технические нюансы

Разберем основные моменты, которые могут вызвать ошибки при реализации:

Проанализировав ситуацию, можно сделать вывод: ключ к успешной отправке файлов из 1С в Skype — это правильное сочетание предварительной загрузки файла на веб-сервер и корректное заполнение массива attachments в JSON-пакете. Следуя приведенной структуре, вы сможете реализовать полноценный обмен документами в автоматическом режиме.

← На главную