Имя: Пароль:
1C
1С v8
Сохранение документа из Телеграмма в 1с
0 Aydar
 
18.10.17
13:56
Как можно реализовать?
Нужно чтобы пользователи отправляли боту документ, а 1с-ка сохраняла эти  документы.
1 Филиал-msk
 
18.10.17
15:10
Вчера же уже обсуждали - Прием файлов из телеграмм в 1с
2 Лефмихалыч
 
18.10.17
15:40
(1) бестолково обсудили - ветка ни о чем.
3 Numerus Mikhail
 
18.10.17
15:41
(2) Ну так и эта такая же
4 PiotrLoginov
 
18.10.17
16:03
может, поможет  http://catalog.mista.ru/public/387433/
5 BaHgaJI
 
18.10.17
16:53
Выполни метод телеграма getfile, туда передается id файла.

А потом разбирай полученный ответ:

Ответ =  Ответ.result.file_path;
    Если Найти(Ответ,"photos/") Тогда
        ПутьКФалу = Ответ;
        ИмяСохраненияДляФайла = Сред(Ответ, Найти(Ответ,"/")+1) ;
    ИначеЕсли Найти(Ответ,"document/") Тогда
        ПутьКФалу = Ответ;
        ИмяСохраненияДляФайла = Сред(Ответ, Найти(Ответ,"/")+1) ;        
    КонецЕсли;

Ресурс = "https://"; + "api.telegram.org" + "/file/bot" + ТокенБотаТелеграма + "/" + ПутьКФалу;
    КопироватьФайл(Ресурс,ПутьКудаСкопироватьФайл);
6 Aydar
 
19.10.17
13:43
(5) Делаю следующим образом
Процедура Скачать(file_id)
    
    Ключ         = Константы.КлючAPI.Получить();
    Сервер = "api.telegram.org";
    Команда = "getFile";
    Ресурс         = "bot" + Ключ + "/" + Команда + "?file_id=" + file_id;
    Соединение     = Новый HTTPСоединение(Сервер,,,,,, Новый ЗащищенноеСоединениеOpenSSL);
    Запрос         = Новый HTTPЗапрос(Ресурс);
    Ответ         = Соединение.Получить(Запрос);
    Чтение         = Новый ЧтениеJSON;
    Чтение.УстановитьСтроку(Ответ.ПолучитьТелоКакСтроку());
    ОтветСоотв = ПрочитатьJSON(Чтение, Истина);
    ok =  ОтветСоотв["ok"];
    Если ok Тогда
        path = ОтветСоотв["result"]["file_path"];
    КонецЕсли;
    Ресурс = "file" + "/" + "bot" + Ключ + "/" + path;
    Запрос         = Новый HTTPЗапрос(Ресурс);
    Ответ         = Соединение.Получить(Запрос);
    
    
КонецПроцедуры

Как можно исправить, что бы файл скачался?
7 skela1c
 
19.10.17
14:25
"Ответ" будет иметь тип "HTTPОтвет" и использовать его  методы
8 Aydar
 
19.10.17
14:31
(7) я знаю, что такой тип будет иметь)
как сделать так, что файл скачался?
в переменной ресурс хранится прямая ссылка на скачивание, если я эту ссылку вставляю в браузер, то файл скачивается, а почему
через 1с не скачивается?
9 ilyavorobyev
 
19.10.17
14:32
(8) тебе же написали
Ресурс = "https://";; + "api.telegram.org" + "/file/bot" + ТокенБотаТелеграма + "/" + ПутьКФалу;

    КопироватьФайл(Ресурс,ПутьКудаСкопироватьФайл);
10 Aydar
 
19.10.17
14:56
(9) так не работает
11 Aydar
 
19.10.17
15:12
(9) может как то с помощь json а нужно делать, только я не умею с ним работать
12 skela1c
 
19.10.17
15:20
а если post запрос отправить?
13 Aydar
 
19.10.17
16:10
(12) а как в 1с пост запрос отправлять?
14 skela1c
 
19.10.17
16:49
ТелоЗапроса1 = запрос_на_Скачивание;

Запрос2  = Новый HTTPЗапрос(РесурсНаСервере, Заголовки2);
        Запрос2.УстановитьТелоИзСтроки(ТелоЗапроса1, "windows-1251");
фРезультата = КаталогВременныхФайлов()+"123.html";
Результа2 = Соединение.ОтправитьДляОбработки(Запрос2, фРезультата);
15 Aydar
 
19.10.17
17:12
(14) тоже не работает
Чтобы обнаруживать ошибки, программист должен иметь ум, которому доставляет удовольствие находить изъяны там, где, казалось, царят красота и совершенство. Фредерик Брукс-младший