mirror of
https://github.com/Bayselonarrend/OpenIntegrations.git
synced 2026-06-20 09:19:27 +02:00
Доработки по замене json на sqlite
This commit is contained in:
@@ -1,3 +1,5 @@
|
||||
#Использовать oint/api/sqlite
|
||||
|
||||
Перем ДанныеКонфигурации;
|
||||
Перем НаборФайловФорматирования;
|
||||
Перем СопоставлениеФайлов;
|
||||
@@ -242,6 +244,25 @@
|
||||
ВызватьИсключение "Cant find decrypted file";
|
||||
КонецЕсли;
|
||||
|
||||
СекретныеДанные = Инструменты.ПрочитатьФайлJSON(РасшифрованныйФайл.ПолноеИмя);
|
||||
ПутьRO = СтрШаблон("file:%1?mode=ro", РасшифрованныйФайл.Путь);
|
||||
|
||||
Таблица = "test_params";
|
||||
|
||||
Результат = OPI_SQLite.ПолучитьЗаписи(Таблица, , , , , ПутьRO);
|
||||
|
||||
Если Не Результат["result"] = Истина Тогда
|
||||
ВызватьИсключение Результат["error"];
|
||||
КонецЕсли;
|
||||
|
||||
Данные = Результат["data"];
|
||||
|
||||
СекретныеДанные = Новый Соответствие;
|
||||
|
||||
Для Каждого СтрокаДанных Из Данные Цикл
|
||||
|
||||
СекретныеДанные.Вставить(СтрокаДанных["key"]
|
||||
, ?(СтрокаДанных["type"] = "Number", Число(СтрокаДанных["value"]), СтрокаДанных["value"]));
|
||||
|
||||
КонецЦикла;
|
||||
|
||||
КонецПроцедуры
|
||||
@@ -64,6 +64,7 @@
|
||||
// #Использовать "../../../../tools/http"
|
||||
// #Использовать "../../../../api/openai"
|
||||
// #Использовать "../../../../api/rportal"
|
||||
// #Использовать "../../../../api/sqlite"
|
||||
// #Использовать asserts
|
||||
|
||||
#Если Не ВебКлиент Тогда // !OPI
|
||||
@@ -9217,7 +9218,7 @@
|
||||
|
||||
Функция Проверка_SQLite_ГарантироватьЗаписи(Знач Результат, Знач Вариант)
|
||||
|
||||
Если Вариант = "Вставка" Или Вариант = "Обновление" Тогда
|
||||
Если Не ЗначениеЗаполнено(Вариант) Или Вариант = "Обновление" Тогда
|
||||
|
||||
ОжидаетЧто(Результат["result"]).Равно(Истина);
|
||||
|
||||
@@ -17297,14 +17298,40 @@
|
||||
|
||||
Функция ПолучитьЗначениеИзФайла(Параметр, Путь)
|
||||
|
||||
Значения = OPI_Инструменты.ПрочитатьJSONФайл(Путь);
|
||||
Возврат ?(Значения.Свойство(Параметр), Значения[Параметр], "");
|
||||
ПутьRO = СтрШаблон("file:%1?mode=ro", Путь);
|
||||
|
||||
Фильтр = Новый Структура();
|
||||
Фильтр.Вставить("field", "key");
|
||||
Фильтр.Вставить("type" , "=");
|
||||
Фильтр.Вставить("value", Параметр);
|
||||
|
||||
Таблица = "test_params";
|
||||
|
||||
Результат = OPI_SQLite.ПолучитьЗаписи(Таблица, , Фильтр, , , ПутьRO);
|
||||
|
||||
Если Не Результат["result"] = Истина Тогда
|
||||
ВызватьИсключение Результат["error"];
|
||||
КонецЕсли;
|
||||
|
||||
Данные = Результат["data"];
|
||||
|
||||
Если Данные.Количество() > 0 Тогда
|
||||
|
||||
Значение = Данные[0]["value"];
|
||||
ТипЗначения = Данные[0]["type"];
|
||||
|
||||
Значение = ?(ТипЗначения = "Number", Число(Значение), Строка(Значение));
|
||||
|
||||
Иначе
|
||||
Значение = "";
|
||||
КонецЕсли;
|
||||
|
||||
Возврат Значение;
|
||||
|
||||
КонецФункции
|
||||
|
||||
Функция ПутьКФайлуДанных()
|
||||
|
||||
Путь = "";
|
||||
ВозможныеПути = Новый Массив;
|
||||
ВозможныеПути.Добавить("./data.sqlite");
|
||||
ВозможныеПути.Добавить("C:\GDrive\Мой диск\data.sqlite");
|
||||
@@ -17315,13 +17342,12 @@
|
||||
ФайлРепозитория = Новый Файл(ВозможныйПуть);
|
||||
|
||||
Если ФайлРепозитория.Существует() Тогда
|
||||
Путь = ВозможныйПуть;
|
||||
Прервать;
|
||||
Возврат ВозможныйПуть;
|
||||
КонецЕсли;
|
||||
|
||||
КонецЦикла;
|
||||
|
||||
Возврат Путь;
|
||||
ВызватьИсключение "data.sqlite not found!";
|
||||
|
||||
КонецФункции
|
||||
|
||||
@@ -17945,34 +17971,35 @@
|
||||
|
||||
Процедура ЗаписатьПараметрВФайл(Знач Параметр, Знач Значение, Знач Путь)
|
||||
|
||||
Попытки = 10;
|
||||
Попытки = 20;
|
||||
|
||||
Для Н = 1 По Попытки Цикл
|
||||
|
||||
Попытка
|
||||
|
||||
Значения = OPI_Инструменты.ПрочитатьJSONФайл(Путь);
|
||||
Значения.Вставить(Параметр, Значение);
|
||||
|
||||
// BSLLS:ExternalAppStarting-off
|
||||
Запись = Новый ЗаписьJSON;
|
||||
ПараметрыЗаписиJSON = Новый ПараметрыЗаписиJSON(ПереносСтрокJSON.Авто, Символы.Таб);
|
||||
Запись.ОткрытьФайл(Путь, , , ПараметрыЗаписиJSON);
|
||||
ЗаписатьJSON(Запись, Значения);
|
||||
Запись.Закрыть();
|
||||
// BSLLS:ExternalAppStarting-on
|
||||
|
||||
Исключение
|
||||
|
||||
Если Н < Попытки Тогда
|
||||
OPI_Инструменты.Пауза(Н);
|
||||
Иначе
|
||||
ВызватьИсключение;
|
||||
КонецЕсли;
|
||||
|
||||
КонецПопытки;
|
||||
Данные = Новый Структура("key,value,type"
|
||||
, Параметр
|
||||
, OPI_Инструменты.ЧислоВСтроку(Значение)
|
||||
, ?(ТипЗнч(Значение) = Тип("Число"), "Number", "String"));
|
||||
|
||||
Результат = OPI_SQLite.ГарантироватьЗаписи("test_params", Данные, "key", , Путь);
|
||||
|
||||
Если Результат["result"] Тогда
|
||||
Возврат;
|
||||
Иначе
|
||||
|
||||
Ошибка = Результат["errors"][0]["error"];
|
||||
|
||||
Если Ошибка = "database is locked" Тогда
|
||||
OPI_Инструменты.Пауза(Н);
|
||||
Продолжить;
|
||||
Иначе
|
||||
Прервать;
|
||||
КонецЕсли;
|
||||
|
||||
КонецЕсли;
|
||||
|
||||
КонецЦикла;
|
||||
|
||||
ВызватьИсключение Ошибка;
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
|
||||
@@ -614,7 +614,7 @@
|
||||
|
||||
// END
|
||||
|
||||
OPI_ПолучениеДанныхТестов.Обработать(Результат, "SQLite", "ГарантироватьЗаписи", "Вставка");
|
||||
OPI_ПолучениеДанныхТестов.Обработать(Результат, "SQLite", "ГарантироватьЗаписи");
|
||||
|
||||
Проверка = OPI_SQLite.ПолучитьЗаписи(Таблица, "*", , , , База);
|
||||
OPI_ПолучениеДанныхТестов.Обработать(Проверка, "SQLite", "ГарантироватьЗаписи", "Проверка вставки");
|
||||
|
||||
Reference in New Issue
Block a user