1
0
mirror of https://github.com/Bayselonarrend/OpenIntegrations.git synced 2025-03-23 21:29:38 +02:00

Начало MongoDB (1С)

This commit is contained in:
Anton Titovets 2024-12-10 23:14:45 +03:00
parent 7f32f17ef2
commit 4b64125c44
48 changed files with 3148 additions and 2805 deletions

View File

@ -116,7 +116,8 @@
СтрНайти(ФайлПроекта.ПолноеИмя, "cli\data") = 0
И СтрНайти(ФайлПроекта.ПолноеИмя, "cli/data") = 0
И Не ФайлПроекта.ЭтоКаталог()
И Не ФайлПроекта.Расширение = ".bin";
И Не ФайлПроекта.Расширение = ".bin"
И Не ФайлПроекта.Расширение = ".addin";
Если Признак Тогда
МассивФайлов.Добавить(ФайлПроекта);

File diff suppressed because it is too large Load Diff

View File

@ -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"

View File

@ -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

View File

@ -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()
}
// ОСНОВНЫЕ МЕТОДЫ -----------------------------------------------------------------------------

View File

@ -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

View 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 = СтрокаПодключения;
Возврат Клиент;
КонецФункции
#КонецОбласти

View File

@ -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"/>

View File

@ -2172,6 +2172,19 @@
#КонецОбласти
#Область MongoDB
Процедура Mongo_УправлениеБазамиДанных() Экспорт
ПараметрыТеста = Новый Структура;
OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("MDB_CString", ПараметрыТеста);
MongoDB_ПолучитьСписокБаз(ПараметрыТеста);
КонецПроцедуры
#КонецОбласти
#КонецОбласти
#КонецОбласти
@ -15650,6 +15663,22 @@
#КонецОбласти
#Область MongoDB
Процедура MongoDB_ПолучитьСписокБаз(ПараметрыФункции)
СтрокаПодключения = ПараметрыФункции["MDB_CString"];
Результат = OPI_MongoDB.ПолучитьСписокБаз(СтрокаПодключения);
// END
OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "ПолучитьСписокБаз", "MongoDB");
КонецПроцедуры
#КонецОбласти
#КонецОбласти
#КонецОбласти

View File

@ -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 @@
КонецФункции
Функция ПолучитьОбщийМодуль(Знач Имя)
Модуль = Вычислить(Имя);
Возврат Модуль;
КонецФункции

View File

@ -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);
КонецПроцедуры
КонецФункции
#КонецОбласти

View File

@ -1,4 +1,4 @@
// OneScript: ./OInt/core/Modules/OPI_Airtable.os
// OneScript: ./OInt/core/Modules/OPI_Airtable.os
// Lib: Airtable
// CLI: airtable

View File

@ -1,4 +1,4 @@
// OneScript: ./OInt/core/Modules/OPI_Bitrix24.os
// OneScript: ./OInt/core/Modules/OPI_Bitrix24.os
// Lib: Bitrix24
// CLI: bitrix24

View File

@ -1,4 +1,4 @@
// OneScript: ./OInt/core/Modules/OPI_CDEK.os
// OneScript: ./OInt/core/Modules/OPI_CDEK.os
// Lib: CDEK
// CLI: cdek

View File

@ -1,4 +1,4 @@
// OneScript: ./OInt/core/Modules/OPI_Dropbox.os
// OneScript: ./OInt/core/Modules/OPI_Dropbox.os
// Lib: Dropbox
// CLI: dropbox

View File

@ -1,4 +1,4 @@
// OneScript: ./OInt/core/Modules/OPI_GoogleCalendar.os
// OneScript: ./OInt/core/Modules/OPI_GoogleCalendar.os
// Lib: Google Calendar
// CLI: gcalendar

View File

@ -1,4 +1,4 @@
// OneScript: ./OInt/core/Modules/OPI_GoogleDrive.os
// OneScript: ./OInt/core/Modules/OPI_GoogleDrive.os
// Lib: Google Drive
// CLI: gdrive

View File

@ -1,4 +1,4 @@
// OneScript: ./OInt/core/Modules/OPI_GoogleSheets.os
// OneScript: ./OInt/core/Modules/OPI_GoogleSheets.os
// Lib: Google Sheets
// CLI: gsheets

View File

@ -1,4 +1,4 @@
// OneScript: ./OInt/core/Modules/OPI_GoogleWorkspace.os
// OneScript: ./OInt/core/Modules/OPI_GoogleWorkspace.os
// Lib: Google Workspace
// CLI: google

