diff --git a/src/ru/OPI/src/CommonModules/OPI_Telegram/Module.bsl b/src/ru/OPI/src/CommonModules/OPI_Telegram/Module.bsl index 68eb6a2ba0..a763e6648e 100644 --- a/src/ru/OPI/src/CommonModules/OPI_Telegram/Module.bsl +++ b/src/ru/OPI/src/CommonModules/OPI_Telegram/Module.bsl @@ -311,13 +311,10 @@ , Знач IDВходящего = 0) Экспорт OPI_ПреобразованиеТипов.ПолучитьСтроку(Токен); - OPI_ПреобразованиеТипов.ПолучитьСтроку(Текст); - OPI_Инструменты.ЗаменитьСпецСимволы(Текст, Разметка); + ПодготовитьСтроку(Текст, Разметка); Строка_ = "Строка"; - Текст = РаскодироватьСтроку(Текст, СпособКодированияСтроки.URLВКодировкеURL); - Параметры = Новый Структура; OPI_Инструменты.ДобавитьПоле("parse_mode" , Разметка , Строка_ , Параметры); OPI_Инструменты.ДобавитьПоле("text" , Текст , Строка_ , Параметры); @@ -504,7 +501,7 @@ OPI_ПреобразованиеТипов.ПолучитьСтроку(IDЧата); OPI_ПреобразованиеТипов.ПолучитьКоллекцию(СоответствиеФайлов); - OPI_Инструменты.ЗаменитьСпецсимволы(Текст, Разметка); + ПодготовитьСтроку(Текст, Разметка); URL = "api.telegram.org/bot" + Токен + "/sendMediaGroup"; Медиа = Новый Массив; @@ -757,7 +754,7 @@ OPI_ПреобразованиеТипов.ПолучитьСтроку(Токен); OPI_ПреобразованиеТипов.ПолучитьСтроку(Текст); - OPI_Инструменты.ЗаменитьСпецСимволы(Текст, Разметка); + ПодготовитьСтроку(Текст, Разметка); Строка_ = "Строка"; @@ -799,7 +796,7 @@ OPI_ПреобразованиеТипов.ПолучитьСтроку(Токен); OPI_ПреобразованиеТипов.ПолучитьСтроку(Описание); - OPI_Инструменты.ЗаменитьСпецСимволы(Описание, Разметка); + ПодготовитьСтроку(Описание, Разметка); Строка_ = "Строка"; @@ -1311,10 +1308,9 @@ OPI_ПреобразованиеТипов.ПолучитьСтроку(Токен); OPI_ПреобразованиеТипов.ПолучитьСтроку(IDЧата); OPI_ПреобразованиеТипов.ПолучитьСтроку(Вид); - OPI_ПреобразованиеТипов.ПолучитьСтроку(Текст); - - OPI_Инструменты.ЗаменитьСпецсимволы(Текст, Разметка); + ПодготовитьСтроку(Текст, Разметка); + Если Не ЗначениеЗаполнено(ИмяФайла) Тогда ИмяФайла = ПреобразоватьДанныеФайла(Файл, Вид, ""); Иначе @@ -1568,4 +1564,50 @@ КонецПроцедуры +Процедура ПодготовитьСтроку(Текст, Разметка = "Markdown") Экспорт + + OPI_ПреобразованиеТипов.ПолучитьСтроку(Текст); + ЗаменитьСпецСимволы(Текст, Разметка); + + Текст = РаскодироватьСтроку(Текст, СпособКодированияСтроки.URLВКодировкеURL); + +КонецПроцедуры + +Процедура ЗаменитьСпецСимволы(Текст, Разметка) Экспорт + + OPI_ПреобразованиеТипов.ПолучитьСтроку(Разметка); + + СоответствиеСимволов = Новый Соответствие; + + Если Разметка = "HTML" Тогда + + СоответствиеСимволов.Вставить("&", "&"); + + ИначеЕсли Разметка = "MarkdownV2" Тогда + + СоответствиеСимволов.Вставить("-", "\-"); + СоответствиеСимволов.Вставить("+", "\+"); + СоответствиеСимволов.Вставить("#", "\#"); + СоответствиеСимволов.Вставить("=", "\="); + СоответствиеСимволов.Вставить("{", "\{"); + СоответствиеСимволов.Вставить("}", "\}"); + СоответствиеСимволов.Вставить(".", "\."); + + Иначе + Возврат; + КонецЕсли; + + Маркер = "╗█▓█╗"; + + Текст = СтрЗаменить(Текст, "\", Маркер); + + Для Каждого СимволМассива Из СоответствиеСимволов Цикл + Текст = СтрЗаменить(Текст, СимволМассива.Ключ, СимволМассива.Значение); + КонецЦикла; + + Текст = СтрЗаменить(Текст, Маркер + "\", "\"); + Текст = СтрЗаменить(Текст, Маркер, "\"); + +КонецПроцедуры + #КонецОбласти diff --git a/src/ru/OPI/src/CommonModules/OPI_Инструменты/Module.bsl b/src/ru/OPI/src/CommonModules/OPI_Инструменты/Module.bsl index fdf9161b33..eb3a869a58 100644 --- a/src/ru/OPI/src/CommonModules/OPI_Инструменты/Module.bsl +++ b/src/ru/OPI/src/CommonModules/OPI_Инструменты/Module.bsl @@ -789,36 +789,6 @@ #Область Служебные -Процедура ЗаменитьСпецСимволы(Текст, Разметка = "Markdown") Экспорт - - OPI_ПреобразованиеТипов.ПолучитьСтроку(Разметка); - - СоответствиеСимволов = Новый Соответствие; - - Если Разметка = "HTML" Тогда - - СоответствиеСимволов.Вставить("&", "&"); - - ИначеЕсли Разметка = "MarkdownV2" Тогда - - СоответствиеСимволов.Вставить("-", "\-"); - СоответствиеСимволов.Вставить("+", "\+"); - СоответствиеСимволов.Вставить("#", "\#"); - СоответствиеСимволов.Вставить("=", "\="); - СоответствиеСимволов.Вставить("{", "\{"); - СоответствиеСимволов.Вставить("}", "\}"); - СоответствиеСимволов.Вставить(".", "\."); - - Иначе - Возврат; - КонецЕсли; - - Для Каждого СимволМассива Из СоответствиеСимволов Цикл - Текст = СтрЗаменить(Текст, СимволМассива.Ключ, СимволМассива.Значение); - КонецЦикла; - -КонецПроцедуры - Процедура Пауза(Знач Секунды) Экспорт Соединение = Новый HTTPСоединение("1C.ru", 11111, , , , Секунды); diff --git a/src/ru/OPI/src/CommonModules/OPI_ПолучениеДанныхТестов/Module.bsl b/src/ru/OPI/src/CommonModules/OPI_ПолучениеДанныхТестов/Module.bsl index e163e4f00b..dc1dcc01c8 100644 --- a/src/ru/OPI/src/CommonModules/OPI_ПолучениеДанныхТестов/Module.bsl +++ b/src/ru/OPI/src/CommonModules/OPI_ПолучениеДанныхТестов/Module.bsl @@ -1397,7 +1397,11 @@ ОжидаетЧто(Результат).ИмеетТип("Соответствие").Заполнено(); ОжидаетЧто(Результат["ok"]).Равно(Истина); - ОжидаетЧто(Результат["result"]["caption"]).Равно(Текст); + + Если Вариант <> "Текст + Emoji" И Вариант <> "Сложный" Тогда + ОжидаетЧто(Результат["result"]["caption"]).Равно(Текст); + КонецЕсли; + ОжидаетЧто(Результат["result"]["photo"]).ИмеетТип("Массив"); Если Не ЗначениеЗаполнено(Вариант) Тогда diff --git a/src/ru/OPI/src/CommonModules/OPI_Тесты/Module.bsl b/src/ru/OPI/src/CommonModules/OPI_Тесты/Module.bsl index 2e147b6e09..7adbf16a63 100644 --- a/src/ru/OPI/src/CommonModules/OPI_Тесты/Module.bsl +++ b/src/ru/OPI/src/CommonModules/OPI_Тесты/Module.bsl @@ -3462,6 +3462,22 @@ Обработать(Результат, "Telegram", "ОтправитьТекстовоеСообщение", "Клавиатура структура"); + Текст = "%F0%9F%94%A5 *Новый релиз\!* + | + |%F0%9F%8F%B0 *Репозиторий*: [240596448/devtools](https://github.com/240596448/devtools) + |%F0%9F%94%A2 *Версия*: \{0.6.0} + |%F0%9F%93%85 *Дата релиза*: 6 декабря 2025 г. + | + |>*AI сводка* + |>Devtools — это инструмент для автоматизации работы с конфигурациями\расширениями 1С:Предприятия и интеграции с Git. Приложение позволяет выгружать и загружать объекты, а также синхронизировать изменения между Git и хранилищем 1С. В релизе 0.6.0 реализованы оптимизация логики работы и добавлено логирование, что способствует стабильности и упрощает анализ работы приложения. + | + | + |_Не забывайте ставить %E2%AD%90 понравившимся проектам_"; + + Результат = OPI_Telegram.ОтправитьТекстовоеСообщение(Токен, IDЧата, Текст , , "MarkdownV2"); + + Обработать(Результат, "Telegram", "ОтправитьТекстовоеСообщение", "Сложный"); + КонецПроцедуры Процедура Telegram_СформироватьКлавиатуруПоМассивуКнопок(ПараметрыФункции) @@ -3523,7 +3539,28 @@ Результат = OPI_Telegram.ОтправитьКартинку(Токен, IDКанала, Текст, Картинка, Клавиатура); Обработать(Результат, "Telegram", "ОтправитьКартинку", "Клавиатура коллекция", ПараметрыФункции, Текст); + + Текст = "Текст %F0%9F%A5%9D и emoji \(10%\)"; + Результат = OPI_Telegram.ОтправитьКартинку(Токен, IDКанала, Текст, Картинка, , "MarkdownV2"); + Обработать(Результат, "Telegram", "ОтправитьКартинку", "Текст + Emoji"); + + Текст = "%F0%9F%94%A5 *Новый релиз\!* + | + |%F0%9F%8F%B0 *Репозиторий*: [240596448/devtools](https://github.com/240596448/devtools) + |%F0%9F%94%A2 *Версия*: \{0.6.0} + |%F0%9F%93%85 *Дата релиза*: 6 декабря 2025 г. + | + |>*AI сводка* + |>Devtools — это инструмент для автоматизации работы с конфигурациями\расширениями 1С:Предприятия и интеграции с Git. Приложение позволяет выгружать и загружать объекты, а также синхронизировать изменения между Git и хранилищем 1С. В релизе 0.6.0 реализованы оптимизация логики работы и добавлено логирование, что способствует стабильности и упрощает анализ работы приложения. + | + | + |_Не забывайте ставить %E2%AD%90 понравившимся проектам_"; + + Результат = OPI_Telegram.ОтправитьКартинку(Токен, IDЧата, Текст , Картинка, , "MarkdownV2"); + + Обработать(Результат, "Telegram", "ОтправитьКартинку", "Сложный"); + OPI_Инструменты.УдалитьФайлВПопытке(КартинкаПуть, "Не удалось удалить временный файл после теста!"); OPI_Инструменты.Пауза(5);