mirror of
https://github.com/Bayselonarrend/OpenIntegrations.git
synced 2024-12-31 03:10:45 +02:00
GS: Получить и очистить ячейки
This commit is contained in:
parent
782c7bbffc
commit
4ea295fb89
@ -197,20 +197,19 @@
|
||||
// Параметры:
|
||||
// Токен - Строка - Токен - token
|
||||
// Книга - Строка - ID книги - spreadsheet
|
||||
// Лист - Строка - ID листа - sheet
|
||||
// СоответствиеЗначений - Соответствие Из КлючИЗначение - Данные заполнения, где ключ это имя ячейки вида A1 - data
|
||||
// Лист - Строка - Имя листа (первый лист по умолчанию) - sheetname
|
||||
// ОсновноеИзмерение - Строка - Основное измерение при заполнении диапазона массивом - dim
|
||||
//
|
||||
// Возвращаемое значение:
|
||||
// Соответствие Из КлючИЗначение - сериализованный JSON ответа от Google
|
||||
Функция УстановитьЗначенияЯчеек(Знач Токен
|
||||
, Знач Книга
|
||||
, Знач Лист
|
||||
, Знач СоответствиеЗначений
|
||||
, Знач ОсновноеИзмерение = "COLOUMNS") Экспорт
|
||||
, Знач Лист = ""
|
||||
, Знач ОсновноеИзмерение = "COLUMNS") Экспорт
|
||||
|
||||
OPI_ПреобразованиеТипов.ПолучитьСтроку(Книга);
|
||||
OPI_ПреобразованиеТипов.ПолучитьСтроку(Лист);
|
||||
OPI_ПреобразованиеТипов.ПолучитьКоллекцию(СоответствиеЗначений);
|
||||
|
||||
Если Не ТипЗнч(СоответствиеЗначений) = Тип("Структура")
|
||||
@ -220,7 +219,7 @@
|
||||
|
||||
Заголовки = OPI_GoogleWorkspace.ПолучитьЗаголовокАвторизации(Токен);
|
||||
URL = "https://sheets.googleapis.com/v4/spreadsheets/" + Книга + "/values:batchUpdate";
|
||||
МассивДанных = СформироватьМассивДанныхЯчеек(СоответствиеЗначений, ОсновноеИзмерение);
|
||||
МассивДанных = СформироватьМассивДанныхЯчеек(СоответствиеЗначений, ОсновноеИзмерение, Лист);
|
||||
|
||||
Параметры = Новый Структура("data,valueInputOption", МассивДанных, "USER_ENTERED");
|
||||
Ответ = OPI_Инструменты.Post(URL, Параметры, Заголовки);
|
||||
@ -233,25 +232,59 @@
|
||||
// Очищает значение в ячейках
|
||||
//
|
||||
// Параметры:
|
||||
// Токен - Строка - Токен - token
|
||||
// Книга - Строка - ID книги - spreadsheet
|
||||
// Лист - Строка - ID листа - sheet
|
||||
// МассивЯчеек - Массив из Строка - Массив ячеек вида А1 для очистки - cells
|
||||
// Токен - Строка - Токен - token
|
||||
// Книга - Строка - ID книги - spreadsheet
|
||||
// МассивЯчеек - Массив из Строка - Массив ячеек вида А1 для очистки - cells
|
||||
// Лист - Строка - Имя листа (первый лист по умолчанию) - sheetname
|
||||
//
|
||||
// Возвращаемое значение:
|
||||
// Соответствие Из КлючИЗначение - сериализованный JSON ответа от Google
|
||||
Функция ОчиститьЯчейки(Знач Токен, Знач Книга, Знач Лист, Знач МассивЯчеек) Экспорт
|
||||
Функция ОчиститьЯчейки(Знач Токен, Знач Книга, Знач МассивЯчеек, Знач Лист = "") Экспорт
|
||||
|
||||
OPI_ПреобразованиеТипов.ПолучитьСтроку(Книга);
|
||||
OPI_ПреобразованиеТипов.ПолучитьКоллекцию(МассивЯчеек);
|
||||
|
||||
Заголовки = OPI_GoogleWorkspace.ПолучитьЗаголовокАвторизации(Токен);
|
||||
URL = "https://sheets.googleapis.com/v4/spreadsheets/" + Книга + "/values:batchClear";
|
||||
|
||||
Параметры = Новый Структура();
|
||||
OPI_Инструменты.ДобавитьПоле("spreadsheetId", Лист , "Строка", Параметры);
|
||||
OPI_Инструменты.ДобавитьПоле("clearedRanges", МассивЯчеек, "Массив", Параметры);
|
||||
СформироватьМассивИменЯчеек(МассивЯчеек, Лист);
|
||||
|
||||
Параметры = Новый Структура("ranges", МассивЯчеек);
|
||||
Ответ = OPI_Инструменты.Post(URL, Параметры, Заголовки);
|
||||
|
||||
Ответ = OPI_Инструменты.Post(URL, Параметры, Заголовки);
|
||||
Возврат Ответ;
|
||||
|
||||
КонецФункции
|
||||
|
||||
// Получить значения ячеек
|
||||
// Получает значения ячеек таблицы
|
||||
//
|
||||
// Параметры:
|
||||
// Токен - Строка - Токен - token
|
||||
// Книга - Строка - ID книги - spreadsheet
|
||||
// МассивЯчеек - Массив из Строка - Массив ячеек вида А1 для получения - cells
|
||||
// Лист - Строка - Имя листа (первый лист по умолчанию) - sheetname
|
||||
//
|
||||
// Возвращаемое значение:
|
||||
// Соответствие Из КлючИЗначение - сериализованный JSON ответа от Google
|
||||
Функция ПолучитьЗначенияЯчеек(Знач Токен, Знач Книга, Знач МассивЯчеек, Знач Лист = "") Экспорт
|
||||
|
||||
OPI_ПреобразованиеТипов.ПолучитьСтроку(Книга);
|
||||
OPI_ПреобразованиеТипов.ПолучитьКоллекцию(МассивЯчеек);
|
||||
|
||||
Заголовки = OPI_GoogleWorkspace.ПолучитьЗаголовокАвторизации(Токен);
|
||||
URL = "https://sheets.googleapis.com/v4/spreadsheets/" + Книга + "/values:batchGet";
|
||||
|
||||
СформироватьМассивИменЯчеек(МассивЯчеек, Лист);
|
||||
|
||||
Первый = Истина;
|
||||
Для Каждого Ячейка Из МассивЯчеек Цикл
|
||||
Разделитель = ?(Первый, "?", "&");
|
||||
URL = URL + Разделитель + "ranges=" + Ячейка;
|
||||
Первый = Ложь;
|
||||
КонецЦикла;
|
||||
|
||||
Ответ = OPI_Инструменты.Get(URL, , Заголовки);
|
||||
|
||||
Возврат Ответ;
|
||||
|
||||
@ -274,6 +307,14 @@
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
Процедура ДобавитьИмяЛиста(Ячейка, Знач Лист)
|
||||
|
||||
Если ЗначениеЗаполнено(Лист) Тогда
|
||||
Ячейка = "'" + Лист + "'!" + Ячейка;
|
||||
КонецЕсли;
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
Функция СоздатьЛист(Знач Наименование)
|
||||
|
||||
OPI_ПреобразованиеТипов.ПолучитьСтроку(Наименование);
|
||||
@ -285,13 +326,18 @@
|
||||
|
||||
КонецФункции
|
||||
|
||||
Функция СформироватьМассивДанныхЯчеек(Знач СтруктураЗначений, Знач ОсновноеИзмерение)
|
||||
Функция СформироватьМассивДанныхЯчеек(Знач СтруктураЗначений, Знач ОсновноеИзмерение, Знач Лист)
|
||||
|
||||
OPI_ПреобразованиеТипов.ПолучитьСтроку(Лист);
|
||||
|
||||
МассивДанных = Новый Массив;
|
||||
|
||||
Для Каждого ДанныеЯчейки Из СтруктураЗначений Цикл
|
||||
|
||||
ТекущееЗначение = ДанныеЯчейки.Значение;
|
||||
ТекущийКлюч = ДанныеЯчейки.Ключ;
|
||||
|
||||
ДобавитьИмяЛиста(ТекущийКлюч, Лист);
|
||||
|
||||
OPI_ПреобразованиеТипов.ПолучитьМассив(ТекущееЗначение);
|
||||
|
||||
@ -300,7 +346,7 @@
|
||||
|
||||
ТекущийМассив.Добавить(ТекущееЗначение);
|
||||
|
||||
OPI_Инструменты.ДобавитьПоле("range" , ДанныеЯчейки.Ключ, "Строка", ТекущиеДанные);
|
||||
OPI_Инструменты.ДобавитьПоле("range" , ТекущийКлюч , "Строка", ТекущиеДанные);
|
||||
OPI_Инструменты.ДобавитьПоле("values" , ТекущийМассив , "Массив", ТекущиеДанные);
|
||||
OPI_Инструменты.ДобавитьПоле("majorDimension", ОсновноеИзмерение, "Строка", ТекущиеДанные);
|
||||
|
||||
@ -311,4 +357,15 @@
|
||||
Возврат МассивДанных;
|
||||
|
||||
КонецФункции
|
||||
|
||||
Процедура СформироватьМассивИменЯчеек(Знач МассивИмен, Знач Лист)
|
||||
|
||||
OPI_ПреобразованиеТипов.ПолучитьСтроку(Лист);
|
||||
|
||||
Для Н = 0 По МассивИмен.ВГраница() Цикл
|
||||
ДобавитьИмяЛиста(МассивИмен[Н], Лист);
|
||||
КонецЦикла;
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
#КонецОбласти
|
@ -150,7 +150,7 @@
|
||||
|
||||
НовыйТест(ТаблицаТестов, "ГТ_СоздатьТаблицу" , "Создать таблицу" , Таблицы);
|
||||
НовыйТест(ТаблицаТестов, "ГТ_ПолучитьТаблицу" , "Получить таблицу" , Таблицы);
|
||||
НовыйТест(ТаблицаТестов, "ГТ_ЗаполнитьЯчейки" , "Заполнить ячейки" , Таблицы);
|
||||
НовыйТест(ТаблицаТестов, "ГТ_ЗаполнитьОчиститьЯчейки" , "Заполнить/Очистить ячейки" , Таблицы);
|
||||
|
||||
НовыйТест(ТаблицаТестов, "Твиттер_ПолучитьСсылкуАвторизации" , "Получить ссылку авторизации" , Твиттер);
|
||||
НовыйТест(ТаблицаТестов, "Твиттер_ОбновитьТокен" , "Обновить токен" , Твиттер);
|
||||
|
@ -2545,11 +2545,11 @@
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
Процедура ГТ_ЗаполнитьЯчейки() Экспорт
|
||||
Процедура ГТ_ЗаполнитьОчиститьЯчейки() Экспорт
|
||||
|
||||
Токен = OPI_ПолучениеДанныхТестов.ПолучитьПараметр("Google_Token");
|
||||
Книга = OPI_ПолучениеДанныхТестов.ПолучитьПараметр("GS_Spreadsheet");
|
||||
Лист = OPI_ПолучениеДанныхТестов.ПолучитьПараметр("GS_Sheet");
|
||||
Лист = "Лист2";
|
||||
|
||||
СтруктураЯчеек = Новый Соответствие;
|
||||
СтруктураЯчеек.Вставить("A1", "Это A1");
|
||||
@ -2560,10 +2560,37 @@
|
||||
СтруктураЯчеек.Вставить("A4", "Это A4");
|
||||
СтруктураЯчеек.Вставить("B1", "Это B1");
|
||||
СтруктураЯчеек.Вставить("B4", "Это B4");
|
||||
|
||||
Результат = OPI_GoogleSheets.УстановитьЗначенияЯчеек(Токен, Книга, Лист, СтруктураЯчеек);
|
||||
|
||||
// !OInt OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "ПолучитьТаблицу");
|
||||
МассивЯчеек = Новый Массив;
|
||||
МассивЯчеек.Добавить("B2");
|
||||
МассивЯчеек.Добавить("A3");
|
||||
МассивЯчеек.Добавить("B4");
|
||||
|
||||
Результат = OPI_GoogleSheets.УстановитьЗначенияЯчеек(Токен, Книга, СтруктураЯчеек, Лист);
|
||||
|
||||
// !OInt OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "УстановитьЗначенияЯчеек");
|
||||
|
||||
OPI_ПолучениеДанныхТестов.ОжидаетЧто(Результат["spreadsheetId"]).Равно(Книга);
|
||||
OPI_ПолучениеДанныхТестов.ОжидаетЧто(Результат["totalUpdatedCells"]).Равно(СтруктураЯчеек.Количество());
|
||||
|
||||
Результат = OPI_GoogleSheets.ПолучитьЗначенияЯчеек(Токен, Книга, МассивЯчеек, Лист);
|
||||
|
||||
// !OInt OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "ПолучитьЗначенияЯчеек");
|
||||
|
||||
OPI_ПолучениеДанныхТестов.ОжидаетЧто(Результат["spreadsheetId"]).Равно(Книга);
|
||||
OPI_ПолучениеДанныхТестов.ОжидаетЧто(Результат["valueRanges"].Количество()).Равно(МассивЯчеек.Количество());
|
||||
|
||||
МассивЯчеек = Новый Массив;
|
||||
МассивЯчеек.Добавить("B2");
|
||||
МассивЯчеек.Добавить("A3");
|
||||
МассивЯчеек.Добавить("B4");
|
||||
|
||||
Результат = OPI_GoogleSheets.ОчиститьЯчейки(Токен, Книга, МассивЯчеек, Лист);
|
||||
|
||||
// !OInt OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "ОчиститьЯчейки");
|
||||
|
||||
OPI_ПолучениеДанныхТестов.ОжидаетЧто(Результат["spreadsheetId"]).Равно(Книга);
|
||||
OPI_ПолучениеДанныхТестов.ОжидаетЧто(Результат["clearedRanges"].Количество()).Равно(МассивЯчеек.Количество());
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user