diff --git a/.github/workflows/os/cli_testmaker.os b/.github/workflows/os/cli_testmaker.os index 4de9910ad4..eb46bbf962 100644 --- a/.github/workflows/os/cli_testmaker.os +++ b/.github/workflows/os/cli_testmaker.os @@ -88,6 +88,7 @@ СоответствиеПЗ.Вставить("item" , "1"); СоответствиеПЗ.Вставить("sellgroup" , "1"); СоответствиеПЗ.Вставить("sels" , "['1111111','2222222']"); + СоответствиеПЗ.Вставить("posts" , "['1111111','2222222']"); СоответствиеПЗ.Вставить("main" , "false"); СоответствиеПЗ.Вставить("hidden" , "false"); СоответствиеПЗ.Вставить("prop" , "1"); diff --git a/OPI/src/CommonModules/OPI_Telegram/Module.bsl b/OPI/src/CommonModules/OPI_Telegram/Module.bsl index daefe529b3..9e87187a65 100644 --- a/OPI/src/CommonModules/OPI_Telegram/Module.bsl +++ b/OPI/src/CommonModules/OPI_Telegram/Module.bsl @@ -123,7 +123,7 @@ // Токен - Строка - Токен бота - token // IDЧата - Строка,Число - ID целевого чата или IDЧата*IDТемы - chat // Текст - Строка - Текст сообщения - text -// Клавиатура - Строка - См. СформироватьКлавиатуруПоМассивуКнопок - keyboard - Текст +// Клавиатура - Строка - См. СформироватьКлавиатуруПоМассивуКнопок - keyboard // // Возвращаемое значение: // Соответствие Из КлючИЗначение - сериализованный JSON ответа от Telegram @@ -132,7 +132,7 @@ OPI_ПреобразованиеТипов.ПолучитьСтроку(Токен); OPI_ПреобразованиеТипов.ПолучитьСтроку(IDЧата); OPI_ПреобразованиеТипов.ПолучитьСтроку(Текст); - OPI_ПреобразованиеТипов.ПолучитьСтроку(Клавиатура); + OPI_ПреобразованиеТипов.ПолучитьСтроку(Клавиатура, Истина); OPI_Инструменты.ЗаменитьСпецСимволы(Текст); @@ -158,7 +158,7 @@ // IDЧата - Строка,Число - ID целевого чата или IDЧата*IDТемы - chat // Текст - Строка - Текст сообщения - text // Картинка - ДвоичныеДанные,Строка - Файл картинки - picture -// Клавиатура - Строка - См. СформироватьКлавиатуруПоМассивуКнопок - keyboard - Текст +// Клавиатура - Строка - См. СформироватьКлавиатуруПоМассивуКнопок - keyboard // // Возвращаемое значение: // Соответствие Из КлючИЗначение - сериализованный JSON ответа от Telegram @@ -176,7 +176,7 @@ // IDЧата - Строка,Число - ID целевого чата или IDЧата*IDТемы - chat // Текст - Строка - Текст сообщения - text // Видео - ДвоичныеДанные,Строка - Файл видео - video -// Клавиатура - Строка - См. СформироватьКлавиатуруПоМассивуКнопок - keyboard - Текст +// Клавиатура - Строка - См. СформироватьКлавиатуруПоМассивуКнопок - keyboard // // Возвращаемое значение: // Соответствие Из КлючИЗначение - сериализованный JSON ответа от Telegram @@ -194,7 +194,7 @@ // IDЧата - Строка,Число - ID целевого чата или IDЧата*IDТемы - chat // Текст - Строка - Текст сообщения - text // Аудио - ДвоичныеДанные,Строка - Файл аудио - audio -// Клавиатура - Строка - См. СформироватьКлавиатуруПоМассивуКнопок - keyboard - Текст +// Клавиатура - Строка - См. СформироватьКлавиатуруПоМассивуКнопок - keyboard // // Возвращаемое значение: // Соответствие Из КлючИЗначение - сериализованный JSON ответа от Telegram @@ -212,7 +212,7 @@ // IDЧата - Строка,Число - ID целевого чата или IDЧата*IDТемы - chat // Текст - Строка - Текст сообщения - text // Документ - ДвоичныеДанные,Строка - Файл документа - doc -// Клавиатура - Строка - См. СформироватьКлавиатуруПоМассивуКнопок - keyboard - Текст +// Клавиатура - Строка - См. СформироватьКлавиатуруПоМассивуКнопок - keyboard // // Возвращаемое значение: // Соответствие Из КлючИЗначение - сериализованный JSON ответа от Telegram @@ -230,7 +230,7 @@ // IDЧата - Строка,Число - ID целевого чата или IDЧата*IDТемы - chat // Текст - Строка - Текст сообщения - text // Гифка - ДвоичныеДанные,Строка - Файл гифки - gif -// Клавиатура - Строка - См. СформироватьКлавиатуруПоМассивуКнопок - keyboard - Текст +// Клавиатура - Строка - См. СформироватьКлавиатуруПоМассивуКнопок - keyboard // // Возвращаемое значение: // Соответствие Из КлючИЗначение - сериализованный JSON ответа от Telegram @@ -270,7 +270,7 @@ OPI_ПреобразованиеТипов.ПолучитьСтроку(Токен); OPI_ПреобразованиеТипов.ПолучитьСтроку(IDЧата); OPI_ПреобразованиеТипов.ПолучитьСтроку(Текст); - OPI_ПреобразованиеТипов.ПолучитьСтроку(Клавиатура); + OPI_ПреобразованиеТипов.ПолучитьСтроку(Клавиатура, Истина); OPI_ПреобразованиеТипов.ПолучитьКоллекцию(СоответствиеФайлов); OPI_Инструменты.ЗаменитьСпецсимволы(Текст); @@ -313,7 +313,7 @@ OPI_ПреобразованиеТипов.ПолучитьСтроку(IDЧата); OPI_ПреобразованиеТипов.ПолучитьСтроку(Широта); OPI_ПреобразованиеТипов.ПолучитьСтроку(Долгота); - OPI_ПреобразованиеТипов.ПолучитьСтроку(Клавиатура); + OPI_ПреобразованиеТипов.ПолучитьСтроку(Клавиатура, Истина); IDЧата = OPI_Инструменты.ЧислоВСтроку(IDЧата); URL = "api.telegram.org/bot" + Токен + "/sendLocation"; @@ -341,7 +341,7 @@ // Имя - Строка - Имя контакта - name // Фамилия - Строка - Фамилия контакта - surname // Телефон - Строка - Телефон контакта - phone -// Клавиатура - Строка - См. СформироватьКлавиатуруПоМассивуКнопок - keyboard - Текст +// Клавиатура - Строка - См. СформироватьКлавиатуруПоМассивуКнопок - keyboard // // Возвращаемое значение: // Соответствие Из КлючИЗначение - сериализованный JSON ответа от Telegram @@ -352,7 +352,7 @@ OPI_ПреобразованиеТипов.ПолучитьСтроку(Имя); OPI_ПреобразованиеТипов.ПолучитьСтроку(Фамилия); OPI_ПреобразованиеТипов.ПолучитьСтроку(Телефон); - OPI_ПреобразованиеТипов.ПолучитьСтроку(Клавиатура); + OPI_ПреобразованиеТипов.ПолучитьСтроку(Клавиатура, Истина); URL = "api.telegram.org/bot" + Токен + "/sendContact"; @@ -396,14 +396,11 @@ URL = "api.telegram.org/bot" + Токен + "/sendPoll"; Параметры_ = Новый Структура; - Параметры_.Вставить("parse_mode", "Markdown"); - Параметры_.Вставить("question" , Вопрос); - Параметры_.Вставить("options" , МассивОтветов); - - Если Не Анонимный Тогда - Параметры_.Вставить("is_anonymous", Ложь); - КонецЕсли; - + Параметры_.Вставить("parse_mode" , "Markdown"); + Параметры_.Вставить("question" , Вопрос); + Параметры_.Вставить("options" , МассивОтветов); + Параметры_.Вставить("is_anonymous", Анонимный); + ДобавитьИдентификаторЧата(IDЧата, Параметры_); Ответ = OPI_Инструменты.Get(URL, Параметры_); @@ -431,6 +428,7 @@ OPI_ПреобразованиеТипов.ПолучитьСтроку(КудаID); URL = "api.telegram.org/bot" + Токен + "/forwardMessage"; + Параметры_ = Новый Структура; Параметры_.Вставить("from_chat_id", ОткудаID); Параметры_.Вставить("message_id" , IDОригинала); @@ -531,6 +529,7 @@ OPI_ПреобразованиеТипов.ПолучитьДату(ДатаИстечения); URL = "api.telegram.org/bot" + Токен + "/createChatInviteLink"; + Параметры_ = Новый Структура; Параметры_.Вставить("parse_mode", "Markdown"); Параметры_.Вставить("chat_id" , IDЧата); @@ -566,6 +565,7 @@ OPI_ПреобразованиеТипов.ПолучитьСтроку(IDСообщения); URL = "api.telegram.org/bot" + Токен + "/pinChatMessage"; + Параметры_ = Новый Структура; Параметры_.Вставить("parse_mode" , "Markdown"); Параметры_.Вставить("chat_id" , IDЧата); @@ -595,6 +595,7 @@ OPI_ПреобразованиеТипов.ПолучитьСтроку(IDСообщения); URL = "api.telegram.org/bot" + Токен + "/unpinChatMessage"; + Параметры_ = Новый Структура; Параметры_.Вставить("parse_mode", "Markdown"); Параметры_.Вставить("chat_id" , IDЧата); @@ -621,6 +622,7 @@ OPI_ПреобразованиеТипов.ПолучитьСтроку(IDЧата); URL = "api.telegram.org/bot" + Токен + "/getChatMemberCount"; + Параметры_ = Новый Структура; Параметры_.Вставить("parse_mode", "Markdown"); Параметры_.Вставить("chat_id" , IDЧата); @@ -720,6 +722,7 @@ Result = "result"; URL = "api.telegram.org/bot" + Токен + "/getForumTopicIconStickers"; Ответ = OPI_Инструменты.Get(URL); + Иконки = Ответ[Result]; Коллекция = Новый Соответствие; @@ -851,11 +854,12 @@ OPI_ПреобразованиеТипов.ПолучитьСтроку(IDЧата); OPI_ПреобразованиеТипов.ПолучитьСтроку(Заголовок); + URL = "api.telegram.org/bot" + Токен + "/editGeneralForumTopic"; + Параметры_ = Новый Структура; Параметры_.Вставить("chat_id", IDЧата); Параметры_.Вставить("name" , Заголовок); - URL = "api.telegram.org/bot" + Токен + "/editGeneralForumTopic"; Ответ = OPI_Инструменты.Get(URL, Параметры_); Возврат Ответ; @@ -931,13 +935,9 @@ СтруктураПараметра = Новый Структура("keyboard,resize_keyboard", Строки, Истина); КонецЕсли; - ЗаписьJSON = Новый ЗаписьJSON; - ПЗJSON = Новый ПараметрыЗаписиJSON(ПереносСтрокJSON.Нет, , , ЭкранированиеСимволовJSON.СимволыВнеASCII); - ЗаписьJSON.УстановитьСтроку(ПЗJSON); + Клавиатура = OPI_Инструменты.JSONСтрокой(СтруктураПараметра); - ЗаписатьJSON(ЗаписьJSON, СтруктураПараметра); - - Возврат ЗаписьJSON.Закрыть(); + Возврат Клавиатура; КонецФункции @@ -953,7 +953,7 @@ OPI_ПреобразованиеТипов.ПолучитьСтроку(IDЧата); OPI_ПреобразованиеТипов.ПолучитьСтроку(Текст); OPI_ПреобразованиеТипов.ПолучитьСтроку(Вид); - OPI_ПреобразованиеТипов.ПолучитьСтроку(Клавиатура); + OPI_ПреобразованиеТипов.ПолучитьСтроку(Клавиатура, Истина); Расширение = ""; Метод = ""; diff --git a/OPI/src/CommonModules/OPI_VK/Module.bsl b/OPI/src/CommonModules/OPI_VK/Module.bsl index 2b007ae534..3653867a12 100644 --- a/OPI/src/CommonModules/OPI_VK/Module.bsl +++ b/OPI/src/CommonModules/OPI_VK/Module.bsl @@ -91,14 +91,6 @@ Параметры_ = ПолучитьСтандартныеПараметры(Параметры); СтрокаВложений = ""; - - Если Не ТипЗнч(МассивКартинок) = Тип("Массив") Тогда - - ОднаКартинка = МассивКартинок; - МассивКартинок = Новый Массив; - МассивКартинок.Добавить(ОднаКартинка); - - КонецЕсли; Для Каждого КартинкаПоста Из МассивКартинок Цикл @@ -168,33 +160,11 @@ OPI_ПреобразованиеТипов.ПолучитьКоллекцию(МассивОтветов); Параметры_ = ПолучитьСтандартныеПараметры(Параметры); - Ответ = OPI_Инструменты.Get("api.vk.com/method/polls.getPhotoUploadServer", Параметры_); Response = "response"; - Hash = "hash"; - Photo = "photo"; - URL = Ответ[Response]["upload_url"]; - IDФото = ""; - - Параметры_.Вставить("upload_url", URL); Если ЗначениеЗаполнено(Картинка) Тогда - Если ТипЗнч(Картинка) = Тип("Строка") Тогда - Путь = Картинка; - OPI_ПреобразованиеТипов.ПолучитьДвоичныеДанные(Картинка); - Иначе - Путь = ("image.jpeg"); - КонецЕсли; - - Файлы = Новый Соответствие; - Файлы.Вставить(Путь, Картинка); - - Ответ = OPI_Инструменты.PostMultipart(URL, Параметры_, Файлы); - - Параметры_.Вставить(Hash , Ответ[Hash]); - Параметры_.Вставить(Photo, Ответ[Photo]); - - Ответ = OPI_Инструменты.Get("api.vk.com/method/polls.savePhoto", Параметры_); + Ответ = ЗагрузитьФотоНаСервер(Картинка, Параметры, "Опрос"); IDФото = Ответ.Получить(Response)["id"]; КонецЕсли; @@ -202,23 +172,9 @@ Параметры_.Вставить("is_anonymous", 1); Параметры_.Вставить("is_multiple" , 0); - Ответы = "["; - Первый = Истина; - - Для Каждого Ответ Из МассивОтветов Цикл + Ответы = СтрСоединить(МассивОтветов, ""","""); + Ответы = "[""" + Ответы + """]"; - Если Первый Тогда - Первый = Ложь; - Иначе - Ответы = Ответы + ", "; - КонецЕсли; - - Ответы = Ответы + """" + Ответ + """"; - - КонецЦикла; - - Ответы = Ответы + "]"; - Параметры_.Вставить("add_answers", Ответы); Параметры_.Вставить("photo_id" , OPI_Инструменты.ЧислоВСтроку(IDФото)); Параметры_.Вставить("question" , Вопрос); @@ -657,8 +613,8 @@ Параметры_ = ПолучитьСтандартныеПараметры(Параметры); - ДатаНачала = Формат(ДатаНачала - Дата(1970, 1, 1, 1, 0, 0), "ЧГ=0"); - ДатаОкончания = Формат(ДатаОкончания - дата(1970, 1, 1, 1, 0, 0), "ЧГ=0"); + ДатаНачала = OPI_Инструменты.UNIXTime(ДатаНачала); + ДатаОкончания = OPI_Инструменты.UNIXTime(ДатаОкончания);; Параметры_.Вставить("timestamp_from", ДатаНачала); Параметры_.Вставить("timestamp_to" , ДатаОкончания); @@ -746,13 +702,15 @@ OPI_ПреобразованиеТипов.ПолучитьСтроку(IDКабинета); OPI_ПреобразованиеТипов.ПолучитьСтроку(Наименование); - ТекущаяДата = OPI_Инструменты.ПолучитьТекущуюДату(); + ТекущаяДата = OPI_Инструменты.ПолучитьТекущуюДату(); + КонечнаяДата = ДобавитьМесяц(ТекущаяДата, 24); + Параметры_ = ПолучитьСтандартныеПараметры(Параметры); Параметры_.Вставить("account_id", IDКабинета); МассивСтруктур = Новый Массив; - ДатаСтарт = Формат(ТекущаяДата - Дата(1970, 1, 1, 1, 0, 0), "ЧГ=0"); - ДатаСтоп = Формат(ДобавитьМесяц(ТекущаяДата, 24) - Дата(1970, 1, 1, 1, 0, 0), "ЧГ=0"); + ДатаСтарт = OPI_Инструменты.UNIXTime(ТекущаяДата); + ДатаСтоп = OPI_Инструменты.UNIXTime(КонечнаяДата); СтруктураКампании = Новый Структура; СтруктураКампании.Вставить("type" , "promoted_posts"); @@ -795,9 +753,8 @@ , Знач IDКабинета , Знач Параметры = "") Экспорт - Параметры_ = ПолучитьСтандартныеПараметры(Параметры); - - GroupId = Параметры_["group_id"]; + Параметры_ = ПолучитьСтандартныеПараметры(Параметры); + GroupId = Параметры_["group_id"]; OPI_ПреобразованиеТипов.ПолучитьСтроку(GroupId); OPI_ПреобразованиеТипов.ПолучитьСтроку(НомерКампании); @@ -975,12 +932,6 @@ СтрокаТоваров = ""; Owner = "owner_id"; - Если ТипЗнч(Товары) <> Тип("Массив") Тогда - Товар = Товары; - Товары = Новый Массив; - Товары.Добавить(Товар); - КонецЕсли; - Для Каждого Товар Из Товары Цикл ТекущийТовар = Параметры_[Owner] + "_" + Товар; ТекущийТовар = OPI_Инструменты.ЧислоВСтроку(ТекущийТовар); @@ -1206,25 +1157,16 @@ OPI_ПреобразованиеТипов.ПолучитьКоллекцию(Подборки); - Параметры_ = ПолучитьСтандартныеПараметры(Параметры); + Параметры_ = ПолучитьСтандартныеПараметры(Параметры); + Подборки_ = Новый Массив; СтрокаПодборок = ""; + + Для Каждого Подборка Из Подборки Цикл + Подборки_.Добавить(OPI_Инструменты.ЧислоВСтроку(Подборка)); + КонецЦикла; - Если ТипЗнч(Подборки) <> Тип("Массив") Тогда - - Подборка = Подборки; - Подборки = Новый Массив; - Подборки.Добавить(Подборка); - - КонецЕсли; - - Для Каждого Подборка Из Подборки Цикл - - ТекущаяПодборка = OPI_Инструменты.ЧислоВСтроку(Подборка); - СтрокаПодборок = СтрокаПодборок + ТекущаяПодборка + ","; + СтрокаПодборок = СтрСоединить(Подборки_, ","); - КонецЦикла; - - СтрокаПодборок = Лев(СтрокаПодборок, СтрДлина(СтрокаПодборок) - 1); Параметры_.Вставить("album_ids", СтрокаПодборок); Ответ = OPI_Инструменты.Get("api.vk.com/method/market.getAlbumById", Параметры_); @@ -1330,7 +1272,6 @@ OPI_ПреобразованиеТипов.ПолучитьСтроку(Подборка); Параметры_ = ПолучитьСтандартныеПараметры(Параметры); - Подборка = OPI_Инструменты.ЧислоВСтроку(Подборка); Параметры_.Вставить("item_id" , Товар); Параметры_.Вставить("album_ids", Подборка); @@ -1403,7 +1344,7 @@ Параметры_ = ПолучитьСтандартныеПараметры(Параметры); Параметры_.Вставить("title", Название); - Ответ = OPI_Инструменты.Get("api.vk.com/method/market.addProperty", Параметры_); + Ответ = OPI_Инструменты.Get("api.vk.com/method/market.addProperty", Параметры_); Возврат Ответ; @@ -1429,7 +1370,7 @@ Параметры_.Вставить("property_id", Свойство); Параметры_.Вставить("type" , "text"); - Ответ = OPI_Инструменты.Get("api.vk.com/method/market.editProperty", Параметры_); + Ответ = OPI_Инструменты.Get("api.vk.com/method/market.editProperty", Параметры_); Возврат Ответ; @@ -1451,7 +1392,7 @@ Параметры_ = ПолучитьСтандартныеПараметры(Параметры); Параметры_.Вставить("property_id", Свойство); - Ответ = OPI_Инструменты.Get("api.vk.com/method/market.deleteProperty", Параметры_); + Ответ = OPI_Инструменты.Get("api.vk.com/method/market.deleteProperty", Параметры_); Возврат Ответ; @@ -1476,7 +1417,7 @@ Параметры_.Вставить("property_id", Свойство); Параметры_.Вставить("title" , Значение); - Ответ = OPI_Инструменты.Get("api.vk.com/method/market.addPropertyVariant", Параметры_); + Ответ = OPI_Инструменты.Get("api.vk.com/method/market.addPropertyVariant", Параметры_); Возврат Ответ; @@ -1503,7 +1444,7 @@ Параметры_.Вставить("variant_id" , Вариант); Параметры_.Вставить("title" , Значение); - Ответ = OPI_Инструменты.Get("api.vk.com/method/market.editPropertyVariant", Параметры_); + Ответ = OPI_Инструменты.Get("api.vk.com/method/market.editPropertyVariant", Параметры_); Возврат Ответ; @@ -1525,7 +1466,7 @@ Параметры_ = ПолучитьСтандартныеПараметры(Параметры); Параметры_.Вставить("variant_id", Вариант); - Ответ = OPI_Инструменты.Get("api.vk.com/method/market.deletePropertyVariant", Параметры_); + Ответ = OPI_Инструменты.Get("api.vk.com/method/market.deletePropertyVariant", Параметры_); Возврат Ответ; @@ -1640,35 +1581,41 @@ Функция ЗагрузитьФотоНаСервер(Знач Картинка, Знач Параметры, Знач Вид = "Пост") Попытка - Response = "response"; - Файлы = Новый Соответствие; - Метод = ОпределитьМетодЗагрузкиИзображений(Вид); - URL = "api.vk.com/method/"; - Загрузка = URL + Метод["Загрузка"]; - Сохранение = URL + Метод["Сохранение"]; - - Если ТипЗнч(Картинка) = Тип("Строка") Тогда - КлючКартинка = СтрЗаменить(Картинка, ".", "___"); - OPI_ПреобразованиеТипов.ПолучитьДвоичныеДанные(Картинка); - Иначе - КлючКартинка = "image___jpeg"; - КонецЕсли; - - Файлы.Вставить(КлючКартинка, Картинка); - - Ответ = OPI_Инструменты.Get(Загрузка, Параметры); - URL = Ответ[Response]["upload_url"]; - Параметры.Вставить("upload_url", URL); - - Ответ = OPI_Инструменты.PostMultipart(URL, Параметры, Файлы); - ЗаполнитьПараметрыЗагрузкиФото(Метод, Ответ, Параметры); - Ответ = OPI_Инструменты.Get(Сохранение, Параметры); - - Возврат Ответ; + Метод = ОпределитьМетодЗагрузкиИзображений(Вид); + Файлы = Новый Соответствие; + + Response = "response"; + URL = "api.vk.com/method/"; + Загрузка = URL + Метод["Загрузка"]; + Сохранение = URL + Метод["Сохранение"]; + + Если ТипЗнч(Картинка) = Тип("Строка") Тогда + КлючКартинка = СтрЗаменить(Картинка, ".", "___"); + OPI_ПреобразованиеТипов.ПолучитьДвоичныеДанные(Картинка); + Иначе + КлючКартинка = "image___jpeg"; + КонецЕсли; + + Файлы.Вставить(КлючКартинка, Картинка); + + Ответ = OPI_Инструменты.Get(Загрузка, Параметры); + URL = Ответ[Response]["upload_url"]; + Параметры.Вставить("upload_url", URL); + + Ответ = OPI_Инструменты.PostMultipart(URL, Параметры, Файлы); + ЗаполнитьПараметрыЗагрузкиФото(Метод, Ответ, Параметры); + + Ответ = OPI_Инструменты.Get(Сохранение, Параметры); + + Возврат Ответ; Исключение - ВызватьИсключение ?(ЗначениеЗаполнено(Ответ), OPI_Инструменты.JSONСтрокой(Ответ), ОписаниеОшибки()); + Если ЗначениеЗаполнено(Ответ) Тогда + Возврат Ответ; + Иначе + ВызватьИсключение ОписаниеОшибки(); + КонецЕсли; КонецПопытки; КонецФункции @@ -1699,6 +1646,12 @@ СоответствиеМетодов.Вставить(Загрузка , "stories.getPhotoUploadServer"); СоответствиеМетодов.Вставить(Сохранение, "stories.save"); СоответствиеМетодов.Вставить(Способ , 3); + + ИначеЕсли Вид = "Опрос" Тогда + + СоответствиеМетодов.Вставить(Загрузка , "polls.getPhotoUploadServer"); + СоответствиеМетодов.Вставить(Сохранение, "polls.savePhoto"); + СоответствиеМетодов.Вставить(Способ , 1); Иначе @@ -1713,7 +1666,7 @@ КонецФункции -Функция ПолучитьСоответствиеПараметровТовара() +Функция ПолучитьСоответствиеПараметровТовара() Поля = Новый Соответствие(); Поля.Вставить("Имя" , "name"); @@ -1840,17 +1793,21 @@ Serv = "server"; Aid = "aid"; Фото = Метод["Фото"]; - - СерверФото = OPI_Инструменты.ЧислоВСтроку(Ответ[Serv]); Параметры.Вставить(Hash, Ответ[Hash]); Параметры.Вставить(Фото, Ответ[Фото]); - Параметры.Вставить(Serv, СерверФото); + + СерверФото = Ответ.Получить(Serv); + + Если ЗначениеЗаполнено(СерверФото) Тогда + СерверФото = OPI_Инструменты.ЧислоВСтроку(СерверФото); + Параметры.Вставить(Serv, СерверФото); + КонецЕсли; Идентификатор = Ответ.Получить(Aid); - Идентификатор = OPI_Инструменты.ЧислоВСтроку(Идентификатор); - + Если ЗначениеЗаполнено(Идентификатор) Тогда + Идентификатор = OPI_Инструменты.ЧислоВСтроку(Идентификатор); Параметры.Вставить(Aid , Идентификатор); КонецЕсли; diff --git a/OPI/src/CommonModules/OPI_Инструменты/Module.bsl b/OPI/src/CommonModules/OPI_Инструменты/Module.bsl index 37fb03472f..0d34fae49e 100644 --- a/OPI/src/CommonModules/OPI_Инструменты/Module.bsl +++ b/OPI/src/CommonModules/OPI_Инструменты/Module.bsl @@ -245,8 +245,14 @@ Функция JSONСтрокой(Знач Данные) Экспорт - ПараметрыJSON = Новый ПараметрыЗаписиJSON(ПереносСтрокJSON.Windows, " ", Истина, ЭкранированиеСимволовJSON.Нет, - Ложь, Ложь, Ложь, Ложь); + ПараметрыJSON = Новый ПараметрыЗаписиJSON(ПереносСтрокJSON.Windows + , " " + , Истина + , ЭкранированиеСимволовJSON.СимволыВнеASCII + , Ложь + , Ложь + , Ложь + , Ложь); ЗаписьJSON = Новый ЗаписьJSON; ЗаписьJSON.УстановитьСтроку(ПараметрыJSON); diff --git a/OPI/src/CommonModules/OPI_ПреобразованиеТипов/Module.bsl b/OPI/src/CommonModules/OPI_ПреобразованиеТипов/Module.bsl index d8448beb54..6e95a38054 100644 --- a/OPI/src/CommonModules/OPI_ПреобразованиеТипов/Module.bsl +++ b/OPI/src/CommonModules/OPI_ПреобразованиеТипов/Module.bsl @@ -1,3 +1,33 @@ +// 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:LatinAndCyrillicSymbolInWord-off +// BSLLS:IncorrectLineBreak-off +// BSLLS:UnusedLocalVariable-off + +// #Использовать "./internal" + #Область СлужебныйПрограммныйИнтерфейс Процедура ПолучитьДвоичныеДанные(Значение) Экспорт @@ -46,6 +76,12 @@ Возврат; Иначе + Если ТипЗнч(Значение) = Тип("ДвоичныеДанные") Тогда + Значение = ПолучитьСтрокуИзДвоичныхДанных(Значение); + Иначе + Значение = OPI_Инструменты.ЧислоВСтроку(Значение); + КонецЕсли; + Файл = Новый Файл(Значение); ЧтениеJSON = Новый ЧтениеJSON; @@ -54,7 +90,7 @@ ЧтениеJSON.ОткрытьФайл(Значение); ЧтениеJSON.Прочитать(); - ИначеЕсли СтрНайти(Значение, "://") Тогда + ИначеЕсли СтрНачинаетсяС(нРег(Значение), "http") Тогда ИВФ = ПолучитьИмяВременногоФайла(); КопироватьФайл(Значение, ИВФ); @@ -76,7 +112,9 @@ Исключение - Если ТипЗнч(Значение) = Тип("Строка") И СтрНайти(Значение, "[") > 0 Тогда + Если ТипЗнч(Значение) = Тип("Строка") + И СтрНачинаетсяС(Значение, "[") + И СтрЗаканчиваетсяНа(Значение, "]") Тогда Значение = СтрЗаменить(Значение, "['" , ""); Значение = СтрЗаменить(Значение, "']" , ""); @@ -118,16 +156,16 @@ Процедура ПолучитьСтроку(Значение, Знач ИзИсточника = Ложь) Экспорт - Если Не ИзИсточника Тогда - Значение = OPI_Инструменты.ЧислоВСтроку(Значение); - Возврат; - КонецЕсли; - Попытка Если ТипЗнч(Значение) = Тип("Строка") Или ТипЗнч(Значение) = Тип("Число") Или ТипЗнч(Значение) = Тип("Дата") Тогда + + Если Не ИзИсточника Тогда + Значение = OPI_Инструменты.ЧислоВСтроку(Значение); + Возврат; + КонецЕсли; Значение = OPI_Инструменты.ЧислоВСтроку(Значение); Файл = Новый Файл(Значение); @@ -138,7 +176,7 @@ Значение = ЧтениеТекста.Прочитать(); ЧтениеТекста.Закрыть(); - ИначеЕсли СтрНайти(Значение, "://") Тогда + ИначеЕсли СтрНачинаетсяС(нРег(Значение), "http") Тогда ИВФ = ПолучитьИмяВременногоФайла(); КопироватьФайл(Значение, ИВФ); diff --git a/cli/core/Classes/Приложение.os b/cli/core/Classes/Приложение.os index 7b5d83ed68..d4146be43a 100644 --- a/cli/core/Classes/Приложение.os +++ b/cli/core/Classes/Приложение.os @@ -13,7 +13,7 @@ Процедура ОсновнойОбработчик() - Отладка = Истина; + Отладка = Ложь; Парсер = Новый ПарсерАргументовКоманднойСтроки(); ОбъектОПИ = Новый СвязьОПИ(); Команды = ОбъектОПИ.СоответствиеКомандМодулей; @@ -40,6 +40,7 @@ Парсер.ДобавитьПараметр("-h"); Парсер.ДобавитьПараметр("-help"); Парсер.ДобавитьПараметр("--help"); + Парсер.ДобавитьПараметр("--debug"); КонецПроцедуры @@ -70,6 +71,20 @@ ТекущаяКоманда = Данные["Команда"]; Параметры = Данные["ЗначенияПараметров"]; Вывод = ""; + + Если Параметры["--debug"] Тогда + Отладка = Истина; + Иначе + Отладка = Ложь; + КонецЕсли; + + Если Отладка Тогда + + Для каждого ВводныйПараметр Из Параметры Цикл + Сообщить(ВводныйПараметр.Ключ + " : " + ВводныйПараметр.Значение); + КонецЦикла; + + КонецЕсли; Попытка diff --git a/super_secret_data.json b/super_secret_data.json new file mode 100644 index 0000000000..1eb8918b80 --- /dev/null +++ b/super_secret_data.json @@ -0,0 +1,4 @@ +{ + "secret1":"11111111", + "secret2":"22222222" +} \ No newline at end of file diff --git a/super_secret_data.json.gpg b/super_secret_data.json.gpg new file mode 100644 index 0000000000..1c7b06b8f4 --- /dev/null +++ b/super_secret_data.json.gpg @@ -0,0 +1 @@ +  qCf^ sAF.,+A$Umx%}ELȫl66pA\I ƭtY͒cpwP(V \ No newline at end of file