1С 8.3 Загрузка Google Sheets в Таблицу значений
Данные > Примеры кода 1С > 1С 8.3 Excel
Перейти в раздел примеры кода 1С 8.3:
Google Sheets API: https://developers.google.com/sheets/api/reference/rest?hl=ru
Get-запрос к сервису Google Sheets в 1С 8.3:
Функция ЗапросHTTPGoogleSheets(TableID, SheetName, ApiKey)
АдресРесурса = "sheets.googleapis.com";
АдресНужнойСтраницы = "/v4/spreadsheets/"+TableID+"/values/"+SheetName+"?key="+ApiKey;
СоединениеHTTP = Новый HTTPСоединениеHTTP(АдресРесурса,,,,,,Новый ЗащищенноеСоединениеHTTPOpenSSL());
ЗапросHTTP = Новый HTTPЗапрос(АдресНужнойСтраницы);
РезультатЗапроса = СоединениеHTTP.Получить(ЗапросHTTP);
Если РезультатЗапроса.КодСостояния = 200 Тогда
СоединениеHTTP = Новый HTTPСоединениеHTTP(АдресРесурса,,,,,,Новый ЗащищенноеСоединениеHTTPOpenSSL());
ЗапросHTTP = Новый HTTPЗапрос(АдресНужнойСтраницы);
РезультатЗапроса = СоединениеHTTP.Получить(ЗапросHTTP);
ТекстЗапроса = РезультатЗапроса.ПолучитьТелоКакСтроку();
Возврат ТекстЗапроса;
Иначе
Сообщение = Новый СообщениеПользователю;
Сообщение.Текст = "Не выполнено. Код ответа: " + РезультатЗапроса.КодСостояния;
Сообщение.Сообщить();
Возврат "";
КонецЕсли;
КонецФункции
СтрокаJSON = ЗапросHTTPGoogleSheets("1KRVSRJZOP4h3VJZcNM0de7rt5q", "Лист1", "ZpX921bG75");
АдресРесурса = "sheets.googleapis.com";
АдресНужнойСтраницы = "/v4/spreadsheets/"+TableID+"/values/"+SheetName+"?key="+ApiKey;
СоединениеHTTP = Новый HTTPСоединениеHTTP(АдресРесурса,,,,,,Новый ЗащищенноеСоединениеHTTPOpenSSL());
ЗапросHTTP = Новый HTTPЗапрос(АдресНужнойСтраницы);
РезультатЗапроса = СоединениеHTTP.Получить(ЗапросHTTP);
Если РезультатЗапроса.КодСостояния = 200 Тогда
СоединениеHTTP = Новый HTTPСоединениеHTTP(АдресРесурса,,,,,,Новый ЗащищенноеСоединениеHTTPOpenSSL());
ЗапросHTTP = Новый HTTPЗапрос(АдресНужнойСтраницы);
РезультатЗапроса = СоединениеHTTP.Получить(ЗапросHTTP);
ТекстЗапроса = РезультатЗапроса.ПолучитьТелоКакСтроку();
Возврат ТекстЗапроса;
Иначе
Сообщение = Новый СообщениеПользователю;
Сообщение.Текст = "Не выполнено. Код ответа: " + РезультатЗапроса.КодСостояния;
Сообщение.Сообщить();
Возврат "";
КонецЕсли;
КонецФункции
СтрокаJSON = ЗапросHTTPGoogleSheets("1KRVSRJZOP4h3VJZcNM0de7rt5q", "Лист1", "ZpX921bG75");
Преобраование JSON в Таблицу значений в 1С 8.3:
//...
СтрокаJSON = ЗапросHTTPGoogleSheets("1KRVSRJZOP4h3VJZcNM0de7rt5q","Лист1","ZpX921bG75");
Если ЗначениеЗаполнено(СтрокаJSON) Тогда
МассивСтрок = ИзJSON(СтрокаJSON).values;
ТЗ = ПолучитьТЗ(МассивСтрок);
КонецЕсли;
//...
Функция ИзJSON(СтрокаJSON) Экспорт
ТекБлюдоJSON = Новый ЧтениеJSON ;
ТекБлюдоJSON.УстановитьСтроку(СтрокаJSON);
Возврат ПрочитатьJSON(ТекБлюдоJSON);
КонецФункции
Функция ПолучитьТЗ(МассивСтрок)
ТЗ = Новый ТаблицаЗначений;
ТЗ.Колонки.Добавить("Блюдо", Новый ОписаниеТипов("Строка", ,Новый КвалификаторыСтроки(50)));
ТЗ.Колонки.Добавить("Выход", Новый ОписаниеТипов("Число", ,Новый КвалификаторыЧисла(8, 0, ДопустимыйЗнак.Неотрицательный)));
ТЗ.Колонки.Добавить("Ккал", Новый ОписаниеТипов("Число", ,Новый КвалификаторыЧисла(5, 0, ДопустимыйЗнак.Неотрицательный)));
ТЗ.Колонки.Добавить("СрокЧас", Новый ОписаниеТипов("Число", ,Новый КвалификаторыЧисла(3, 0, ДопустимыйЗнак.Неотрицательный)));
ПерваяСтрока = Истина;
Для Каждого Стр Из МассивСтрок Цикл
Если ПерваяСтрока Или Стр[0]="" Тогда
ПерваяСтрока = Ложь;
Продолжить;
КонецЕсли;
НоваяСтрока = ТЗ.Добавить();
НоваяСтрока.Блюдо = Стр[0];
НоваяСтрока.Выход = Стр[1];
НоваяСтрока.Ккал = Стр[2];
НоваяСтрока.СрокЧас = Стр[3];
КонецЦикла;
Возврат ТЗ;
КонецФункции
СтрокаJSON = ЗапросHTTPGoogleSheets("1KRVSRJZOP4h3VJZcNM0de7rt5q","Лист1","ZpX921bG75");
Если ЗначениеЗаполнено(СтрокаJSON) Тогда
МассивСтрок = ИзJSON(СтрокаJSON).values;
ТЗ = ПолучитьТЗ(МассивСтрок);
КонецЕсли;
//...
Функция ИзJSON(СтрокаJSON) Экспорт
ТекБлюдоJSON = Новый ЧтениеJSON ;
ТекБлюдоJSON.УстановитьСтроку(СтрокаJSON);
Возврат ПрочитатьJSON(ТекБлюдоJSON);
КонецФункции
Функция ПолучитьТЗ(МассивСтрок)
ТЗ = Новый ТаблицаЗначений;
ТЗ.Колонки.Добавить("Блюдо", Новый ОписаниеТипов("Строка", ,Новый КвалификаторыСтроки(50)));
ТЗ.Колонки.Добавить("Выход", Новый ОписаниеТипов("Число", ,Новый КвалификаторыЧисла(8, 0, ДопустимыйЗнак.Неотрицательный)));
ТЗ.Колонки.Добавить("Ккал", Новый ОписаниеТипов("Число", ,Новый КвалификаторыЧисла(5, 0, ДопустимыйЗнак.Неотрицательный)));
ТЗ.Колонки.Добавить("СрокЧас", Новый ОписаниеТипов("Число", ,Новый КвалификаторыЧисла(3, 0, ДопустимыйЗнак.Неотрицательный)));
ПерваяСтрока = Истина;
Для Каждого Стр Из МассивСтрок Цикл
Если ПерваяСтрока Или Стр[0]="" Тогда
ПерваяСтрока = Ложь;
Продолжить;
КонецЕсли;
НоваяСтрока = ТЗ.Добавить();
НоваяСтрока.Блюдо = Стр[0];
НоваяСтрока.Выход = Стр[1];
НоваяСтрока.Ккал = Стр[2];
НоваяСтрока.СрокЧас = Стр[3];
КонецЦикла;
Возврат ТЗ;
КонецФункции
Пример структуры файла JSON:
{
"range": "'Лист1'!A1:Z100",
"majorDimension": "ROWS",
"values": [
[
"Блюдо",
"Выход",
"Ккал",
"СрокГодностиЧ"
],
[
"Суши из форели",
"270",
"324",
"2"
],
[
"Лапша фирменная",
"300",
"358",
"12"
],
[
"Суп из малюсков",
"190",
"173",
"4"
]
]
}
0
комментарии
____________________
Перепечатка текста и фотографий разрешена при наличии прямой ссылки на источник