Для начала работы с rest-api яндекс диска из 1С необходимо зарегистрировать приложение в яндексе. Создание приложения подробно описано в статье //infostart.ru/public/853451/.
Официальная документация по загрузке файла на яндекс диск через rest-api.
// Процедура - Загрузить обновить файл на яндекс диске
//
// Параметры:
// token - Строка, токен для авторизации
// path - Путь, по которому следует загрузить файл. Например, /Fbar (Имя папки)/photo.png. Максимальная длина имени загружаемого файла — 255 символов; максимальная длина пути — 32760 символов.
// Если файл необходимо загрузить в корень диска, то следует передать только имя файла в формате /photo.png
// overwrite - булево, признак перезаписи файла. Учитывается, если файл загружается в папку, в которой уже есть файл с таким именем.
// ПутьКФайлуДляЗагрузки - путь к файлу, который необходимо загрузить на диск
//
Процедура ЗагрузитьОбновитьФайлНаЯндексДиске(token, path, overwrite, ПутьКФайлуДляЗагрузки)
//Параметры Get запроса для получения URL {{
path = "disk:" + СтрЗаменить(path,"/","%2F");
overwrite = ?(overwrite, "true", "false");
//Параметры Get запроса для получения URL }}
Заголовки = Новый Соответствие;
Заголовки.Вставить("Content-Type", "application/x-www-form-urlencoded");
Заголовки.Вставить("Authorization","OAuth " + token);
ЗащищенноеСоединение = Новый ЗащищенноеСоединениеOpenSSL(Неопределено, Неопределено);
//Получение URL для загрузки {{
HTTPЗапрос = Новый HTTPЗапрос("/v1/disk/resources/upload?path=" + path + "&overwrite=" + overwrite, Заголовки);
Соединение = Новый HTTPСоединение("cloud-api.yandex.net",,,,,, ЗащищенноеСоединение);
Результат = Соединение.Получить(HTTPЗапрос);// GET запрос для получения URL
//Получение URL для загрузки }}
Если Результат.КодСостояния <> 200 Тогда
ВызватьИсключение "Ошибка при получении URL для загрузки." + Символы.ПС + Результат.ПолучитьТелоКакСтроку();
Иначе
Сообщить("URL для загрузки файла получен успешно." + Символы.ПС + Результат.ПолучитьТелоКакСтроку());
ЧтениеJSON = Новый ЧтениеJSON;
ЧтениеJSON.УстановитьСтроку(Результат.ПолучитьТелоКакСтроку());
СоответствиеРезультат = ПрочитатьJSON(ЧтениеJSON, Истина);
СсылкаДляЗагрузки = СоответствиеРезультат.Получить("href");
СсылкаДляЗагрузки = СтрЗаменить(СсылкаДляЗагрузки, "https://", "");
ИмяСервера = Лев(СсылкаДляЗагрузки, СтрНайти(СсылкаДляЗагрузки, "/") -1);
СсылкаДляЗагрузки = СтрЗаменить(СсылкаДляЗагрузки, ИмяСервера, "");
//Загрузка файла на полученный URL {{
HTTPЗапрос = Новый HTTPЗапрос(СсылкаДляЗагрузки, Заголовки);
HTTPЗапрос.УстановитьТелоИзДвоичныхДанных(Новый ДвоичныеДанные(ПутьКФайлуДляЗагрузки));
Соединение = Новый HTTPСоединение(ИмяСервера,,,,,, ЗащищенноеСоединение);
Результат = Соединение.Записать(HTTPЗапрос);// PUT запрос
//Загрузка файла на полученный URL }}
Если Результат.КодСостояния <> 201 Тогда
ВызватьИсключение Результат.ПолучитьТелоКакСтроку();
Иначе
Сообщить("файл успешно загружен.");
КонецЕсли;
КонецЕсли;
КонецПроцедуры
Данный программный код тестировался на версии платформы 8.3.17.1549.