View 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 = СтрокаПодключения;
Возврат Клиент;
КонецФункции
#КонецОбласти

View 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>

View File

@ -1,4 +1,4 @@
// OneScript: ./OInt/core/Modules/OPI_Neocities.os
// OneScript: ./OInt/core/Modules/OPI_Neocities.os
// Lib: Neocities
// CLI: neocities

View File

@ -1,4 +1,4 @@
// OneScript: ./OInt/core/Modules/OPI_Notion.os
// OneScript: ./OInt/core/Modules/OPI_Notion.os
// Lib: Notion
// CLI: notion

View File

@ -1,4 +1,4 @@
// OneScript: ./OInt/core/Modules/OPI_Ozon.os
// OneScript: ./OInt/core/Modules/OPI_Ozon.os
// Lib: Ozon
// CLI: ozon

View File

@ -1,4 +1,4 @@
// OneScript: ./OInt/core/Modules/OPI_S3.os
// OneScript: ./OInt/core/Modules/OPI_S3.os
// Lib: S3
// CLI: s3

View File

@ -1,4 +1,4 @@
// OneScript: ./OInt/core/Modules/OPI_Slack.os
// OneScript: ./OInt/core/Modules/OPI_Slack.os
// Lib: Slack
// CLI: slack

View File

@ -1,4 +1,4 @@
// OneScript: ./OInt/core/Modules/OPI_Telegram.os
// OneScript: ./OInt/core/Modules/OPI_Telegram.os
// Lib: Telegram
// CLI: telegram

View File

@ -1,4 +1,4 @@
// OneScript: ./OInt/core/Modules/OPI_Twitter.os
// OneScript: ./OInt/core/Modules/OPI_Twitter.os
// Lib: Twitter
// CLI: twitter

View File

@ -1,4 +1,4 @@
// OneScript: ./OInt/core/Modules/OPI_VK.os
// OneScript: ./OInt/core/Modules/OPI_VK.os
// Lib: VK
// CLI: vk

View File

@ -1,4 +1,4 @@
// OneScript: ./OInt/core/Modules/OPI_VKTeams.os
// OneScript: ./OInt/core/Modules/OPI_VKTeams.os
// Lib: VKTeams
// CLI: vkteams

View File

@ -1,4 +1,4 @@
// OneScript: ./OInt/core/Modules/OPI_Viber.os
// OneScript: ./OInt/core/Modules/OPI_Viber.os
// Lib: Viber
// CLI: viber

View File

@ -1,4 +1,4 @@
// OneScript: ./OInt/core/Modules/OPI_YandexDisk.os
// OneScript: ./OInt/core/Modules/OPI_YandexDisk.os
// Lib: Yandex Disk
// CLI: yadisk

View File

@ -1,4 +1,4 @@
// OneScript: ./OInt/core/Modules/OPI_YandexID.os
// OneScript: ./OInt/core/Modules/OPI_YandexID.os
// Lib: Yandex ID
// CLI: yandex

View File

@ -1,4 +1,4 @@
// OneScript: ./OInt/core/Modules/OPI_YandexMarket.os
// OneScript: ./OInt/core/Modules/OPI_YandexMarket.os
// Lib: Yandex Market
// CLI: yamarket

View File

@ -1,4 +1,4 @@
// OneScript: ./OInt/core/Modules/OPI_YandexMetrika.os
// OneScript: ./OInt/core/Modules/OPI_YandexMetrika.os
// Lib: Yandex Metrika
// CLI: metrika

View File

@ -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);
КонецПроцедуры
КонецФункции
#КонецОбласти

View File

@ -1,4 +1,4 @@
// OneScript: ./OInt/tools/Modules/internal/Modules/OPI_Криптография.os
// OneScript: ./OInt/tools/Modules/internal/Modules/OPI_Криптография.os
// MIT License

View File

@ -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""";

View File

@ -1,4 +1,4 @@
// OneScript: ./OInt/tools/Modules/OPI_ПреобразованиеТипов.os
// OneScript: ./OInt/tools/Modules/OPI_ПреобразованиеТипов.os
// MIT License

View File

@ -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");
КонецПроцедуры
#КонецОбласти
#КонецОбласти
#КонецОбласти

View File

@ -1,4 +1,4 @@
// OneScript: ./OInt/tests/Modules/internal/OPI_ТестыCLI.os
// OneScript: ./OInt/tests/Modules/internal/OPI_ТестыCLI.os
// MIT License

View File

@ -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>

View File

@ -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>

View File

@ -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>

View File

@ -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>