Была поставлена задача загружать в 1С google таблицу и постоянно обновлять ее в 1с (каждые 5 минут).
Таблица примерно такого вида:
В ссылке на google таблицу нас интересуют две части.
1 часть - это id самой таблицы
2 часть - это gid листа (если лист номер1, тогда gid=0)
Делаем запрос из 1С к этому адресу, в конце добавляем /export?format=csv
АдресРесурса = "docs.google.com";
АдресНужнойСтраницы = "/spreadsheets/d/"+ТаблицаГугл+ "/export?format=csv&gid=" + ЛистГугл;
Соединение = Новый HTTPСоединение(АдресРесурса,,,,,,Новый ЗащищенноеСоединениеOpenSSL());
Запрос = Новый HTTPЗапрос(АдресНужнойСтраницы);
Ответ = Соединение.Получить(Запрос);
Этот запрос вернет Ответ.КодСостояния = 307 (HTTP код перенаправления 307 Temporary Redirect означает, что запрошенный ресурс был временно перемещён в URL-адрес, указанный в заголовке Location)
Делаем следующий запрос по адресу из заголовка
Location = Ответ.Заголовки.Получить("Location");
Location = СтрЗаменить(Location,"https://","");
НомЕкс = СтрНайти(Location,"/export/");
АдресРесурса = Лев(Location,НомЕкс-1);
АдресНужнойСтраницы = Сред(Location,НомЕкс);
Соединение = Новый HTTPСоединение(АдресРесурса,,,,,,Новый ЗащищенноеСоединениеOpenSSL());
Запрос = Новый HTTPЗапрос(АдресНужнойСтраницы);
Ответ = Соединение.Получить(Запрос);
ВходящаяСтрока = Ответ.ПолучитьТелоКакСтроку();
Получаем строку в формате csv с разделителем "," Поменять разделитель на ";" не получится. Потому могут возникнуть трудности при разборе строки csv, если в google таблице были использованы запятые.
Написал небольшую обработку, где я получаю данные и парсю их в таблицу значений.
Тестировал:
- 1С:Комплексная автоматизация 2 (2.4.13.209)
- Платформа 1С:Предприятие 8.3 (8.3.19.1467)