mirror of
https://github.com/Bayselonarrend/OpenIntegrations.git
synced 2025-03-23 21:29:38 +02:00
Начало MongoDB (1С)
This commit is contained in:
parent
7f32f17ef2
commit
4b64125c44
@ -116,7 +116,8 @@
|
||||
СтрНайти(ФайлПроекта.ПолноеИмя, "cli\data") = 0
|
||||
И СтрНайти(ФайлПроекта.ПолноеИмя, "cli/data") = 0
|
||||
И Не ФайлПроекта.ЭтоКаталог()
|
||||
И Не ФайлПроекта.Расширение = ".bin";
|
||||
И Не ФайлПроекта.Расширение = ".bin"
|
||||
И Не ФайлПроекта.Расширение = ".addin";
|
||||
|
||||
Если Признак Тогда
|
||||
МассивФайлов.Добавить(ФайлПроекта);
|
||||
|
File diff suppressed because it is too large
Load Diff
@ -1,3 +1,3 @@
|
||||
[target.x86_64-unknown-linux-gnu]
|
||||
linker = "C:/msys64/mingw64/bin/x86_64-w64-mingw32-gcc.exe"
|
||||
rustc-linker = "C:/msys64/mingw64/bin/x86_64-w64-mingw32-gcc.exe"
|
||||
linker = "zig cc"
|
||||
|
||||
|
@ -1,2 +1,2 @@
|
||||
cargo build --release --target x86_64-pc-windows-msvc
|
||||
cargo build --release --target x86_64-unknown-linux-gnu
|
||||
cargo zigbuild --release --target x86_64-unknown-linux-gnu
|
@ -23,11 +23,22 @@ impl MongoClient {
|
||||
|
||||
// Вспомогательная функция для формирования JSON ответа
|
||||
fn make_response(ok: bool, data: &str) -> String {
|
||||
json!({
|
||||
// Попробуем распарсить строку как JSON
|
||||
let parsed_data: Result<Value, _> = serde_json::from_str(data);
|
||||
|
||||
// Если удаётся распарсить, вставляем как объект, иначе — как строку
|
||||
let response = match parsed_data {
|
||||
Ok(json_data) => json!({
|
||||
"ok": ok,
|
||||
"data": json_data
|
||||
}),
|
||||
Err(_) => json!({
|
||||
"ok": ok,
|
||||
"data": data
|
||||
})
|
||||
.to_string()
|
||||
}),
|
||||
};
|
||||
|
||||
response.to_string()
|
||||
}
|
||||
|
||||
// ОСНОВНЫЕ МЕТОДЫ -----------------------------------------------------------------------------
|
||||
|
@ -1,2 +1,2 @@
|
||||
cargo build --release --target x86_64-pc-windows-msvc
|
||||
cargo build --release --target x86_64-unknown-linux-gnu
|
||||
cargo zigbuild --release --target x86_64-unknown-linux-gnu
|
87
src/ru/OInt/core/Modules/OPI_MongoDB.os
Normal file
87
src/ru/OInt/core/Modules/OPI_MongoDB.os
Normal file
@ -0,0 +1,87 @@
|
||||
// OneScript: ./OInt/core/Modules/OPI_MongoDB.os
|
||||
// Lib: MongoDB
|
||||
// CLI: mongodb
|
||||
|
||||
// MIT License
|
||||
|
||||
// Copyright (c) 2023 Anton Tsitavets
|
||||
|
||||
// Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
// of this software and associated documentation files (the "Software"), to deal
|
||||
// in the Software without restriction, including without limitation the rights
|
||||
// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
// copies of the Software, and to permit persons to whom the Software is
|
||||
// furnished to do so, subject to the following conditions:
|
||||
|
||||
// The above copyright notice and this permission notice shall be included in all
|
||||
// copies or substantial portions of the Software.
|
||||
|
||||
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||
// SOFTWARE.
|
||||
|
||||
// https://github.com/Bayselonarrend/OpenIntegrations
|
||||
|
||||
// BSLLS:Typo-off
|
||||
// BSLLS:LatinAndCyrillicSymbolInWord-off
|
||||
// BSLLS:IncorrectLineBreak-off
|
||||
// BSLLS:NumberOfOptionalParams-off
|
||||
// BSLLS:UsingServiceTag-off
|
||||
// BSLLS:LineLength-off
|
||||
|
||||
//@skip-check module-structure-top-region
|
||||
//@skip-check module-structure-method-in-regions
|
||||
//@skip-check wrong-string-literal-content
|
||||
//@skip-check method-too-many-params
|
||||
|
||||
// Раскомментировать, если выполняется OneScript
|
||||
#Использовать "../../tools"
|
||||
|
||||
#Область ПрограммныйИнтерфейс
|
||||
|
||||
#Область УправлениеБазамиДанных
|
||||
|
||||
// Получить список баз
|
||||
// Получает список баз
|
||||
//
|
||||
// Примечание:
|
||||
// Метод в документации MongoDB: [listDatabases](@mongodb.com/docs/manual/reference/command/listDatabases/)
|
||||
//
|
||||
// Параметры:
|
||||
// СтрокаПодключения - Строка - Строка подключения к серверу MongoDB - connect
|
||||
//
|
||||
// Возвращаемое значение:
|
||||
// Структура Из КлючИЗначение - сериализованный JSON ответа от сервера MongoDB
|
||||
Функция ПолучитьСписокБаз(Знач СтрокаПодключения) Экспорт
|
||||
|
||||
Клиент = КлиентMongoDB(СтрокаПодключения);
|
||||
|
||||
Ответ = Клиент.ListDatabases();
|
||||
Ответ = OPI_Инструменты.JsonВСтруктуру(Ответ, Ложь);
|
||||
|
||||
Возврат Ответ;
|
||||
|
||||
КонецФункции
|
||||
|
||||
#КонецОбласти
|
||||
|
||||
#КонецОбласти
|
||||
|
||||
#Область СлужебныеПроцедурыИФункции
|
||||
|
||||
Функция КлиентMongoDB(Знач СтрокаПодключения)
|
||||
|
||||
OPI_ПреобразованиеТипов.ПолучитьСтроку(СтрокаПодключения);
|
||||
|
||||
Клиент = OPI_Инструменты.ПолучитьКомпоненту("MongoDB");
|
||||
Клиент.ConnectionString = СтрокаПодключения;
|
||||
|
||||
Возврат Клиент;
|
||||
|
||||
КонецФункции
|
||||
|
||||
#КонецОбласти
|
@ -7,6 +7,7 @@
|
||||
<module name="OPI_GoogleDrive" file="core/Modules/OPI_GoogleDrive.os"/>
|
||||
<module name="OPI_GoogleSheets" file="core/Modules/OPI_GoogleSheets.os"/>
|
||||
<module name="OPI_GoogleWorkspace" file="core/Modules/OPI_GoogleWorkspace.os"/>
|
||||
<module name="OPI_MongoDB" file="core/Modules/OPI_MongoDB.os"/>
|
||||
<module name="OPI_Neocities" file="core/Modules/OPI_Neocities.os"/>
|
||||
<module name="OPI_Notion" file="core/Modules/OPI_Notion.os"/>
|
||||
<module name="OPI_Ozon" file="core/Modules/OPI_Ozon.os"/>
|
||||
|
@ -2172,6 +2172,19 @@
|
||||
|
||||
#КонецОбласти
|
||||
|
||||
#Область MongoDB
|
||||
|
||||
Процедура Mongo_УправлениеБазамиДанных() Экспорт
|
||||
|
||||
ПараметрыТеста = Новый Структура;
|
||||
OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("MDB_CString", ПараметрыТеста);
|
||||
|
||||
MongoDB_ПолучитьСписокБаз(ПараметрыТеста);
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
#КонецОбласти
|
||||
|
||||
#КонецОбласти
|
||||
|
||||
#КонецОбласти
|
||||
@ -15650,6 +15663,22 @@
|
||||
|
||||
#КонецОбласти
|
||||
|
||||
#Область MongoDB
|
||||
|
||||
Процедура MongoDB_ПолучитьСписокБаз(ПараметрыФункции)
|
||||
|
||||
СтрокаПодключения = ПараметрыФункции["MDB_CString"];
|
||||
|
||||
Результат = OPI_MongoDB.ПолучитьСписокБаз(СтрокаПодключения);
|
||||
|
||||
// END
|
||||
|
||||
OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "ПолучитьСписокБаз", "MongoDB");
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
#КонецОбласти
|
||||
|
||||
#КонецОбласти
|
||||
|
||||
#КонецОбласти
|
||||
|
@ -69,6 +69,7 @@
|
||||
Разделы.Вставить("CDEK" , 5);
|
||||
Разделы.Вставить("YandexMetrika" , 5);
|
||||
Разделы.Вставить("S3" , 5);
|
||||
Разделы.Вставить("MongoDB" , 5);
|
||||
|
||||
Возврат Разделы;
|
||||
|
||||
@ -100,6 +101,7 @@
|
||||
Разделы.Вставить("CDEK" , СтандартныеЗависимости);
|
||||
Разделы.Вставить("YandexMetrika" , СтандартныеЗависимости);
|
||||
Разделы.Вставить("S3" , СтандартныеЗависимости);
|
||||
Разделы.Вставить("MongoDB" , СтандартныеЗависимости);
|
||||
|
||||
Возврат Разделы;
|
||||
|
||||
@ -127,6 +129,7 @@
|
||||
Сдэк = "CDEK";
|
||||
Метрика = "YandexMetrika";
|
||||
S3_ = "S3";
|
||||
Монго = "MongoDB";
|
||||
|
||||
ТаблицаТестов = Новый ТаблицаЗначений;
|
||||
ТаблицаТестов.Колонки.Добавить("Метод");
|
||||
@ -258,6 +261,7 @@
|
||||
НовыйТест(ТаблицаТестов, "AWS_ОбщиеМетоды" , "Общие методы" , S3_);
|
||||
НовыйТест(ТаблицаТестов, "AWS_РаботаСБакетами" , "Работа с бакетами" , S3_);
|
||||
НовыйТест(ТаблицаТестов, "AWS_РаботаСОбъектами" , "Работа с объектами" , S3_);
|
||||
НовыйТест(ТаблицаТестов, "Mongo_УправлениеБазамиДанных" , "Управление базами данных" , Монго);
|
||||
|
||||
Возврат ТаблицаТестов;
|
||||
|
||||
@ -488,10 +492,7 @@
|
||||
|
||||
Функция ВыполнитьТестCLI(Знач Библиотека, Знач Метод, Знач Опции) Экспорт
|
||||
|
||||
СистемнаяИнформация = Новый СистемнаяИнформация;
|
||||
ОперационнаяСистема = Строка(СистемнаяИнформация.ТипПлатформы);
|
||||
|
||||
Если СтрНайти(нРег(ОперационнаяСистема), "windows") > 0 Тогда
|
||||
Если OPI_Инструменты.ЭтоWindows() Тогда
|
||||
|
||||
Oint = """C:/Program Files/OneScript/bin/oint.bat""";
|
||||
//"""C:\Program Files (x86)\OInt\bin\oint.bat""";
|
||||
@ -2041,9 +2042,9 @@
|
||||
КонецФункции
|
||||
|
||||
Функция ПолучитьОбщийМодуль(Знач Имя)
|
||||
|
||||
|
||||
Модуль = Вычислить(Имя);
|
||||
|
||||
|
||||
Возврат Модуль;
|
||||
КонецФункции
|
||||
|
||||
|
@ -430,7 +430,7 @@
|
||||
|
||||
#Область JSON
|
||||
|
||||
Функция JsonВСтруктуру(Знач Текст) Экспорт
|
||||
Функция JsonВСтруктуру(Знач Текст, Знач ВСоответствие = Истина) Экспорт
|
||||
|
||||
Если Не ЗначениеЗаполнено(Текст) Тогда
|
||||
Возврат "";
|
||||
@ -441,7 +441,7 @@
|
||||
ЧтениеJSON = Новый ЧтениеJSON;
|
||||
ЧтениеJSON.УстановитьСтроку(Текст);
|
||||
|
||||
Данные = ПрочитатьJSON(ЧтениеJSON, Истина, Неопределено, ФорматДатыJSON.ISO);
|
||||
Данные = ПрочитатьJSON(ЧтениеJSON, ВСоответствие, Неопределено, ФорматДатыJSON.ISO);
|
||||
ЧтениеJSON.Закрыть();
|
||||
|
||||
Возврат Данные;
|
||||
@ -1028,14 +1028,20 @@
|
||||
|
||||
КонецФункции
|
||||
|
||||
Функция ПолучитьКомпоненту(Знач ИмяМакета, Знач ИмяКомпоненты, Знач Класс, Знач Переустановка = Ложь) Экспорт
|
||||
Функция ПолучитьКомпоненту(Знач ИмяКомпоненты, Знач Класс = "Main") Экспорт
|
||||
|
||||
Компонента = Неопределено;
|
||||
Компонента = Неопределено;
|
||||
ИмяКомпоненты = "OPI_" + ИмяКомпоненты;
|
||||
|
||||
Если Не ИнициализироватьВнешнююКомпоненту(ИмяКомпоненты, Класс, Компонента) Или Переустановка Тогда
|
||||
Если Не ИнициализироватьВнешнююКомпоненту(ИмяКомпоненты, Класс, Компонента) Тогда
|
||||
|
||||
ПодключитьКомпонентуНаСервере(ИмяМакета, ИмяКомпоненты);
|
||||
ИнициализироватьВнешнююКомпоненту(ИмяКомпоненты, Класс, Компонента);
|
||||
ПодключитьКомпонентуНаСервере(ИмяКомпоненты);
|
||||
Успех = ИнициализироватьВнешнююКомпоненту(ИмяКомпоненты, Класс, Компонента);
|
||||
|
||||
Если Не Успех Тогда
|
||||
ВызватьИсключение "Не удалось инициализировать внешнюю компоненту. "
|
||||
+ "Возможно, она не подходит для вашей операционной системы";
|
||||
КонецЕсли;
|
||||
|
||||
КонецЕсли;
|
||||
|
||||
@ -1043,6 +1049,17 @@
|
||||
|
||||
КонецФункции
|
||||
|
||||
Функция ЭтоWindows() Экспорт
|
||||
|
||||
СистемнаяИнформация = Новый СистемнаяИнформация;
|
||||
ОперационнаяСистема = Строка(СистемнаяИнформация.ТипПлатформы);
|
||||
|
||||
Ответ = СтрНайти(нРег(ОперационнаяСистема), "windows") > 0;
|
||||
|
||||
Возврат Ответ;
|
||||
|
||||
КонецФункции
|
||||
|
||||
#КонецОбласти
|
||||
|
||||
#КонецОбласти
|
||||
@ -1521,24 +1538,36 @@
|
||||
|
||||
Попытка
|
||||
Компонента = Новый("AddIn." + ИмяКомпоненты + "." + Класс);
|
||||
Возврат Ложь;
|
||||
Возврат Истина;
|
||||
Исключение
|
||||
Возврат Ложь;
|
||||
КонецПопытки;
|
||||
|
||||
КонецФункции
|
||||
|
||||
Процедура ПодключитьКомпонентуНаСервере(Знач ИмяМакета, Знач ИмяКомпоненты)
|
||||
Функция ПодключитьКомпонентуНаСервере(Знач ИмяКомпоненты)
|
||||
|
||||
ЭтоWindows = ЭтоWindows();
|
||||
|
||||
Если ЭтоWindows() Тогда
|
||||
Постфикс = "_W";
|
||||
Расширение = ".dll";
|
||||
Иначе
|
||||
Постфикс = "_L";
|
||||
Расширение = ".so";
|
||||
КонецЕсли;
|
||||
|
||||
ИмяМакета = ИмяКомпоненты + Постфикс;
|
||||
|
||||
Если ЭтоOneScript() Тогда
|
||||
ИмяМакета = КаталогКомпонентOS() + ИмяМакета + ".dll";
|
||||
ИмяМакета = КаталогКомпонентOS() + ИмяКомпоненты + Расширение;
|
||||
Иначе
|
||||
ИмяМакета = "ОбщийМакет." + ИмяМакета;
|
||||
КонецЕсли;
|
||||
|
||||
ПодключитьВнешнююКомпоненту(ИмяМакета,
|
||||
ИмяКомпоненты,
|
||||
ТипВнешнейКомпоненты.Native);
|
||||
Возврат ПодключитьВнешнююКомпоненту(ИмяМакета, ИмяКомпоненты, ТипВнешнейКомпоненты.Native);
|
||||
|
||||
КонецПроцедуры
|
||||
КонецФункции
|
||||
|
||||
#КонецОбласти
|
||||
|
||||
|
@ -1,4 +1,4 @@
|
||||
// OneScript: ./OInt/core/Modules/OPI_Airtable.os
|
||||
// OneScript: ./OInt/core/Modules/OPI_Airtable.os
|
||||
// Lib: Airtable
|
||||
// CLI: airtable
|
||||
|
||||
|
@ -1,4 +1,4 @@
|
||||
// OneScript: ./OInt/core/Modules/OPI_Bitrix24.os
|
||||
// OneScript: ./OInt/core/Modules/OPI_Bitrix24.os
|
||||
// Lib: Bitrix24
|
||||
// CLI: bitrix24
|
||||
|
||||
|
@ -1,4 +1,4 @@
|
||||
// OneScript: ./OInt/core/Modules/OPI_CDEK.os
|
||||
// OneScript: ./OInt/core/Modules/OPI_CDEK.os
|
||||
// Lib: CDEK
|
||||
// CLI: cdek
|
||||
|
||||
|
@ -1,4 +1,4 @@
|
||||
// OneScript: ./OInt/core/Modules/OPI_Dropbox.os
|
||||
// OneScript: ./OInt/core/Modules/OPI_Dropbox.os
|
||||
// Lib: Dropbox
|
||||
// CLI: dropbox
|
||||
|
||||
|
@ -1,4 +1,4 @@
|
||||
// OneScript: ./OInt/core/Modules/OPI_GoogleCalendar.os
|
||||
// OneScript: ./OInt/core/Modules/OPI_GoogleCalendar.os
|
||||
// Lib: Google Calendar
|
||||
// CLI: gcalendar
|
||||
|
||||
|
@ -1,4 +1,4 @@
|
||||
// OneScript: ./OInt/core/Modules/OPI_GoogleDrive.os
|
||||
// OneScript: ./OInt/core/Modules/OPI_GoogleDrive.os
|
||||
// Lib: Google Drive
|
||||
// CLI: gdrive
|
||||
|
||||
|
@ -1,4 +1,4 @@
|
||||
// OneScript: ./OInt/core/Modules/OPI_GoogleSheets.os
|
||||
// OneScript: ./OInt/core/Modules/OPI_GoogleSheets.os
|
||||
// Lib: Google Sheets
|
||||
// CLI: gsheets
|
||||
|
||||
|
@ -1,4 +1,4 @@
|
||||
// OneScript: ./OInt/core/Modules/OPI_GoogleWorkspace.os
|
||||
// OneScript: ./OInt/core/Modules/OPI_GoogleWorkspace.os
|
||||
// Lib: Google Workspace
|
||||
// CLI: google
|
||||
|
||||
|
87
src/ru/OPI/src/CommonModules/OPI_MongoDB/Module.bsl
Normal file
87
src/ru/OPI/src/CommonModules/OPI_MongoDB/Module.bsl
Normal file
@ -0,0 +1,87 @@
|
||||
// OneScript: ./OInt/core/Modules/OPI_MongoDB.os
|
||||
// Lib: MongoDB
|
||||
// CLI: mongodb
|
||||
|
||||
// MIT License
|
||||
|
||||
// Copyright (c) 2023 Anton Tsitavets
|
||||
|
||||
// Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
// of this software and associated documentation files (the "Software"), to deal
|
||||
// in the Software without restriction, including without limitation the rights
|
||||
// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
// copies of the Software, and to permit persons to whom the Software is
|
||||
// furnished to do so, subject to the following conditions:
|
||||
|
||||
// The above copyright notice and this permission notice shall be included in all
|
||||
// copies or substantial portions of the Software.
|
||||
|
||||
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||
// SOFTWARE.
|
||||
|
||||
// https://github.com/Bayselonarrend/OpenIntegrations
|
||||
|
||||
// BSLLS:Typo-off
|
||||
// BSLLS:LatinAndCyrillicSymbolInWord-off
|
||||
// BSLLS:IncorrectLineBreak-off
|
||||
// BSLLS:NumberOfOptionalParams-off
|
||||
// BSLLS:UsingServiceTag-off
|
||||
// BSLLS:LineLength-off
|
||||
|
||||
//@skip-check module-structure-top-region
|
||||
//@skip-check module-structure-method-in-regions
|
||||
//@skip-check wrong-string-literal-content
|
||||
//@skip-check method-too-many-params
|
||||
|
||||
// Раскомментировать, если выполняется OneScript
|
||||
// #Использовать "../../tools"
|
||||
|
||||
#Область ПрограммныйИнтерфейс
|
||||
|
||||
#Область УправлениеБазамиДанных
|
||||
|
||||
// Получить список баз
|
||||
// Получает список баз
|
||||
//
|
||||
// Примечание:
|
||||
// Метод в документации MongoDB: [listDatabases](@mongodb.com/docs/manual/reference/command/listDatabases/)
|
||||
//
|
||||
// Параметры:
|
||||
// СтрокаПодключения - Строка - Строка подключения к серверу MongoDB - connect
|
||||
//
|
||||
// Возвращаемое значение:
|
||||
// Структура Из КлючИЗначение - сериализованный JSON ответа от сервера MongoDB
|
||||
Функция ПолучитьСписокБаз(Знач СтрокаПодключения) Экспорт
|
||||
|
||||
Клиент = КлиентMongoDB(СтрокаПодключения);
|
||||
|
||||
Ответ = Клиент.ListDatabases();
|
||||
Ответ = OPI_Инструменты.JsonВСтруктуру(Ответ, Ложь);
|
||||
|
||||
Возврат Ответ;
|
||||
|
||||
КонецФункции
|
||||
|
||||
#КонецОбласти
|
||||
|
||||
#КонецОбласти
|
||||
|
||||
#Область СлужебныеПроцедурыИФункции
|
||||
|
||||
Функция КлиентMongoDB(Знач СтрокаПодключения)
|
||||
|
||||
OPI_ПреобразованиеТипов.ПолучитьСтроку(СтрокаПодключения);
|
||||
|
||||
Клиент = OPI_Инструменты.ПолучитьКомпоненту("MongoDB");
|
||||
Клиент.ConnectionString = СтрокаПодключения;
|
||||
|
||||
Возврат Клиент;
|
||||
|
||||
КонецФункции
|
||||
|
||||
#КонецОбласти
|
11
src/ru/OPI/src/CommonModules/OPI_MongoDB/OPI_MongoDB.mdo
Normal file
11
src/ru/OPI/src/CommonModules/OPI_MongoDB/OPI_MongoDB.mdo
Normal file
@ -0,0 +1,11 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<mdclass:CommonModule xmlns:mdclass="http://g5.1c.ru/v8/dt/metadata/mdclass" uuid="cb8b083f-acaa-4881-ac1f-669b0eebd1ab">
|
||||
<name>OPI_MongoDB</name>
|
||||
<synonym>
|
||||
<key></key>
|
||||
<value>OPI mongo DB</value>
|
||||
</synonym>
|
||||
<server>true</server>
|
||||
<externalConnection>true</externalConnection>
|
||||
<clientOrdinaryApplication>true</clientOrdinaryApplication>
|
||||
</mdclass:CommonModule>
|
@ -1,4 +1,4 @@
|
||||
// OneScript: ./OInt/core/Modules/OPI_Neocities.os
|
||||
// OneScript: ./OInt/core/Modules/OPI_Neocities.os
|
||||
// Lib: Neocities
|
||||
// CLI: neocities
|
||||
|
||||
|
@ -1,4 +1,4 @@
|
||||
// OneScript: ./OInt/core/Modules/OPI_Notion.os
|
||||
// OneScript: ./OInt/core/Modules/OPI_Notion.os
|
||||
// Lib: Notion
|
||||
// CLI: notion
|
||||
|
||||
|
@ -1,4 +1,4 @@
|
||||
// OneScript: ./OInt/core/Modules/OPI_Ozon.os
|
||||
// OneScript: ./OInt/core/Modules/OPI_Ozon.os
|
||||
// Lib: Ozon
|
||||
// CLI: ozon
|
||||
|
||||
|
@ -1,4 +1,4 @@
|
||||
// OneScript: ./OInt/core/Modules/OPI_S3.os
|
||||
// OneScript: ./OInt/core/Modules/OPI_S3.os
|
||||
// Lib: S3
|
||||
// CLI: s3
|
||||
|
||||
|
@ -1,4 +1,4 @@
|
||||
// OneScript: ./OInt/core/Modules/OPI_Slack.os
|
||||
// OneScript: ./OInt/core/Modules/OPI_Slack.os
|
||||
// Lib: Slack
|
||||
// CLI: slack
|
||||
|
||||
|
@ -1,4 +1,4 @@
|
||||
// OneScript: ./OInt/core/Modules/OPI_Telegram.os
|
||||
// OneScript: ./OInt/core/Modules/OPI_Telegram.os
|
||||
// Lib: Telegram
|
||||
// CLI: telegram
|
||||
|
||||
|
@ -1,4 +1,4 @@
|
||||
// OneScript: ./OInt/core/Modules/OPI_Twitter.os
|
||||
// OneScript: ./OInt/core/Modules/OPI_Twitter.os
|
||||
// Lib: Twitter
|
||||
// CLI: twitter
|
||||
|
||||
|
@ -1,4 +1,4 @@
|
||||
// OneScript: ./OInt/core/Modules/OPI_VK.os
|
||||
// OneScript: ./OInt/core/Modules/OPI_VK.os
|
||||
// Lib: VK
|
||||
// CLI: vk
|
||||
|
||||
|
@ -1,4 +1,4 @@
|
||||
// OneScript: ./OInt/core/Modules/OPI_VKTeams.os
|
||||
// OneScript: ./OInt/core/Modules/OPI_VKTeams.os
|
||||
// Lib: VKTeams
|
||||
// CLI: vkteams
|
||||
|
||||
|
@ -1,4 +1,4 @@
|
||||
// OneScript: ./OInt/core/Modules/OPI_Viber.os
|
||||
// OneScript: ./OInt/core/Modules/OPI_Viber.os
|
||||
// Lib: Viber
|
||||
// CLI: viber
|
||||
|
||||
|
@ -1,4 +1,4 @@
|
||||
// OneScript: ./OInt/core/Modules/OPI_YandexDisk.os
|
||||
// OneScript: ./OInt/core/Modules/OPI_YandexDisk.os
|
||||
// Lib: Yandex Disk
|
||||
// CLI: yadisk
|
||||
|
||||
|
@ -1,4 +1,4 @@
|
||||
// OneScript: ./OInt/core/Modules/OPI_YandexID.os
|
||||
// OneScript: ./OInt/core/Modules/OPI_YandexID.os
|
||||
// Lib: Yandex ID
|
||||
// CLI: yandex
|
||||
|
||||
|
@ -1,4 +1,4 @@
|
||||
// OneScript: ./OInt/core/Modules/OPI_YandexMarket.os
|
||||
// OneScript: ./OInt/core/Modules/OPI_YandexMarket.os
|
||||
// Lib: Yandex Market
|
||||
// CLI: yamarket
|
||||
|
||||
|
@ -1,4 +1,4 @@
|
||||
// OneScript: ./OInt/core/Modules/OPI_YandexMetrika.os
|
||||
// OneScript: ./OInt/core/Modules/OPI_YandexMetrika.os
|
||||
// Lib: Yandex Metrika
|
||||
// CLI: metrika
|
||||
|
||||
|
@ -1,4 +1,4 @@
|
||||
// OneScript: ./OInt/tools/Modules/internal/Modules/OPI_Инструменты.os
|
||||
// OneScript: ./OInt/tools/Modules/internal/Modules/OPI_Инструменты.os
|
||||
|
||||
// MIT License
|
||||
|
||||
@ -430,7 +430,7 @@
|
||||
|
||||
#Область JSON
|
||||
|
||||
Функция JsonВСтруктуру(Знач Текст) Экспорт
|
||||
Функция JsonВСтруктуру(Знач Текст, Знач ВСоответствие = Истина) Экспорт
|
||||
|
||||
Если Не ЗначениеЗаполнено(Текст) Тогда
|
||||
Возврат "";
|
||||
@ -441,7 +441,7 @@
|
||||
ЧтениеJSON = Новый ЧтениеJSON;
|
||||
ЧтениеJSON.УстановитьСтроку(Текст);
|
||||
|
||||
Данные = ПрочитатьJSON(ЧтениеJSON, Истина, Неопределено, ФорматДатыJSON.ISO);
|
||||
Данные = ПрочитатьJSON(ЧтениеJSON, ВСоответствие, Неопределено, ФорматДатыJSON.ISO);
|
||||
ЧтениеJSON.Закрыть();
|
||||
|
||||
Возврат Данные;
|
||||
@ -1028,14 +1028,20 @@
|
||||
|
||||
КонецФункции
|
||||
|
||||
Функция ПолучитьКомпоненту(Знач ИмяМакета, Знач ИмяКомпоненты, Знач Класс, Знач Переустановка = Ложь) Экспорт
|
||||
Функция ПолучитьКомпоненту(Знач ИмяКомпоненты, Знач Класс = "Main") Экспорт
|
||||
|
||||
Компонента = Неопределено;
|
||||
Компонента = Неопределено;
|
||||
ИмяКомпоненты = "OPI_" + ИмяКомпоненты;
|
||||
|
||||
Если Не ИнициализироватьВнешнююКомпоненту(ИмяКомпоненты, Класс, Компонента) Или Переустановка Тогда
|
||||
Если Не ИнициализироватьВнешнююКомпоненту(ИмяКомпоненты, Класс, Компонента) Тогда
|
||||
|
||||
ПодключитьКомпонентуНаСервере(ИмяМакета, ИмяКомпоненты);
|
||||
ИнициализироватьВнешнююКомпоненту(ИмяКомпоненты, Класс, Компонента);
|
||||
ПодключитьКомпонентуНаСервере(ИмяКомпоненты);
|
||||
Успех = ИнициализироватьВнешнююКомпоненту(ИмяКомпоненты, Класс, Компонента);
|
||||
|
||||
Если Не Успех Тогда
|
||||
ВызватьИсключение "Не удалось инициализировать внешнюю компоненту. "
|
||||
+ "Возможно, она не подходит для вашей операционной системы";
|
||||
КонецЕсли;
|
||||
|
||||
КонецЕсли;
|
||||
|
||||
@ -1043,6 +1049,17 @@
|
||||
|
||||
КонецФункции
|
||||
|
||||
Функция ЭтоWindows() Экспорт
|
||||
|
||||
СистемнаяИнформация = Новый СистемнаяИнформация;
|
||||
ОперационнаяСистема = Строка(СистемнаяИнформация.ТипПлатформы);
|
||||
|
||||
Ответ = СтрНайти(нРег(ОперационнаяСистема), "windows") > 0;
|
||||
|
||||
Возврат Ответ;
|
||||
|
||||
КонецФункции
|
||||
|
||||
#КонецОбласти
|
||||
|
||||
#КонецОбласти
|
||||
@ -1521,24 +1538,36 @@
|
||||
|
||||
Попытка
|
||||
Компонента = Новый("AddIn." + ИмяКомпоненты + "." + Класс);
|
||||
Возврат Ложь;
|
||||
Возврат Истина;
|
||||
Исключение
|
||||
Возврат Ложь;
|
||||
КонецПопытки;
|
||||
|
||||
КонецФункции
|
||||
|
||||
Процедура ПодключитьКомпонентуНаСервере(Знач ИмяМакета, Знач ИмяКомпоненты)
|
||||
Функция ПодключитьКомпонентуНаСервере(Знач ИмяКомпоненты)
|
||||
|
||||
ЭтоWindows = ЭтоWindows();
|
||||
|
||||
Если ЭтоWindows() Тогда
|
||||
Постфикс = "_W";
|
||||
Расширение = ".dll";
|
||||
Иначе
|
||||
Постфикс = "_L";
|
||||
Расширение = ".so";
|
||||
КонецЕсли;
|
||||
|
||||
ИмяМакета = ИмяКомпоненты + Постфикс;
|
||||
|
||||
Если ЭтоOneScript() Тогда
|
||||
ИмяМакета = КаталогКомпонентOS() + ИмяМакета + ".dll";
|
||||
ИмяМакета = КаталогКомпонентOS() + ИмяКомпоненты + Расширение;
|
||||
Иначе
|
||||
ИмяМакета = "ОбщийМакет." + ИмяМакета;
|
||||
КонецЕсли;
|
||||
|
||||
ПодключитьВнешнююКомпоненту(ИмяМакета,
|
||||
ИмяКомпоненты,
|
||||
ТипВнешнейКомпоненты.Native);
|
||||
Возврат ПодключитьВнешнююКомпоненту(ИмяМакета, ИмяКомпоненты, ТипВнешнейКомпоненты.Native);
|
||||
|
||||
КонецПроцедуры
|
||||
КонецФункции
|
||||
|
||||
#КонецОбласти
|
||||
|
||||
|
@ -1,4 +1,4 @@
|
||||
// OneScript: ./OInt/tools/Modules/internal/Modules/OPI_Криптография.os
|
||||
// OneScript: ./OInt/tools/Modules/internal/Modules/OPI_Криптография.os
|
||||
|
||||
// MIT License
|
||||
|
||||
|
@ -1,4 +1,4 @@
|
||||
// OneScript: ./OInt/tools/Modules/OPI_ПолучениеДанныхТестов.os
|
||||
// OneScript: ./OInt/tools/Modules/OPI_ПолучениеДанныхТестов.os
|
||||
|
||||
// MIT License
|
||||
|
||||
@ -69,6 +69,7 @@
|
||||
Разделы.Вставить("CDEK" , 5);
|
||||
Разделы.Вставить("YandexMetrika" , 5);
|
||||
Разделы.Вставить("S3" , 5);
|
||||
Разделы.Вставить("MongoDB" , 5);
|
||||
|
||||
Возврат Разделы;
|
||||
|
||||
@ -100,6 +101,7 @@
|
||||
Разделы.Вставить("CDEK" , СтандартныеЗависимости);
|
||||
Разделы.Вставить("YandexMetrika" , СтандартныеЗависимости);
|
||||
Разделы.Вставить("S3" , СтандартныеЗависимости);
|
||||
Разделы.Вставить("MongoDB" , СтандартныеЗависимости);
|
||||
|
||||
Возврат Разделы;
|
||||
|
||||
@ -127,6 +129,7 @@
|
||||
Сдэк = "CDEK";
|
||||
Метрика = "YandexMetrika";
|
||||
S3_ = "S3";
|
||||
Монго = "MongoDB";
|
||||
|
||||
ТаблицаТестов = Новый ТаблицаЗначений;
|
||||
ТаблицаТестов.Колонки.Добавить("Метод");
|
||||
@ -258,6 +261,7 @@
|
||||
НовыйТест(ТаблицаТестов, "AWS_ОбщиеМетоды" , "Общие методы" , S3_);
|
||||
НовыйТест(ТаблицаТестов, "AWS_РаботаСБакетами" , "Работа с бакетами" , S3_);
|
||||
НовыйТест(ТаблицаТестов, "AWS_РаботаСОбъектами" , "Работа с объектами" , S3_);
|
||||
НовыйТест(ТаблицаТестов, "Mongo_УправлениеБазамиДанных" , "Управление базами данных" , Монго);
|
||||
|
||||
Возврат ТаблицаТестов;
|
||||
|
||||
@ -488,10 +492,7 @@
|
||||
|
||||
Функция ВыполнитьТестCLI(Знач Библиотека, Знач Метод, Знач Опции) Экспорт
|
||||
|
||||
СистемнаяИнформация = Новый СистемнаяИнформация;
|
||||
ОперационнаяСистема = Строка(СистемнаяИнформация.ТипПлатформы);
|
||||
|
||||
Если СтрНайти(нРег(ОперационнаяСистема), "windows") > 0 Тогда
|
||||
Если OPI_Инструменты.ЭтоWindows() Тогда
|
||||
|
||||
Oint = """C:/Program Files/OneScript/bin/oint.bat""";
|
||||
//"""C:\Program Files (x86)\OInt\bin\oint.bat""";
|
||||
|
@ -1,4 +1,4 @@
|
||||
// OneScript: ./OInt/tools/Modules/OPI_ПреобразованиеТипов.os
|
||||
// OneScript: ./OInt/tools/Modules/OPI_ПреобразованиеТипов.os
|
||||
|
||||
// MIT License
|
||||
|
||||
|
@ -1,4 +1,4 @@
|
||||
// OneScript: ./OInt/tests/Modules/internal/OPI_Тесты.os
|
||||
// OneScript: ./OInt/tests/Modules/internal/OPI_Тесты.os
|
||||
|
||||
// MIT License
|
||||
|
||||
@ -2172,6 +2172,19 @@
|
||||
|
||||
#КонецОбласти
|
||||
|
||||
#Область MongoDB
|
||||
|
||||
Процедура Mongo_УправлениеБазамиДанных() Экспорт
|
||||
|
||||
ПараметрыТеста = Новый Структура;
|
||||
OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("MDB_CString", ПараметрыТеста);
|
||||
|
||||
MongoDB_ПолучитьСписокБаз(ПараметрыТеста);
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
#КонецОбласти
|
||||
|
||||
#КонецОбласти
|
||||
|
||||
#КонецОбласти
|
||||
@ -15650,6 +15663,22 @@
|
||||
|
||||
#КонецОбласти
|
||||
|
||||
#Область MongoDB
|
||||
|
||||
Процедура MongoDB_ПолучитьСписокБаз(ПараметрыФункции)
|
||||
|
||||
СтрокаПодключения = ПараметрыФункции["MDB_CString"];
|
||||
|
||||
Результат = OPI_MongoDB.ПолучитьСписокБаз(СтрокаПодключения);
|
||||
|
||||
// END
|
||||
|
||||
OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "ПолучитьСписокБаз", "MongoDB");
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
#КонецОбласти
|
||||
|
||||
#КонецОбласти
|
||||
|
||||
#КонецОбласти
|
||||
|
@ -1,4 +1,4 @@
|
||||
// OneScript: ./OInt/tests/Modules/internal/OPI_ТестыCLI.os
|
||||
// OneScript: ./OInt/tests/Modules/internal/OPI_ТестыCLI.os
|
||||
|
||||
// MIT License
|
||||
|
||||
|
@ -0,0 +1,9 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<mdclass:CommonTemplate xmlns:mdclass="http://g5.1c.ru/v8/dt/metadata/mdclass" uuid="42f54cff-0a7f-4441-9d1b-72b9f85fac65">
|
||||
<name>OPI_MongoDB_L</name>
|
||||
<synonym>
|
||||
<key></key>
|
||||
<value>OPI mongo d b L</value>
|
||||
</synonym>
|
||||
<templateType>AddIn</templateType>
|
||||
</mdclass:CommonTemplate>
|
BIN
src/ru/OPI/src/CommonTemplates/OPI_MongoDB_L/Template.addin
Normal file
BIN
src/ru/OPI/src/CommonTemplates/OPI_MongoDB_L/Template.addin
Normal file
Binary file not shown.
@ -0,0 +1,9 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<mdclass:CommonTemplate xmlns:mdclass="http://g5.1c.ru/v8/dt/metadata/mdclass" uuid="70143739-b2c8-46d9-a320-c523b7cba689">
|
||||
<name>OPI_MongoDB_W</name>
|
||||
<synonym>
|
||||
<key></key>
|
||||
<value>OPI mongo d b W</value>
|
||||
</synonym>
|
||||
<templateType>AddIn</templateType>
|
||||
</mdclass:CommonTemplate>
|
BIN
src/ru/OPI/src/CommonTemplates/OPI_MongoDB_W/Template.addin
Normal file
BIN
src/ru/OPI/src/CommonTemplates/OPI_MongoDB_W/Template.addin
Normal file
Binary file not shown.
@ -1,9 +0,0 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<mdclass:CommonTemplate xmlns:mdclass="http://g5.1c.ru/v8/dt/metadata/mdclass" uuid="c61532fa-8d2c-4b20-8609-b1ad7beac4f1">
|
||||
<name>OPI_TCPКлиент</name>
|
||||
<synonym>
|
||||
<key></key>
|
||||
<value>OPI TCPКлиент</value>
|
||||
</synonym>
|
||||
<templateType>BinaryData</templateType>
|
||||
</mdclass:CommonTemplate>
|
Binary file not shown.
@ -39,7 +39,8 @@
|
||||
<value>https://github.com/Bayselonarrend/OpenIntegrations</value>
|
||||
</configurationInformationAddress>
|
||||
<subsystems>Subsystem.OPI_Интеграция</subsystems>
|
||||
<commonTemplates>CommonTemplate.OPI_TCPКлиент</commonTemplates>
|
||||
<commonTemplates>CommonTemplate.OPI_MongoDB_W</commonTemplates>
|
||||
<commonTemplates>CommonTemplate.OPI_MongoDB_L</commonTemplates>
|
||||
<commonModules>CommonModule.OPI_Инструменты</commonModules>
|
||||
<commonModules>CommonModule.OPI_Криптография</commonModules>
|
||||
<commonModules>CommonModule.OPI_ПреобразованиеТипов</commonModules>
|
||||
@ -53,6 +54,7 @@
|
||||
<commonModules>CommonModule.OPI_GoogleWorkspace</commonModules>
|
||||
<commonModules>CommonModule.OPI_Neocities</commonModules>
|
||||
<commonModules>CommonModule.OPI_Ozon</commonModules>
|
||||
<commonModules>CommonModule.OPI_MongoDB</commonModules>
|
||||
<commonModules>CommonModule.OPI_Notion</commonModules>
|
||||
<commonModules>CommonModule.OPI_Slack</commonModules>
|
||||
<commonModules>CommonModule.OPI_S3</commonModules>
|
||||
|
Loading…
x
Reference in New Issue
Block a user