Важно: После нажатия кнопки "Create" сохраните Client ID и Client Secret!
<!DOCTYPE HTML>
<html>
<head>
<style type="text/css">
.danstyle {}
.danstyle label {
display: inline-block;
width: 100px;
}
.danstyle input {
width: 500px;
}
</style>
</head>
<body>
<form class="danstyle" target="_blank" action="https://accounts.google.com/o/oauth2/v2/auth" enctype="application/x-www-form-urlencoded" method="post">
<p><label>scope:</label><input type="text" name="scope" value="https://www.googleapis.com/auth/calendar.settings.readonly https://www.googleapis.com/auth/drive.file https://www.googleapis.com/auth/drive.appdata"></p>
<p><label>client_id:</label><input type="text" name="client_id" value=""></p>
<input type="hidden" name="redirect_uri" value="http://localhost:13579">
<input type="hidden" name="response_type" value="code">
<input type="hidden" name="prompt" value="select_account">
<p><input style=width:80px; type="submit" value="Get code"></p>
</form>
<form class="danstyle" action="https://oauth2.googleapis.com/token" enctype="application/x-www-form-urlencoded" method="post">
<p><label>code:</label><input style="" type="text" name="code"></p>
<p><label>client_id:</label><input type="text" name="client_id" value=""></p>
<p><label>client_secret:</label><input type="text" name="client_secret" value=""></p>
<input type="hidden" name="redirect_uri" value="http://localhost:13579">
<input type="hidden" name="grant_type" value="authorization_code">
<p><input style=width:80px; type="submit" value="Get tokens"></p>
</form>
</body>
</html>Функция ПолучитьТЗ(МассивСтрок)
Если МассивСтрок.Количество() = 0 Тогда
Возврат Новый ТаблицаЗначений;
КонецЕсли;
ТЗ = Новый ТаблицаЗначений;
Заголовки = МассивСтрок[0];
// Создаем колонки на основе заголовков
Для Каждого Заголовок Из Заголовки Цикл
ИмяКолонки = СтрЗаменить(Заголовок, "-", "");
ТЗ.Колонки.Добавить(ИмяКолонки, Новый ОписаниеТипов("Строка", , Новый КвалификаторыСтроки(50)));
КонецЦикла;
// Добавляем строки с данными (пропускаем первую строку с заголовками)
Для i = 1 По МассивСтрок.Количество() - 1 Цикл
СтрокаДанных = МассивСтрок[i];
// Пропускаем пустые строки (где первый элемент пустой)
Если СтрокаДанных.Количество() > 0 И СтрокаДанных[0] = "" Тогда
Продолжить;
КонецЕсли;
НоваяСтрока = ТЗ.Добавить();
// Заполняем все доступные колонки
Для j = 0 По ТЗ.Колонки.Количество() - 1 Цикл
Если j < СтрокаДанных.Количество() Тогда
НоваяСтрока[j] = СтрокаДанных[j];
КонецЕсли;
КонецЦикла;
КонецЦикла;
Возврат ТЗ;
КонецФункцииДля production-решений рекомендуется оптимизировать код функции для работы с различными структурами таблиц.