|
Отправка файла из 1с в Telegram | ☑ | ||
---|---|---|---|---|
0
MAPATNK2
naïve
16.08.16
✎
15:17
|
Всем привет. Сие проблема застала меня: Осуществляю передачу отчета с помощью бота через telegram. отчет формируется, файлик отправляется, а на другом конце принимается, вот только при сохранении файла Excel выдает, что либо кодировка проблемна, либо файл поврежден. И при открытии получаю белеберду с нулями, единицами и непонятными символами))) Погмогите исправить прошу вас.
|
|||
1
MAPATNK2
naïve
16.08.16
✎
15:17
|
Процедура КнопкаВыполнитьНажатие(Кнопка)
Токен = "249415403:AAHhyU59bNN2Xq9yjkmiuRWoVVOV9oUI_zQ"; chat_id = "260329199"; Таб = Новый ТабличныйДокумент; Отчеты.Отчет2.Создать().СкомпоноватьРезультат(Таб); ИмяФайла = ПолучитьИмяВременногоФайла("xls"); Таб.Записать(ИмяФайла); СтрокаСоединения = "/bot" + Токен + "/sendDocument"; Boundary = "----"+Строка(Новый УникальныйИдентификатор()); //Определяем массив для процедуры ОбъединитьФайлы МассивФайловДляОбъединения = Новый Массив; //Формируем начальный фрагмент файла POST-запроса ИмяФайлаОтправкиНачало = ПолучитьИмяВременногоФайла("txt"); ФайлОтправкиНачало = Новый ЗаписьТекста(ИмяФайлаОтправкиНачало, КодировкаТекста.UTF8); //Формируем конечный фрагмент файла POST-запроса ИмяФайлаОтправкиКонец = ПолучитьИмяВременногоФайла("txt"); ФайлаОтправкиКонец = Новый ЗаписьТекста(ИмяФайлаОтправкиКонец, КодировкаТекста.UTF8); ТекстДляОтправки = ""; ТекстДляОтправки = ТекстДляОтправки + "--"+Boundary + Символы.ПС; ТекстДляОтправки = ТекстДляОтправки + "Content-Disposition: form-data; name=""chat_id""" + Символы.ПС + Символы.ПС; ТекстДляОтправки = ТекстДляОтправки + chat_id + Символы.ПС; ТекстДляОтправки = ТекстДляОтправки + "--"+Boundary + Символы.ПС; ТекстДляОтправки = ТекстДляОтправки + "Content-Disposition: form-data; name=""document""; filename=""report.xls""" + Символы.ПС; ТекстДляОтправки = ПереобразоватьЮникод(ТекстДляОтправки); ФайлОтправкиНачало.ЗаписатьСтроку(ТекстДляОтправки); ФайлОтправкиНачало.Закрыть(); МассивФайловДляОбъединения.Добавить(ИмяФайлаОтправкиНачало); МассивФайловДляОбъединения.Добавить(СокрЛП(ИмяФайла)); ТекстДляОтправки = "" + Символы.ПС; ТекстДляОтправки = ТекстДляОтправки + "--"+Boundary+"--"; ФайлаОтправкиКонец.ЗаписатьСтроку(ТекстДляОтправки); ФайлаОтправкиКонец.Закрыть(); МассивФайловДляОбъединения.Добавить(ИмяФайлаОтправкиКонец); ИмяФайлаОтправки = ПолучитьИмяВременногоФайла("txt"); ОбъединитьФайлы(МассивФайловДляОбъединения, ИмяФайлаОтправки); HTTPЗапрос = Новый HTTPЗапрос; Заголовки = Новый Соответствие; HTTPЗапрос.Заголовки.Вставить("Connection", "keep-alive"); HTTPЗапрос.Заголовки.Вставить("Content-Type", "multipart/form-data; boundary="+Boundary); HTTPЗапрос.УстановитьИмяФайлаТела(ИмяФайлаОтправки); HTTPЗапрос.АдресРесурса = СтрокаСоединения; ЗащищенноеСоединение = Новый ЗащищенноеСоединениеOpenSSL(Новый СертификатКлиентаWindows, Новый СертификатыУдостоверяющихЦентровWindows); HTTPСоединение = Новый HTTPСоединение("api.telegram.org",443,,,,,Новый ЗащищенноеСоединениеOpenSSL()); Попытка ОтветHTTP = HTTPСоединение.ОтправитьДляОбработки(HTTPЗапрос); Исключение Сообщить("Ошибка выполенния запроса!"); КонецПопытки; КонецПроцедуры |
|||
2
Garykom
гуру
16.08.16
✎
15:24
|
Попробуй отчет в архив засовывать перед отправкой и уже архивом отправлять
|
|||
3
MAPATNK2
naïve
16.08.16
✎
15:25
|
(2) А как это осуществить?
|
|||
4
Garykom
гуру
16.08.16
✎
15:26
|
Продам СП, дорого
|
|||
5
MAPATNK2
naïve
16.08.16
✎
15:26
|
(2) Но все же, мне это мало чем поможет. На большинстве устройств нет архиваторов.
|
|||
6
Garykom
гуру
16.08.16
✎
15:28
|
(5) Угу а открывалка формата екселя на этих устройствах откуда взялась?
|
|||
7
Garykom
гуру
16.08.16
✎
15:30
|
Тьфу у тя отправка по http кривая в дупель
|
|||
8
MAPATNK2
naïve
16.08.16
✎
15:41
|
(7) Все отправляется нормально. Я спросил про шрифт. В чем проблема?
|
|||
9
Garykom
гуру
16.08.16
✎
15:50
|
Идут стрельбы.
Дали автоматы, патроны, показали куда стрелять. Админ отстрелялся, подводят итоги. Мишень админа чистая. Командир: - ??????!!!!!.. Админ, проверяя автомат: - С моей стороны пули вылетели. Проблемы у вас... |
|||
10
Garykom
гуру
16.08.16
✎
15:52
|
Все люди делятся на 10 категорий: на тех, кто понимает двоичную систему счисления и на тех, кто её не понимает.
|
|||
11
MAPATNK2
naïve
16.08.16
✎
15:57
|
(10) Молодец, развлекайся тут)
|
|||
12
MM
16.08.16
✎
16:16
|
В Таб.Записать(ИмяФайла) - сохранение происходит в MXL
|
|||
13
MAPATNK2
naïve
17.08.16
✎
11:40
|
(12) А как изменить этот формат, чтобы читабильно в EXCEL было?
|
|||
14
opera199
17.08.16
✎
11:50
|
В эксель через ком-объекты сохраняется.
|
|||
15
Serginio1
17.08.16
✎
11:53
|
ТабличныйДокумент.Записать(ИмяФайла, ТипФайлаТабличногоДокумента.XLS);
Да а multipart/form-data проще отправлять http://catalog.mista.ru/public/466052/ // Вариант отправки двоичных данных из файла но более краткий ПотокФайла2 =Врап.ПолучитьТип("System.IO.File").OpenRead(ИмяФайла); ФайловыйКонтент2 =Врап.СоздатьОбъект("System.Net.Http.StreamContent",ПотокФайла2); Контент.Add(ФайловыйКонтент2,"attachment","TestXml"); requestUri = "api/values/SendFiles"; Результат = Клиент.PostAsync(requestUri, Контент).Result; стр = Результат.Content.ReadAsStringAsync().Result; |
|||
16
MAPATNK2
naïve
17.08.16
✎
12:51
|
(15) Не помогло
|
|||
17
MAPATNK2
naïve
17.08.16
✎
12:56
|
Сделал так, все работает отлично. Если есть недочеты, скажите пожалуйста.
Процедура КнопкаВыполнитьНажатие(Кнопка) Токен = "249415403:AAHhyU59bNN2Xq9yjkmiuRWoVVOV9oUI_zQ"; chat_id = "260329199"; Таб = Новый ТабличныйДокумент; Отчеты.Отчет2.Создать().СкомпоноватьРезультат(Таб); ИмяФайла = ПолучитьИмяВременногоФайла("xlsx"); Таб.Записать(ИмяФайла, ТипФайлаТабличногоДокумента.XLSX); СтрокаСоединения = "/bot" + Токен + "/sendDocument"; Boundary = "----"+Строка(Новый УникальныйИдентификатор()); //Определяем массив для процедуры ОбъединитьФайлы МассивФайловДляОбъединения = Новый Массив; //Формируем начальный фрагмент файла POST-запроса ИмяФайлаОтправкиНачало = ПолучитьИмяВременногоФайла("xlsx"); ФайлОтправкиНачало = Новый ЗаписьТекста(ИмяФайлаОтправкиНачало, КодировкаТекста.UTF8); //Формируем конечный фрагмент файла POST-запроса ИмяФайлаОтправкиКонец = ПолучитьИмяВременногоФайла("xlsx"); ФайлаОтправкиКонец = Новый ЗаписьТекста(ИмяФайлаОтправкиКонец, КодировкаТекста.UTF8); ТекстДляОтправки = ""; ТекстДляОтправки = ТекстДляОтправки + "--"+Boundary + Символы.ПС; ТекстДляОтправки = ТекстДляОтправки + "Content-Disposition: form-data; name=""chat_id""" + Символы.ПС + Символы.ПС; ТекстДляОтправки = ТекстДляОтправки + chat_id + Символы.ПС; ТекстДляОтправки = ТекстДляОтправки + "--"+Boundary + Символы.ПС; ТекстДляОтправки = ТекстДляОтправки + "Content-Disposition: form-data; name=""document""; filename=""report.xlsx""" + Символы.ПС; ФайлОтправкиНачало.ЗаписатьСтроку(ТекстДляОтправки); ФайлОтправкиНачало.Закрыть(); МассивФайловДляОбъединения.Добавить(ИмяФайлаОтправкиНачало); МассивФайловДляОбъединения.Добавить(СокрЛП(ИмяФайла)); ТекстДляОтправки = "" + Символы.ПС; ТекстДляОтправки = ТекстДляОтправки + "--"+Boundary+"--"; ФайлаОтправкиКонец.ЗаписатьСтроку(ТекстДляОтправки); ФайлаОтправкиКонец.Закрыть(); МассивФайловДляОбъединения.Добавить(ИмяФайлаОтправкиКонец); ИмяФайлаОтправки = ПолучитьИмяВременногоФайла("xlsx"); ОбъединитьФайлы(МассивФайловДляОбъединения, ИмяФайлаОтправки); HTTPЗапрос = Новый HTTPЗапрос; Заголовки = Новый Соответствие; HTTPЗапрос.Заголовки.Вставить("Connection", "keep-alive"); HTTPЗапрос.Заголовки.Вставить("Content-Type", "multipart/form-data; boundary="+Boundary); HTTPЗапрос.УстановитьИмяФайлаТела(ИмяФайлаОтправки); HTTPЗапрос.АдресРесурса = СтрокаСоединения; ЗащищенноеСоединение = Новый ЗащищенноеСоединениеOpenSSL(Новый СертификатКлиентаWindows, Новый СертификатыУдостоверяющихЦентровWindows); HTTPСоединение = Новый HTTPСоединение("api.telegram.org",443,,,,,Новый ЗащищенноеСоединениеOpenSSL()); Попытка ОтветHTTP = HTTPСоединение.ОтправитьДляОбработки(HTTPЗапрос); Исключение Сообщить("Ошибка выполенния запроса!"); КонецПопытки; КонецПроцедуры |
|||
18
MAPATNK2
naïve
17.08.16
✎
12:57
|
(15) Спасибо большое. Может вы знаете есть ли где примеры по работе с Telegram? Нужно чтобы пользователи отправляли боту сообщения, а 1с-ка сохраняла эти сообщения в документ.??
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |