diff --git a/ci/os/docs_main.os b/ci/os/docs_main.os index 61358e626a..0e2515f927 100644 --- a/ci/os/docs_main.os +++ b/ci/os/docs_main.os @@ -222,7 +222,7 @@ СписокИнструкций = Новый СписокЗначений(); Для Каждого СуществующаяИнструкция Из НайтиФайлы(КаталогИнструкцийЛокализация, "*.md") Цикл - СписокИнструкций.Добавить(СуществующаяИнструкция.ИмяБезРасширения); + СписокИнструкций.Добавить(нРег(СуществующаяИнструкция.ИмяБезРасширения)); КонецЦикла; ШаблонИнструкции = "--- @@ -242,7 +242,7 @@ КонецЕсли; Для Каждого Библиотека Из ИменаБиблиотек Цикл - Если СписокИнструкций.НайтиПоЗначению(Библиотека) = Неопределено Тогда + Если СписокИнструкций.НайтиПоЗначению(нРег(Библиотека)) = Неопределено Тогда ТекущиеТеги = СтрШаблон(ШаблонТегов, Библиотека); ПолучитьДвоичныеДанныеИзСтроки(СтрШаблон(ШаблонИнструкции, Библиотека, ТекущиеТеги)).Записать(КаталогИнструкцийЛокализация + СтрШаблон("/%1.md", Библиотека)); diff --git a/docs/en/md/Instructions/gRPC.md b/docs/en/md/Instructions/gRPC.md index 0ee2c6d8fa..f9074c3e62 100644 --- a/docs/en/md/Instructions/gRPC.md +++ b/docs/en/md/Instructions/gRPC.md @@ -1,9 +1,34 @@ ---- -id: GRPC -sidebar_class_name: GRPC -keywords: [1C, 1С, 1С:Enterprise, 1С:Enterprise 8.3, API, Integration, Services, Exchange, OneScript, CLI, GRPC] ---- - -# GRPC \ No newline at end of file +# GRPC + +Этот раздел посвящен библиотеке для работы с gRPC в 1С:Предприятие, OneScript и CLI. На данной странице описаны все действия, необходимые для полноценного начала работы + + +## Начало работы + +Для начала работы с сервером по протоколу gRPC, необходимо создать объект соединения. Сделать это можно явно, передав настройки соединения в функцию `ОткрытьСоединение` или, в отдельных случаях, неявно, передав настройки соединения сразу в функцию выполнения запроса. В последнем случае, соединение будет открыто и закрыто внутри вызываемой функции. Сформировать настройки соединения для обоих случаев можно при помощи функции `ПолучитьПараметрыСоединения`. В нее необходимо передать URL сервера (c протоколом и портом), структуру Proto-файлов, а также структуру метаданных (при необходимости). Библиотека поддерживает загрузку нескольких Proto файлов, если основной файл для работы с сервисом содержит импорты (порядок загрузки файлов не имеет значения). Подробнее в описании функции `ПолучитьПараметрыСоединения` + +```bsl + + Адрес = "https://grpcb.in:9001"; + + Proto1 = "./grpcbin_with_import.proto"; // Строка, путь к файлу или URL + Proto2 = "./mt.proto"; // Строка, путь к файлу или URL + + Схемы = Новый Соответствие; + Схемы.Вставить("main.proto" , Proto1); // Основной + Схемы.Вставить("my_types.proto", Proto2); // Для импорта в основной + + Мета = Новый Структура("mykey", "myvalue"); + + Параметры = OPI_GRPC.ПолучитьПараметрыСоединения(Адрес, Схемы, Мета); + Tls = OPI_GRPC.ПолучитьНастройкиTls(Истина); + + Результат = OPI_GRPC.ОткрытьСоединение(Параметры, Tls); + +``` + +## TLS + +Библиотека поддерживает работу в режиме TLS. Для его включения необходимо сформировать настройки TLS при помощи функции `ПолучитьНастройкиTls`, и передать их как соответствующий параметр в функцию `ОткрытьСоединение` или иную функцию, если используется неявное открытие соединения. Если параметр TLS при вызове этих функций не передан, соединение инициализируется в незащищенном режиме \ No newline at end of file diff --git a/docs/ru/md/Instructions/gRPC.md b/docs/ru/md/Instructions/gRPC.md index 2736e72836..f9074c3e62 100644 --- a/docs/ru/md/Instructions/gRPC.md +++ b/docs/ru/md/Instructions/gRPC.md @@ -1,9 +1,34 @@ ---- -id: GRPC -sidebar_class_name: GRPC -keywords: [1C, 1С, 1С:Предприятие, 1С:Предприятие 8.3, API, Интеграция, Сервисы, Обмен, OneScript, CLI, GRPC] ---- - -# GRPC \ No newline at end of file +# GRPC + +Этот раздел посвящен библиотеке для работы с gRPC в 1С:Предприятие, OneScript и CLI. На данной странице описаны все действия, необходимые для полноценного начала работы + + +## Начало работы + +Для начала работы с сервером по протоколу gRPC, необходимо создать объект соединения. Сделать это можно явно, передав настройки соединения в функцию `ОткрытьСоединение` или, в отдельных случаях, неявно, передав настройки соединения сразу в функцию выполнения запроса. В последнем случае, соединение будет открыто и закрыто внутри вызываемой функции. Сформировать настройки соединения для обоих случаев можно при помощи функции `ПолучитьПараметрыСоединения`. В нее необходимо передать URL сервера (c протоколом и портом), структуру Proto-файлов, а также структуру метаданных (при необходимости). Библиотека поддерживает загрузку нескольких Proto файлов, если основной файл для работы с сервисом содержит импорты (порядок загрузки файлов не имеет значения). Подробнее в описании функции `ПолучитьПараметрыСоединения` + +```bsl + + Адрес = "https://grpcb.in:9001"; + + Proto1 = "./grpcbin_with_import.proto"; // Строка, путь к файлу или URL + Proto2 = "./mt.proto"; // Строка, путь к файлу или URL + + Схемы = Новый Соответствие; + Схемы.Вставить("main.proto" , Proto1); // Основной + Схемы.Вставить("my_types.proto", Proto2); // Для импорта в основной + + Мета = Новый Структура("mykey", "myvalue"); + + Параметры = OPI_GRPC.ПолучитьПараметрыСоединения(Адрес, Схемы, Мета); + Tls = OPI_GRPC.ПолучитьНастройкиTls(Истина); + + Результат = OPI_GRPC.ОткрытьСоединение(Параметры, Tls); + +``` + +## TLS + +Библиотека поддерживает работу в режиме TLS. Для его включения необходимо сформировать настройки TLS при помощи функции `ПолучитьНастройкиTls`, и передать их как соответствующий параметр в функцию `ОткрытьСоединение` или иную функцию, если используется неявное открытие соединения. Если параметр TLS при вызове этих функций не передан, соединение инициализируется в незащищенном режиме \ No newline at end of file diff --git a/src/addins/grpc/Cargo.lock b/src/addins/grpc/Cargo.lock index 85f3fdcbbb..e0be0550dd 100644 --- a/src/addins/grpc/Cargo.lock +++ b/src/addins/grpc/Cargo.lock @@ -1297,9 +1297,9 @@ checksum = "b39cdef0fa800fc44525c84ccb54a029961a8215f9619753635a9c0d2538d46d" [[package]] name = "ryu" -version = "1.0.18" +version = "1.0.22" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f3cb5ba0dc43242ce17de99c180e96db90b235b8a9fdc9543c96d2209116bd9f" +checksum = "a50f4cf475b65d88e057964e0e9bb1f0aa9bbb2036dc65c64596b42932536984" [[package]] name = "schannel" diff --git a/src/addins/grpc/dependencies.log b/src/addins/grpc/dependencies.log index 0ef9ed3524..5958f920ce 100644 --- a/src/addins/grpc/dependencies.log +++ b/src/addins/grpc/dependencies.log @@ -1,10 +1,10 @@ "MAIN ---" - linux-vdso.so.1 (0x00007fffc6647000) - libm.so.6 => /lib64/libm.so.6 (0x00007de41a400000) - libpthread.so.0 => /lib64/libpthread.so.0 (0x00007de41a000000) - libc.so.6 => /lib64/libc.so.6 (0x00007de419c00000) - libdl.so.2 => /lib64/libdl.so.2 (0x00007de419800000) - /lib64/ld-linux-x86-64.so.2 (0x00007de41ae00000) + linux-vdso.so.1 (0x00007fff49d8c000) + libm.so.6 => /lib64/libm.so.6 (0x000071c6cbc00000) + libpthread.so.0 => /lib64/libpthread.so.0 (0x000071c6cb800000) + libc.so.6 => /lib64/libc.so.6 (0x000071c6cb400000) + libdl.so.2 => /lib64/libdl.so.2 (0x000071c6cb000000) + /lib64/ld-linux-x86-64.so.2 (0x000071c6cc600000) GLIBC_2.2.5 GLIBC_2.12 GLIBC_2.3 diff --git a/src/addins/grpc/src/message_converter.rs b/src/addins/grpc/src/message_converter.rs index 00a8b556c4..2281057af6 100644 --- a/src/addins/grpc/src/message_converter.rs +++ b/src/addins/grpc/src/message_converter.rs @@ -166,8 +166,8 @@ fn prost_value_to_json_value(binary_vault: &BinaryVault, prost_value: &prost_ref ProstValue::I64(i) => Ok(Value::Number((*i).into())), ProstValue::U32(u) => Ok(Value::Number((*u).into())), ProstValue::U64(u) => Ok(Value::Number((*u).into())), - ProstValue::F32(f) => Ok(json!(f.to_string())), - ProstValue::F64(f) => Ok(json!(f.to_string())), + ProstValue::F32(f) => Ok(json!(f)), + ProstValue::F64(f) => Ok(json!(f)), ProstValue::String(s) => Ok(Value::String(s.clone())), ProstValue::Bytes(b) => { let base64_string = general_purpose::STANDARD.encode(b); diff --git a/src/ru/OPI/src/CommonModules/OPI_ПолучениеДанныхТестов/Module.bsl b/src/ru/OPI/src/CommonModules/OPI_ПолучениеДанныхТестов/Module.bsl index abe8230ea0..7c95dc6649 100644 --- a/src/ru/OPI/src/CommonModules/OPI_ПолучениеДанныхТестов/Module.bsl +++ b/src/ru/OPI/src/CommonModules/OPI_ПолучениеДанныхТестов/Module.bsl @@ -12889,7 +12889,8 @@ ОжидаетЧто(Результат["result"]).Равно(Истина); ОжидаетЧто(Закрытие["result"]).Равно(Истина); - СписокПолей = СтрРазделить("f_bytes,f_bytess", ","); + СписокПолей = СтрРазделить("f_bytes,f_bytess,f_float", ","); + ОжидаетЧто(Лев(Строка(Результат["message"]["f_float"]), 4)).Равно(Лев(Строка(Данные["f_float"]), 4)); ОжидаетЧто(OPI_Инструменты.СравнитьДвеКоллекции(Результат["message"], Данные, СписокПолей)).Равно(Истина); Возврат Результат; diff --git a/src/ru/OPI/src/CommonModules/OPI_Тесты/Module.bsl b/src/ru/OPI/src/CommonModules/OPI_Тесты/Module.bsl index 2973637007..78ff374c4a 100644 --- a/src/ru/OPI/src/CommonModules/OPI_Тесты/Module.bsl +++ b/src/ru/OPI/src/CommonModules/OPI_Тесты/Module.bsl @@ -26786,7 +26786,7 @@ Данные.Вставить("f_string" , "Test message"); Данные.Вставить("f_int32" , 123); Данные.Вставить("f_int64" , 123); - Данные.Вставить("f_float" , "123.22000122070312"); + Данные.Вставить("f_float" , 123.22000122070312); Данные.Вставить("f_bool" , Истина); Данные.Вставить("f_enum" , "ENUM_1"); Данные.Вставить("f_bytes" , Файл);