Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Интеграция с Телеграмм
Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7 > Программисту > Программирование в 1С Предприятие 7.7
Lunatik_55
Разобрался как отсылать сообщения, но не получается отослать многоуровневый тест
    XMLHTTP = СоздатьОбъект("Microsoft.XMLHTTP");
    XMLHTTP.Open("POST","https://api.telegram.org/bot"+Токен+"/sendMessage?chat_id="+chat_id+"&text="+ Сообщение,0);
    XMLHTTP.SetRequestHeader("Content-Type", "application/json;charset=utf-8");     //charset=utf-8
    XMLHTTP.Send();

Если отправить текст сообщения
"1
2"
в телеграмм приходит "12". Может кто подсказать, как нужно отформатировать текст, чтобы в телеграмм боте он тоже был многоуровневым, а не сбивался в одну строку.
Есть процедура форматирования текста в utf-8, но привел пример именно с цифрами, чтобы не отвлекаться на форматирование.

p.s Читаю гугл, но за рамки стандартного 1с раньше не выходил и интеграция с телеграмм продвигается очень медленно. Может у кого то есть пример кода или обработки в 1с77, как делать выделение текста отправляемого в телеграмм, любое другое оформление или просто пример любой интеграции.
Naghual
необходимо зарегистрироваться для просмотра ссылки
volodya1122
в восьмерке для єтого я использую такой код
ТекстСообщения=СтрЗаменить(ТекстСообщения,Символы.ПС,"%0A");
AndriiZ
Lunatik_55 @ 06.12.20, 14:35 необходимо зарегистрироваться для просмотра ссылки ,
Подскажите, как отправить в документ (файл) в телеграмм?
volodya1122
AndriiZ @ Вчера, 0:25 необходимо зарегистрироваться для просмотра ссылки ,

Код для 1С8. Як в 1с7 це зробити -незнаю.

Процедура ОтправитьФайл(ПутьКФайлу,ЧатID)
    
МойToken = "4545454545:ghfhfdttjdghjhjthjhdgjhjghjdghjghj";
АдресTelegramAPI = "api.telegram.org";
//ЧатID = "111222333";

//ПутьКФайлу = "D:\Договор.pdf";
Boundary = "----"+Строка(Новый УникальныйИдентификатор());

Файл = Новый Файл(ПутьКФайлу);

//Определяем массив для процедуры ОбъединитьФайлы
МассивФайловДляОбъединения = Новый Массив;

ФайлВМассив1=ПолучитьИмяВременногоФайла("txt");
МассивФайловДляОбъединения.Добавить(ФайлВМассив1);
ФайлОтправкиНачало = Новый ЗаписьТекста(МассивФайловДляОбъединения[0], КодировкаТекста.UTF8);
НачальныеДанные = "--%Разделитель%
|Content-Disposition: form-data; name=""chat_id""
|
|%ЧатID%
|--%Разделитель%
|Content-Disposition: form-data; name=""document""; filename=""%ИмяФайла%""
|";
НачальныеДанные = СтрЗаменить(НачальныеДанные,"%Разделитель%",Boundary);
НачальныеДанные = СтрЗаменить(НачальныеДанные,"%ЧатID%",ЧатID);
НачальныеДанные = СтрЗаменить(НачальныеДанные,"%ИмяФайла%",Файл.Имя);

ФайлОтправкиНачало.ЗаписатьСтроку(НачальныеДанные );
ФайлОтправкиНачало.Закрыть();

МассивФайловДляОбъединения.Добавить(ПутьКФайлу);

ФайлВМассив2=ПолучитьИмяВременногоФайла("txt");
МассивФайловДляОбъединения.Добавить(ФайлВМассив2);
ФайлаОтправкиКонец = Новый ЗаписьТекста(МассивФайловДляОбъединения[2], КодировкаТекста.UTF8);
КонечныеДанные = "
|--%Разделитель%--";
КонечныеДанные = СтрЗаменить(КонечныеДанные,"%Разделитель%",Boundary);

ФайлаОтправкиКонец.ЗаписатьСтроку(КонечныеДанные);
ФайлаОтправкиКонец.Закрыть();

ИмяИтоговогоФайла = ПолучитьИмяВременногоФайла("txt");
ОбъединитьФайлы(МассивФайловДляОбъединения, ИмяИтоговогоФайла);

//Прокси = Новый ИнтернетПрокси;
//Прокси.Установить("https", ПроксиАдрес, ПроксиПорт);
//Прокси.Установить("http", ПроксиАдрес, ПроксиПорт);

//СоединениеHTTP  =  Новый HTTPСоединение(Сервер,443,,,,5,Новый ЗащищенноеСоединениеOpenSSL());

СоединениеHTTP = Новый HTTPСоединение(АдресTelegramAPI,443,,,,5,Новый ЗащищенноеСоединениеOpenSSL());

АдресЗапроса = "bot"
                + МойToken
                + "/sendDocument";
                
ЗапросHTTP = Новый HTTPЗапрос(АдресЗапроса);
ЗапросHTTP.Заголовки.Вставить("Connection", "keep-alive");
ЗапросHTTP.Заголовки.Вставить("Content-Type", "multipart/form-data; boundary="+Boundary);

ЗапросHTTP.УстановитьИмяФайлаТела(ИмяИтоговогоФайла);


Попытка
    ОтветHTTP = СоединениеHTTP.ОтправитьДляОбработки(ЗапросHTTP);
Исключение
    Сообщить(ОписаниеОшибки());
КонецПопытки;    

УдалитьФайлы(ФайлВМассив1);
УдалитьФайлы(ФайлВМассив2);
//УдалитьФайлы(ИмяИтоговогоФайла);  // інколи вилітає помилка при видаленні
УдалитьФайлы(ПутьКФайлу);

    
КонецПроцедуры
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.