В рамках решения задачи по интеграции 1с со сторонней системой нам надо было добавить возможность считывания данных в 1с из excell и Google spreadsheet.
Так как требовалось реализовать оба варианта начали смотреть на возможность сохранения Google-таблицы во временный файл. Получилось пойти по следующему варианты решения:
скачиваем Goolge-таблицу в excell файл;
считываем данные из файла.
Получение данных Google-таблицы в файл:
Функция ПолучитьВременныйФайлИзГуглТаблицы(Знач УРЛФайла) Экспорт
RegExp = Новый COMОбъект("VBScript.RegExp");
УРЛФайла = Прайскоп_ОбщегоНазначенияСервер.РегулярныеВыражения_Заменить(RegExp,УРЛФайла,"\/edit.*?$", "");
ИДФайла = СтрЗаменить(УРЛФайла,"https://docs.google.com/spreadsheets/d/","");
Соединение = Новый HTTPСоединение("docs.google.com", , , , , Истина);
ФайлИд = ПолучитьИмяВременногоФайла("txt");
Соединение.Получить("/feeds/download/spreadsheets/Export?key=" + ИДФайла +"&exportFormat=xlsx&gid=0", ФайлИД);
ФайлОтвета = Новый ТекстовыйДокумент;
ФайлОтвета.Прочитать(ФайлИд, "utf-8");
Текст = ФайлОтвета.ПолучитьТекст();
Символ = Найти(Текст,"A HREF=");
ИтоговыйФайл = ПолучитьИмяВременногоФайла("xlsx");
Если Символ <> 0 Тогда
Остаток = Прав(Текст,Символ-1);
Символ2 = Найти(Остаток,""">");
УРЛ = Лев(Остаток,Символ2-1);
УРЛ =СтрЗаменить(УРЛ,"https://docs.google.com","");
УРЛ = СтрЗаменить(УРЛ,"&","&");
Соединение = Новый HTTPСоединение("docs.google.com", , , , , Истина);
Соединение.Получить(УРЛ, ИтоговыйФайл);
Возврат ИтоговыйФайл;
Иначе
Возврат Неопределено;
КонецЕсли;
КонецФункции // ()
Считывание данных из файла:
После выполнения данной функции у вас есть имя файла xlsx, который вы можете прочитать для его последующего разбора данных.
Напомню что прочитать excell файл можно и без установки excell на сервере:
ТабличныйДокумент = Новый ТабличныйДокумент;
ТабличныйДокумент.Прочитать(ИмяВременногоФайла, СпособЧтенияЗначенийТабличногоДокумента.Значение);