Compare commits
2 Commits
a7e569e141
...
03a0be54d5
| Author | SHA1 | Date | |
|---|---|---|---|
| 03a0be54d5 | |||
| c36dbb347b |
@@ -36,7 +36,7 @@
|
|||||||
РезультатЗапроса.Описание));
|
РезультатЗапроса.Описание));
|
||||||
КонецЕсли;
|
КонецЕсли;
|
||||||
|
|
||||||
Если Константы.ЛогироватьHttpЗапросы.Получить() Тогда
|
Если ТелеграмПовторноеИспользование.ЛогироватьHttpЗапросы() Тогда
|
||||||
ЗалогироватьЗапрос(АдресРесурса, Перечисления.МетодHTTPЗапроса.GET, ТелоОтветаКакСтрока, КодСостояния);
|
ЗалогироватьЗапрос(АдресРесурса, Перечисления.МетодHTTPЗапроса.GET, ТелоОтветаКакСтрока, КодСостояния);
|
||||||
КонецЕсли;
|
КонецЕсли;
|
||||||
Исключение
|
Исключение
|
||||||
@@ -69,6 +69,9 @@
|
|||||||
Запрос.УстановитьТелоИзДвоичныхДанных(Данные.ДвоичныеДанные);
|
Запрос.УстановитьТелоИзДвоичныхДанных(Данные.ДвоичныеДанные);
|
||||||
Запрос.Заголовки.Вставить("Content-Length", Формат(Данные.ДвоичныеДанные.Размер(), "ЧН=0; ЧГ="));
|
Запрос.Заголовки.Вставить("Content-Length", Формат(Данные.ДвоичныеДанные.Размер(), "ЧН=0; ЧГ="));
|
||||||
Запрос.Заголовки.Вставить("Content-Type", "multipart/form-data; boundary=" + Данные.Разделитель);
|
Запрос.Заголовки.Вставить("Content-Type", "multipart/form-data; boundary=" + Данные.Разделитель);
|
||||||
|
Иначе
|
||||||
|
Запрос.Заголовки.Вставить("Content-Type","application/json");
|
||||||
|
Запрос.УстановитьТелоИзСтроки(HttpОбщегоНазначения.ОбъектВСтрокуJson(Данные));
|
||||||
КонецЕсли;
|
КонецЕсли;
|
||||||
Иначе
|
Иначе
|
||||||
Запрос.Заголовки.Вставить("Content-Type","application/json");
|
Запрос.Заголовки.Вставить("Content-Type","application/json");
|
||||||
@@ -92,7 +95,7 @@
|
|||||||
РезультатЗапроса.Описание));
|
РезультатЗапроса.Описание));
|
||||||
КонецЕсли;
|
КонецЕсли;
|
||||||
|
|
||||||
Если Константы.ЛогироватьHttpЗапросы.Получить() Тогда
|
Если ТелеграмПовторноеИспользование.ЛогироватьHttpЗапросы() Тогда
|
||||||
ЗалогироватьЗапрос(АдресРесурса, Перечисления.МетодHTTPЗапроса.POST, ТелоОтветаКакСтрока, КодСостояния);
|
ЗалогироватьЗапрос(АдресРесурса, Перечисления.МетодHTTPЗапроса.POST, ТелоОтветаКакСтрока, КодСостояния);
|
||||||
КонецЕсли;
|
КонецЕсли;
|
||||||
Исключение
|
Исключение
|
||||||
|
|||||||
@@ -1,8 +1,13 @@
|
|||||||
#Область ПрограммныйИнтерфейс
|
#Область ПрограммныйИнтерфейс
|
||||||
|
|
||||||
Функция SendMessage(ИдЧата, СообщениеДляОтправки) Экспорт
|
Функция SendMessage(ИдЧата, СообщениеДляОтправки, Клавиатура = Неопределено) Экспорт
|
||||||
|
|
||||||
ТелоЗапроса = Новый Структура("chat_id, text", ИдЧата, СообщениеДляОтправки);
|
ТелоЗапроса = Новый Структура("chat_id, text", ИдЧата, СообщениеДляОтправки);
|
||||||
|
|
||||||
|
Если Клавиатура <> Неопределено Тогда
|
||||||
|
ТелоЗапроса.Вставить("reply_markup", Клавиатура);
|
||||||
|
КонецЕсли;
|
||||||
|
|
||||||
АдресРесурса = АдресРесурсаПоИмениМетода("sendMessage");
|
АдресРесурса = АдресРесурсаПоИмениМетода("sendMessage");
|
||||||
Возврат HttpОбщегоНазначения.ВыполнитьPostЗапрос(АдресРесурса,, ТелоЗапроса);
|
Возврат HttpОбщегоНазначения.ВыполнитьPostЗапрос(АдресРесурса,, ТелоЗапроса);
|
||||||
|
|
||||||
@@ -65,6 +70,24 @@
|
|||||||
|
|
||||||
КонецФункции
|
КонецФункции
|
||||||
|
|
||||||
|
Функция SendPhoto(ИдЧата, ФайлДляОтправки, ИмяФайла, Надпись = Неопределено, БезУведомления = Ложь) Экспорт
|
||||||
|
|
||||||
|
АдресРесурса = АдресРесурсаПоИмениМетода("sendPhoto");
|
||||||
|
ПараметрыЗапроса = Новый Структура("chat_id", Формат(ИдЧата, "ЧН=0; ЧГ="));
|
||||||
|
Если Надпись <> Неопределено Тогда
|
||||||
|
ПараметрыЗапроса.Вставить("caption", Надпись);
|
||||||
|
КонецЕсли;
|
||||||
|
Если БезУведомления Тогда
|
||||||
|
ПараметрыЗапроса.Вставить("disable_notification", "true");
|
||||||
|
КонецЕсли;
|
||||||
|
|
||||||
|
Разделитель = СтрЗаменить(Новый УникальныйИдентификатор, "-", "");
|
||||||
|
ДвоичныеДанныеФото = ДвоичныеДанныеФайла(ФайлДляОтправки, ИмяФайла, "image/jpeg", "photo", Разделитель);
|
||||||
|
ДанныеФото = Новый Структура("Разделитель, ДвоичныеДанные", Разделитель, ДвоичныеДанныеФото);
|
||||||
|
Возврат HttpОбщегоНазначения.ВыполнитьPostЗапрос(АдресРесурса, ПараметрыЗапроса, ДанныеФото);
|
||||||
|
|
||||||
|
КонецФункции
|
||||||
|
|
||||||
#КонецОбласти
|
#КонецОбласти
|
||||||
|
|
||||||
#Область СлужебныеПроцедурыИФункции
|
#Область СлужебныеПроцедурыИФункции
|
||||||
@@ -83,6 +106,9 @@
|
|||||||
|
|
||||||
Функция ДвоичныеДанныеДокумента(ИдЧата, Документ, Надпись = Неопределено, БезУведомления = Ложь, Разделитель)
|
Функция ДвоичныеДанныеДокумента(ИдЧата, Документ, Надпись = Неопределено, БезУведомления = Ложь, Разделитель)
|
||||||
|
|
||||||
|
//Параметры ИдЧата, Надпись, БезУведомления можно передавать также в параметрах запроса, а не в теле как здесь
|
||||||
|
// Отправка фото сделана именно так. Все значения, кроме непосредственно фото задаются в параметрах запроса.
|
||||||
|
|
||||||
Если Документ = Неопределено ИЛИ Не (Документ.Свойство("ДанныеФайла") И ТипЗнч(Документ.ДанныеФайла) = Тип("ДвоичныеДанные")) Тогда
|
Если Документ = Неопределено ИЛИ Не (Документ.Свойство("ДанныеФайла") И ТипЗнч(Документ.ДанныеФайла) = Тип("ДвоичныеДанные")) Тогда
|
||||||
ВызватьИсключение "Неверный параметр Документ: ожидается непустой объект, содержащий двоичные данные";
|
ВызватьИсключение "Неверный параметр Документ: ожидается непустой объект, содержащий двоичные данные";
|
||||||
КонецЕсли;
|
КонецЕсли;
|
||||||
@@ -105,7 +131,23 @@
|
|||||||
|
|
||||||
КонецФункции
|
КонецФункции
|
||||||
|
|
||||||
Процедура ЗаписатьЭлементаЗапроса(ЗаписьДанных, Разделитель, ИмяПоля, Значение, ИмяФайла = Неопределено, ТипСодержимого = Неопределено)
|
Функция ДвоичныеДанныеФайла(Файл, ИмяФайла, ТипСодержимого, ИмяПараметра, Разделитель)
|
||||||
|
|
||||||
|
Если Файл = Неопределено ИЛИ ТипЗнч(Файл) <> Тип("ДвоичныеДанные") Тогда
|
||||||
|
ВызватьИсключение "Неверный параметр Файл: ожидается непустой объект, содержащий двоичные данные";
|
||||||
|
КонецЕсли;
|
||||||
|
|
||||||
|
ТелоЗапроса = Новый ПотокВПамяти();
|
||||||
|
ЗаписьДанных = Новый ЗаписьДанных(ТелоЗапроса, , , Символы.ВК + Символы.ПС, "");
|
||||||
|
ЗаписатьЭлементаЗапроса(ЗаписьДанных, Разделитель, ИмяПараметра, Файл, ИмяФайла, ТипСодержимого);
|
||||||
|
ЗаписьДанных.ЗаписатьСтроку("--" + Разделитель + "--");
|
||||||
|
ЗаписьДанных.Закрыть();
|
||||||
|
|
||||||
|
Возврат ТелоЗапроса.ЗакрытьИПолучитьДвоичныеДанные();
|
||||||
|
|
||||||
|
КонецФункции
|
||||||
|
|
||||||
|
Процедура ЗаписатьЭлементаЗапроса(ЗаписьДанных, Разделитель, ИмяПараметра, Значение, ИмяФайла = Неопределено, ТипСодержимого = Неопределено)
|
||||||
|
|
||||||
Если Значение = Неопределено Тогда
|
Если Значение = Неопределено Тогда
|
||||||
Возврат;
|
Возврат;
|
||||||
@@ -113,9 +155,9 @@
|
|||||||
|
|
||||||
ЗаписьДанных.ЗаписатьСтроку("--" + Разделитель);
|
ЗаписьДанных.ЗаписатьСтроку("--" + Разделитель);
|
||||||
Если ИмяФайла <> Неопределено Тогда
|
Если ИмяФайла <> Неопределено Тогда
|
||||||
ЗаписьДанных.ЗаписатьСтроку(СтрШаблон("Content-Disposition: form-data; name=%1; filename=%2", ИмяПоля, ИмяФайла));
|
ЗаписьДанных.ЗаписатьСтроку(СтрШаблон("Content-Disposition: form-data; name=%1; filename=%2", ИмяПараметра, ИмяФайла));
|
||||||
Иначе
|
Иначе
|
||||||
ЗаписьДанных.ЗаписатьСтроку(СтрШаблон("Content-Disposition: form-data; name=%1", ИмяПоля));
|
ЗаписьДанных.ЗаписатьСтроку(СтрШаблон("Content-Disposition: form-data; name=%1", ИмяПараметра));
|
||||||
КонецЕсли;
|
КонецЕсли;
|
||||||
|
|
||||||
Если ТипСодержимого <> Неопределено Тогда
|
Если ТипСодержимого <> Неопределено Тогда
|
||||||
|
|||||||
@@ -45,7 +45,13 @@
|
|||||||
|
|
||||||
Функция ОбновленияТелеграм(ТелоЗапроса) Экспорт
|
Функция ОбновленияТелеграм(ТелоЗапроса) Экспорт
|
||||||
|
|
||||||
|
Если ТипЗнч(ТелоЗапроса) = Тип("Соответствие") Тогда
|
||||||
|
ДанныеОбновления = ТелоЗапроса;
|
||||||
|
ИначеЕсли ТипЗнч(ТелоЗапроса) = Тип("Строка") Тогда
|
||||||
ДанныеОбновления = HttpОбщегоНазначения.СтрокаJsonВОбъект(ТелоЗапроса);
|
ДанныеОбновления = HttpОбщегоНазначения.СтрокаJsonВОбъект(ТелоЗапроса);
|
||||||
|
Иначе
|
||||||
|
Возврат Неопределено;
|
||||||
|
КонецЕсли;
|
||||||
|
|
||||||
МассивСообщенийТелеграм = Новый Массив;
|
МассивСообщенийТелеграм = Новый Массив;
|
||||||
|
|
||||||
|
|||||||
@@ -3,3 +3,10 @@
|
|||||||
Возврат Константы.ТелеграмТокен.Получить();
|
Возврат Константы.ТелеграмТокен.Получить();
|
||||||
|
|
||||||
КонецФункции
|
КонецФункции
|
||||||
|
|
||||||
|
|
||||||
|
Функция ЛогироватьHttpЗапросы() Экспорт
|
||||||
|
|
||||||
|
Возврат Константы.ЛогироватьHttpЗапросы.Получить();
|
||||||
|
|
||||||
|
КонецФункции
|
||||||
|
|||||||
23
src/cf/CommonModules/ТелеграмРаботаСКлавиатурой.xml
Normal file
23
src/cf/CommonModules/ТелеграмРаботаСКлавиатурой.xml
Normal file
@@ -0,0 +1,23 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<MetaDataObject xmlns="http://v8.1c.ru/8.3/MDClasses" xmlns:app="http://v8.1c.ru/8.2/managed-application/core" xmlns:cfg="http://v8.1c.ru/8.1/data/enterprise/current-config" xmlns:cmi="http://v8.1c.ru/8.2/managed-application/cmi" xmlns:ent="http://v8.1c.ru/8.1/data/enterprise" xmlns:lf="http://v8.1c.ru/8.2/managed-application/logform" xmlns:style="http://v8.1c.ru/8.1/data/ui/style" xmlns:sys="http://v8.1c.ru/8.1/data/ui/fonts/system" xmlns:v8="http://v8.1c.ru/8.1/data/core" xmlns:v8ui="http://v8.1c.ru/8.1/data/ui" xmlns:web="http://v8.1c.ru/8.1/data/ui/colors/web" xmlns:win="http://v8.1c.ru/8.1/data/ui/colors/windows" xmlns:xen="http://v8.1c.ru/8.3/xcf/enums" xmlns:xpr="http://v8.1c.ru/8.3/xcf/predef" xmlns:xr="http://v8.1c.ru/8.3/xcf/readable" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="2.19">
|
||||||
|
<CommonModule uuid="b5c4da46-161d-4c6d-adbf-375e3fbc5f45">
|
||||||
|
<Properties>
|
||||||
|
<Name>ТелеграмРаботаСКлавиатурой</Name>
|
||||||
|
<Synonym>
|
||||||
|
<v8:item>
|
||||||
|
<v8:lang>ru</v8:lang>
|
||||||
|
<v8:content>Телеграм работа с клавиатурой</v8:content>
|
||||||
|
</v8:item>
|
||||||
|
</Synonym>
|
||||||
|
<Comment/>
|
||||||
|
<Global>false</Global>
|
||||||
|
<ClientManagedApplication>false</ClientManagedApplication>
|
||||||
|
<Server>true</Server>
|
||||||
|
<ExternalConnection>true</ExternalConnection>
|
||||||
|
<ClientOrdinaryApplication>false</ClientOrdinaryApplication>
|
||||||
|
<ServerCall>true</ServerCall>
|
||||||
|
<Privileged>false</Privileged>
|
||||||
|
<ReturnValuesReuse>DontUse</ReturnValuesReuse>
|
||||||
|
</Properties>
|
||||||
|
</CommonModule>
|
||||||
|
</MetaDataObject>
|
||||||
@@ -0,0 +1,45 @@
|
|||||||
|
Функция КлавиатураОтвета(Клавиатура, Компактная = Ложь, Одноразовая = Ложь) Экспорт
|
||||||
|
|
||||||
|
СоответствиеКлавиатуры = Новый Соответствие();
|
||||||
|
|
||||||
|
СоответствиеКлавиатуры.Вставить("keyboard", Клавиатура);
|
||||||
|
|
||||||
|
Если Компактная Тогда
|
||||||
|
СоответствиеКлавиатуры.Вставить("resize_keyboard", Компактная);
|
||||||
|
КонецЕсли;
|
||||||
|
|
||||||
|
Если Одноразовая Тогда
|
||||||
|
СоответствиеКлавиатуры.Вставить("one_time_keyboard", Одноразовая);
|
||||||
|
КонецЕсли;
|
||||||
|
|
||||||
|
Возврат СоответствиеКлавиатуры;
|
||||||
|
|
||||||
|
КонецФункции
|
||||||
|
|
||||||
|
Функция КнопкаКлавиатуры(Надпись) Экспорт
|
||||||
|
|
||||||
|
СоответствиеКнопка = Новый Соответствие;
|
||||||
|
СоответствиеКнопка.Вставить("text", ?(НЕ ЗначениеЗаполнено(Надпись), "<?>", Надпись));
|
||||||
|
Возврат СоответствиеКнопка;
|
||||||
|
|
||||||
|
КонецФункции
|
||||||
|
|
||||||
|
Функция РядКнопок(СписокНаименованийКнопокСтрокой) Экспорт
|
||||||
|
|
||||||
|
Результат = Новый Массив;
|
||||||
|
МассивНаименованийКнопок = СтрРазделить(СписокНаименованийКнопокСтрокой, ";");
|
||||||
|
|
||||||
|
Если МассивНаименованийКнопок.Количество() = 0 Тогда
|
||||||
|
Возврат Результат;
|
||||||
|
КонецЕсли;
|
||||||
|
|
||||||
|
Для каждого НадписьКнопки Из МассивНаименованийКнопок Цикл
|
||||||
|
Результат.Добавить(КнопкаКлавиатуры(НадписьКнопки));
|
||||||
|
КонецЦикла;
|
||||||
|
|
||||||
|
Возврат Результат;
|
||||||
|
|
||||||
|
КонецФункции
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
17
src/cf/CommonPictures/КартинкаБот.xml
Normal file
17
src/cf/CommonPictures/КартинкаБот.xml
Normal file
@@ -0,0 +1,17 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<MetaDataObject xmlns="http://v8.1c.ru/8.3/MDClasses" xmlns:app="http://v8.1c.ru/8.2/managed-application/core" xmlns:cfg="http://v8.1c.ru/8.1/data/enterprise/current-config" xmlns:cmi="http://v8.1c.ru/8.2/managed-application/cmi" xmlns:ent="http://v8.1c.ru/8.1/data/enterprise" xmlns:lf="http://v8.1c.ru/8.2/managed-application/logform" xmlns:style="http://v8.1c.ru/8.1/data/ui/style" xmlns:sys="http://v8.1c.ru/8.1/data/ui/fonts/system" xmlns:v8="http://v8.1c.ru/8.1/data/core" xmlns:v8ui="http://v8.1c.ru/8.1/data/ui" xmlns:web="http://v8.1c.ru/8.1/data/ui/colors/web" xmlns:win="http://v8.1c.ru/8.1/data/ui/colors/windows" xmlns:xen="http://v8.1c.ru/8.3/xcf/enums" xmlns:xpr="http://v8.1c.ru/8.3/xcf/predef" xmlns:xr="http://v8.1c.ru/8.3/xcf/readable" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="2.19">
|
||||||
|
<CommonPicture uuid="4354a6ea-157f-4456-a82a-14909b7c2bd2">
|
||||||
|
<Properties>
|
||||||
|
<Name>КартинкаБот</Name>
|
||||||
|
<Synonym>
|
||||||
|
<v8:item>
|
||||||
|
<v8:lang>ru</v8:lang>
|
||||||
|
<v8:content>Картинка бот</v8:content>
|
||||||
|
</v8:item>
|
||||||
|
</Synonym>
|
||||||
|
<Comment/>
|
||||||
|
<AvailabilityForChoice>false</AvailabilityForChoice>
|
||||||
|
<AvailabilityForAppearance>false</AvailabilityForAppearance>
|
||||||
|
</Properties>
|
||||||
|
</CommonPicture>
|
||||||
|
</MetaDataObject>
|
||||||
7
src/cf/CommonPictures/КартинкаБот/Ext/Picture.xml
Normal file
7
src/cf/CommonPictures/КартинкаБот/Ext/Picture.xml
Normal file
@@ -0,0 +1,7 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<ExtPicture xmlns="http://v8.1c.ru/8.3/xcf/extrnprops" xmlns:xr="http://v8.1c.ru/8.3/xcf/readable" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="2.19">
|
||||||
|
<Picture>
|
||||||
|
<xr:Abs>Picture.png</xr:Abs>
|
||||||
|
<xr:LoadTransparent>false</xr:LoadTransparent>
|
||||||
|
</Picture>
|
||||||
|
</ExtPicture>
|
||||||
BIN
src/cf/CommonPictures/КартинкаБот/Ext/Picture/Picture.png
Normal file
BIN
src/cf/CommonPictures/КартинкаБот/Ext/Picture/Picture.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 139 KiB |
@@ -246,12 +246,14 @@
|
|||||||
<ChildObjects>
|
<ChildObjects>
|
||||||
<Language>Русский</Language>
|
<Language>Русский</Language>
|
||||||
<Subsystem>ТелеграмБот</Subsystem>
|
<Subsystem>ТелеграмБот</Subsystem>
|
||||||
|
<CommonPicture>КартинкаБот</CommonPicture>
|
||||||
<CommonModule>HttpОбщегоНазначения</CommonModule>
|
<CommonModule>HttpОбщегоНазначения</CommonModule>
|
||||||
<CommonModule>ТелеграмМетодыВызовСервера</CommonModule>
|
<CommonModule>ТелеграмМетодыВызовСервера</CommonModule>
|
||||||
<CommonModule>ТелеграмОбщегоНазначения</CommonModule>
|
<CommonModule>ТелеграмОбщегоНазначения</CommonModule>
|
||||||
<CommonModule>ТелеграмПовторноеИспользование</CommonModule>
|
<CommonModule>ТелеграмПовторноеИспользование</CommonModule>
|
||||||
<CommonModule>ТелеграмРегламент</CommonModule>
|
<CommonModule>ТелеграмРегламент</CommonModule>
|
||||||
<CommonModule>РаботаСФайламиКлиентСервер</CommonModule>
|
<CommonModule>РаботаСФайламиКлиентСервер</CommonModule>
|
||||||
|
<CommonModule>ТелеграмРаботаСКлавиатурой</CommonModule>
|
||||||
<HTTPService>HTTPСервис_Telegram</HTTPService>
|
<HTTPService>HTTPСервис_Telegram</HTTPService>
|
||||||
<ScheduledJob>ПроверкаОбновленийТелеграм</ScheduledJob>
|
<ScheduledJob>ПроверкаОбновленийТелеграм</ScheduledJob>
|
||||||
<Constant>ТелеграмТокен</Constant>
|
<Constant>ТелеграмТокен</Constant>
|
||||||
|
|||||||
@@ -116,6 +116,7 @@
|
|||||||
</v8:item>
|
</v8:item>
|
||||||
</ToolTip>
|
</ToolTip>
|
||||||
<Group>Vertical</Group>
|
<Group>Vertical</Group>
|
||||||
|
<Representation>StrongSeparation</Representation>
|
||||||
<ExtendedTooltip name="ЗагрузкаДокументовРасширеннаяПодсказка" id="31"/>
|
<ExtendedTooltip name="ЗагрузкаДокументовРасширеннаяПодсказка" id="31"/>
|
||||||
<ChildItems>
|
<ChildItems>
|
||||||
<InputField name="ИдФайла" id="32">
|
<InputField name="ИдФайла" id="32">
|
||||||
@@ -129,10 +130,39 @@
|
|||||||
<CommandName>Form.Command.СкачатьФайл</CommandName>
|
<CommandName>Form.Command.СкачатьФайл</CommandName>
|
||||||
<ExtendedTooltip name="СкачатьФайлРасширеннаяПодсказка" id="36"/>
|
<ExtendedTooltip name="СкачатьФайлРасширеннаяПодсказка" id="36"/>
|
||||||
</Button>
|
</Button>
|
||||||
<Button name="ПолучитьФайл" id="37">
|
</ChildItems>
|
||||||
|
</UsualGroup>
|
||||||
|
<UsualGroup name="SendDocument" id="39">
|
||||||
|
<Title>
|
||||||
|
<v8:item>
|
||||||
|
<v8:lang>ru</v8:lang>
|
||||||
|
<v8:content>Send document</v8:content>
|
||||||
|
</v8:item>
|
||||||
|
</Title>
|
||||||
|
<ToolTip>
|
||||||
|
<v8:item>
|
||||||
|
<v8:lang>ru</v8:lang>
|
||||||
|
<v8:content>Send document</v8:content>
|
||||||
|
</v8:item>
|
||||||
|
</ToolTip>
|
||||||
|
<Representation>StrongSeparation</Representation>
|
||||||
|
<ExtendedTooltip name="SendDocumentРасширеннаяПодсказка" id="40"/>
|
||||||
|
<ChildItems>
|
||||||
|
<InputField name="ИдЧата" id="45">
|
||||||
|
<DataPath>ИдЧата</DataPath>
|
||||||
|
<ExtendedEditMultipleValues>true</ExtendedEditMultipleValues>
|
||||||
|
<ContextMenu name="ИдЧатаКонтекстноеМеню" id="46"/>
|
||||||
|
<ExtendedTooltip name="ИдЧатаРасширеннаяПодсказка" id="47"/>
|
||||||
|
</InputField>
|
||||||
|
<Button name="SendDocument1" id="41">
|
||||||
<Type>UsualButton</Type>
|
<Type>UsualButton</Type>
|
||||||
<CommandName>Form.Command.ПрочитатьФайл</CommandName>
|
<CommandName>Form.Command.SendDocument</CommandName>
|
||||||
<ExtendedTooltip name="ПолучитьФайлРасширеннаяПодсказка" id="38"/>
|
<ExtendedTooltip name="SendDocument1РасширеннаяПодсказка" id="42"/>
|
||||||
|
</Button>
|
||||||
|
<Button name="SendPhoto" id="43">
|
||||||
|
<Type>UsualButton</Type>
|
||||||
|
<CommandName>Form.Command.SendPhoto</CommandName>
|
||||||
|
<ExtendedTooltip name="SendPhotoРасширеннаяПодсказка" id="44"/>
|
||||||
</Button>
|
</Button>
|
||||||
</ChildItems>
|
</ChildItems>
|
||||||
</UsualGroup>
|
</UsualGroup>
|
||||||
@@ -210,6 +240,25 @@
|
|||||||
<Field>ИдФайла</Field>
|
<Field>ИдФайла</Field>
|
||||||
</Save>
|
</Save>
|
||||||
</Attribute>
|
</Attribute>
|
||||||
|
<Attribute name="ИдЧата" id="6">
|
||||||
|
<Title>
|
||||||
|
<v8:item>
|
||||||
|
<v8:lang>ru</v8:lang>
|
||||||
|
<v8:content>Ид чата</v8:content>
|
||||||
|
</v8:item>
|
||||||
|
</Title>
|
||||||
|
<Type>
|
||||||
|
<v8:Type>xs:decimal</v8:Type>
|
||||||
|
<v8:NumberQualifiers>
|
||||||
|
<v8:Digits>15</v8:Digits>
|
||||||
|
<v8:FractionDigits>0</v8:FractionDigits>
|
||||||
|
<v8:AllowedSign>Any</v8:AllowedSign>
|
||||||
|
</v8:NumberQualifiers>
|
||||||
|
</Type>
|
||||||
|
<Save>
|
||||||
|
<Field>ИдЧата</Field>
|
||||||
|
</Save>
|
||||||
|
</Attribute>
|
||||||
</Attributes>
|
</Attributes>
|
||||||
<Commands>
|
<Commands>
|
||||||
<Command name="ПолучитьСообщения" id="1">
|
<Command name="ПолучитьСообщения" id="1">
|
||||||
@@ -302,20 +351,35 @@
|
|||||||
</ToolTip>
|
</ToolTip>
|
||||||
<Action>СкачатьФайл</Action>
|
<Action>СкачатьФайл</Action>
|
||||||
</Command>
|
</Command>
|
||||||
<Command name="ПрочитатьФайл" id="7">
|
<Command name="SendDocument" id="8">
|
||||||
<Title>
|
<Title>
|
||||||
<v8:item>
|
<v8:item>
|
||||||
<v8:lang>ru</v8:lang>
|
<v8:lang>ru</v8:lang>
|
||||||
<v8:content>Прочитать файл</v8:content>
|
<v8:content>Send document</v8:content>
|
||||||
</v8:item>
|
</v8:item>
|
||||||
</Title>
|
</Title>
|
||||||
<ToolTip>
|
<ToolTip>
|
||||||
<v8:item>
|
<v8:item>
|
||||||
<v8:lang>ru</v8:lang>
|
<v8:lang>ru</v8:lang>
|
||||||
<v8:content>Прочитать файл</v8:content>
|
<v8:content>Send document</v8:content>
|
||||||
</v8:item>
|
</v8:item>
|
||||||
</ToolTip>
|
</ToolTip>
|
||||||
<Action>ПрочитатьФайл</Action>
|
<Action>SendDocument</Action>
|
||||||
|
</Command>
|
||||||
|
<Command name="SendPhoto" id="7">
|
||||||
|
<Title>
|
||||||
|
<v8:item>
|
||||||
|
<v8:lang>ru</v8:lang>
|
||||||
|
<v8:content>Send photo</v8:content>
|
||||||
|
</v8:item>
|
||||||
|
</Title>
|
||||||
|
<ToolTip>
|
||||||
|
<v8:item>
|
||||||
|
<v8:lang>ru</v8:lang>
|
||||||
|
<v8:content>Send photo</v8:content>
|
||||||
|
</v8:item>
|
||||||
|
</ToolTip>
|
||||||
|
<Action>SendPhoto</Action>
|
||||||
</Command>
|
</Command>
|
||||||
</Commands>
|
</Commands>
|
||||||
</Form>
|
</Form>
|
||||||
@@ -1,30 +1,34 @@
|
|||||||
&НаКлиенте
|
&НаКлиенте
|
||||||
Процедура ПолучитьСообщения(Команда)
|
Процедура ПолучитьСообщения(Команда)
|
||||||
|
|
||||||
//Сообщения = "";
|
Ответ = ПолучитьСообщенияНаСервере();
|
||||||
//Ответ = ТелеграмМетодыВызовСервера.GetUpdates();
|
ВывестиОтвет(Ответ);
|
||||||
//Если НЕ Ответ = Неопределено Тогда
|
|
||||||
// Сообщения = HttpОбщегоНазначения.ФорматированныйJson(Ответ);
|
|
||||||
//КонецЕсли;
|
|
||||||
|
|
||||||
ПолучитьСообщенияНаСервере();
|
|
||||||
|
|
||||||
КонецПроцедуры
|
КонецПроцедуры
|
||||||
|
|
||||||
|
|
||||||
&НаСервереБезКонтекста
|
&НаСервереБезКонтекста
|
||||||
Процедура ПолучитьСообщенияНаСервере()
|
Функция ПолучитьСообщенияНаСервере()
|
||||||
|
|
||||||
Ответ = ТелеграмМетодыВызовСервера.GetUpdates();
|
Ответ = ТелеграмМетодыВызовСервера.GetUpdates();
|
||||||
Если Ответ <> Неопределено Тогда
|
|
||||||
МассивСообщенийТелеграм = ТелеграмОбщегоНазначения.ОбновленияТелеграм(Ответ);
|
Если Ответ.Успех Тогда
|
||||||
|
МассивРядов = Новый Массив;
|
||||||
|
МассивКнопок = ТелеграмРаботаСКлавиатурой.РядКнопок("один;два;три");
|
||||||
|
МассивРядов.Добавить(МассивКнопок);
|
||||||
|
МассивКнопок = ТелеграмРаботаСКлавиатурой.РядКнопок("Выбрать конфигурацию;Актуальная версия;Калькулятор обновлений");
|
||||||
|
МассивРядов.Добавить(МассивКнопок);
|
||||||
|
Клавиатура = ТелеграмРаботаСКлавиатурой.КлавиатураОтвета(МассивРядов, Истина, Истина);
|
||||||
|
|
||||||
|
МассивСообщенийТелеграм = ТелеграмОбщегоНазначения.ОбновленияТелеграм(Ответ.Тело);
|
||||||
Для каждого СообщениеТелеграм Из МассивСообщенийТелеграм Цикл
|
Для каждого СообщениеТелеграм Из МассивСообщенийТелеграм Цикл
|
||||||
ТелеграмОбщегоНазначения.СохранитьСообщениеВБазу(СообщениеТелеграм);
|
ТелеграмОбщегоНазначения.СохранитьСообщениеВБазу(СообщениеТелеграм);
|
||||||
//ТелеграмМетодыВызовСервера.SendMessage(СообщениеТелеграм.ИдЧата, СообщениеТелеграм.Сообщение.text)
|
ТелеграмМетодыВызовСервера.SendMessage(СообщениеТелеграм.ИдЧата, СообщениеТелеграм.Сообщение.text, Клавиатура);
|
||||||
КонецЦикла;
|
КонецЦикла;
|
||||||
КонецЕсли;
|
КонецЕсли;
|
||||||
|
|
||||||
КонецПроцедуры
|
Возврат Ответ;
|
||||||
|
|
||||||
|
КонецФункции
|
||||||
|
|
||||||
&НаКлиенте
|
&НаКлиенте
|
||||||
Процедура getWebhookInfo(Команда)
|
Процедура getWebhookInfo(Команда)
|
||||||
@@ -66,44 +70,21 @@
|
|||||||
|
|
||||||
КонецПроцедуры
|
КонецПроцедуры
|
||||||
|
|
||||||
|
|
||||||
&НаКлиенте
|
&НаКлиенте
|
||||||
Процедура ВывестиОтвет(Ответ)
|
Процедура ВывестиОтвет(Ответ)
|
||||||
|
|
||||||
|
ТекстСообщения = СтрШаблон("Выполнено %1.%2%3", ?(Ответ.Успех, "успешно", "с ошибкой"), Символы.ПС, Ответ.Описание);
|
||||||
|
|
||||||
Сообщение = Новый СообщениеПользователю;
|
Сообщение = Новый СообщениеПользователю;
|
||||||
Сообщение.Текст = HttpОбщегоНазначения.ФорматированныйJson(Ответ);
|
Сообщение.Текст = ТекстСообщения;
|
||||||
Сообщение.Сообщить();
|
Сообщение.Сообщить();
|
||||||
|
|
||||||
КонецПроцедуры
|
КонецПроцедуры
|
||||||
|
|
||||||
|
|
||||||
//&НаСервереБезКонтекста
|
|
||||||
//Функция СкачатьФайлНаСервере(ПутьКФайлуНаСервере)
|
|
||||||
//
|
|
||||||
// АдресРесурса = СтрШаблон("file/bot%1/%2",
|
|
||||||
// ТелеграмПовторноеИспользование.ТелеграмТокен(),
|
|
||||||
// ПутьКФайлуНаСервере);
|
|
||||||
// Ответ = HttpОбщегоНазначения.ВыполнитьGetЗапросДвоичныеДанные(АдресРесурса);
|
|
||||||
// МенеджерЗаписи = РегистрыСведений.ТелеграмФайлы.СоздатьМенеджерЗаписи();
|
|
||||||
// //МенеджерЗаписи.ИдСообщения = 336;
|
|
||||||
// //МенеджерЗаписи.Данные = Новый ХранилищеЗначения(Ответ, Новый СжатиеДанных(0));
|
|
||||||
// //МенеджерЗаписи.ИмяФайла = "13_05_2025_09_42_108907060608184446656.json";
|
|
||||||
//
|
|
||||||
// МенеджерЗаписи.ИдСообщения = 339;
|
|
||||||
// МенеджерЗаписи.Данные = Новый ХранилищеЗначения(Ответ, Новый СжатиеДанных(0));
|
|
||||||
// МенеджерЗаписи.ИмяФайла = "test.pdf";
|
|
||||||
//
|
|
||||||
// МенеджерЗаписи.Записать();
|
|
||||||
//
|
|
||||||
// Возврат Ответ;
|
|
||||||
//
|
|
||||||
//КонецФункции
|
|
||||||
|
|
||||||
|
|
||||||
&НаКлиенте
|
&НаКлиенте
|
||||||
Процедура СкачатьФайл(Команда)
|
Процедура СкачатьФайл(Команда)
|
||||||
|
|
||||||
//ИдФайла = "BQACAgIAAxkBAAIBUmgkRZKtR_4WXvoykjdfXKTFHCvdAAItegACYyUhSQ9mNituwQR1NgQ";
|
|
||||||
СкачатьФайлНаСервере(ИдФайла);
|
СкачатьФайлНаСервере(ИдФайла);
|
||||||
|
|
||||||
|
|
||||||
@@ -124,7 +105,6 @@
|
|||||||
&НаСервереБезКонтекста
|
&НаСервереБезКонтекста
|
||||||
Процедура СкачатьФайлНаСервере(ИдФайла)
|
Процедура СкачатьФайлНаСервере(ИдФайла)
|
||||||
|
|
||||||
|
|
||||||
НовыйДокумент = Справочники.ТелеграмДокумент.СоздатьЭлемент();
|
НовыйДокумент = Справочники.ТелеграмДокумент.СоздатьЭлемент();
|
||||||
НовыйДокумент.Наименование = "Тестовый документ";
|
НовыйДокумент.Наименование = "Тестовый документ";
|
||||||
НовыйДокумент.id = "AgADLXoAAmMlIUk";
|
НовыйДокумент.id = "AgADLXoAAmMlIUk";
|
||||||
@@ -133,9 +113,9 @@
|
|||||||
НовыйДокумент.mime_type = "application/pdf";
|
НовыйДокумент.mime_type = "application/pdf";
|
||||||
НовыйДокумент.file_size = 811482;
|
НовыйДокумент.file_size = 811482;
|
||||||
|
|
||||||
ДанныеДокумента = ТелеграмОбщегоНазначения.ДанныеДокументаПоИд(ИдФайла);
|
Ответ = ТелеграмОбщегоНазначения.ДанныеДокументаПоИд(ИдФайла);
|
||||||
Если ДанныеДокумента <> Неопределено Тогда
|
Если Ответ.Успех Тогда
|
||||||
НовыйДокумент.ДанныеФайла = Новый ХранилищеЗначения(ДанныеДокумента);
|
НовыйДокумент.ДанныеФайла = Новый ХранилищеЗначения(Ответ.Тело);
|
||||||
КонецЕсли;
|
КонецЕсли;
|
||||||
|
|
||||||
НовыйДокумент.Записать();
|
НовыйДокумент.Записать();
|
||||||
@@ -146,60 +126,46 @@
|
|||||||
|
|
||||||
КонецПроцедуры
|
КонецПроцедуры
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
&НаКлиенте
|
&НаКлиенте
|
||||||
Процедура ПрочитатьФайл(Команда)
|
Процедура SendDocument(Команда)
|
||||||
|
|
||||||
ДанныеФайла = ПолучитьДанныеФайла();
|
ДанныеДокумента = ДанныеДокументаСервер();
|
||||||
Если ДанныеФайла <> Неопределено Тогда
|
Ответ = ТелеграмМетодыВызовСервера.SendDocument(ИдЧата, ДанныеДокумента, "Отправлен документ");
|
||||||
Если ДанныеФайла.Свойство("ДвоичныеДанные") И ДанныеФайла.Свойство("ИмяФайла") Тогда
|
|
||||||
ИмяВременногоФайла = ПолучитьИмяВременногоФайла(ПолучитьРасширениеИмениФайла(ДанныеФайла.ИмяФайла));
|
|
||||||
ДанныеФайла.ДвоичныеДанные.Записать(ИмяВременногоФайла);
|
|
||||||
ЗапуститьПриложениеАсинх(ИмяВременногоФайла);
|
|
||||||
КонецЕсли;
|
|
||||||
КонецЕсли;
|
|
||||||
|
|
||||||
КонецПроцедуры
|
КонецПроцедуры
|
||||||
|
|
||||||
&НаСервереБезКонтекста
|
&НаСервереБезКонтекста
|
||||||
Функция ПолучитьДанныеФайла()
|
Функция ДанныеДокументаСервер()
|
||||||
|
|
||||||
Запрос = Новый Запрос;
|
Запрос = Новый Запрос;
|
||||||
Запрос.Текст =
|
Запрос.Текст =
|
||||||
"ВЫБРАТЬ
|
"ВЫБРАТЬ
|
||||||
| ТелеграмФайлы.Данные КАК Данные,
|
| ТелеграмДокумент.ДанныеФайла КАК ДанныеФайла,
|
||||||
| ТелеграмФайлы.ИмяФайла КАК ИмяФайла
|
| ТелеграмДокумент.file_name КАК ИмяФайла
|
||||||
|ИЗ
|
|ИЗ
|
||||||
| РегистрСведений.ТелеграмФайлы КАК ТелеграмФайлы
|
| Справочник.ТелеграмДокумент КАК ТелеграмДокумент";
|
||||||
|ГДЕ
|
|
||||||
| ТелеграмФайлы.ИдСообщения = &ИдСообщения";
|
|
||||||
|
|
||||||
//Запрос.УстановитьПараметр("ИдСообщения", 336);
|
|
||||||
Запрос.УстановитьПараметр("ИдСообщения", 338);
|
|
||||||
|
|
||||||
РезультатЗапроса = Запрос.Выполнить();
|
РезультатЗапроса = Запрос.Выполнить();
|
||||||
|
|
||||||
ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать();
|
ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать();
|
||||||
|
|
||||||
Если ВыборкаДетальныеЗаписи.Следующий() Тогда
|
Если ВыборкаДетальныеЗаписи.Следующий() Тогда
|
||||||
ДвоичныеДанные = ВыборкаДетальныеЗаписи.Данные.Получить();
|
Возврат Новый Структура("ИмяФайла, ДанныеФайла", ВыборкаДетальныеЗаписи.ИмяФайла, ВыборкаДетальныеЗаписи.ДанныеФайла.Получить());
|
||||||
ИмяФайла = ВыборкаДетальныеЗаписи.ИмяФайла;
|
|
||||||
Возврат Новый Структура("ДвоичныеДанные, ИмяФайла", ДвоичныеДанные, ИмяФайла);
|
|
||||||
КонецЕсли;
|
КонецЕсли;
|
||||||
|
|
||||||
Возврат Неопределено;
|
|
||||||
|
|
||||||
КонецФункции
|
КонецФункции
|
||||||
|
|
||||||
|
&НаКлиенте
|
||||||
|
Процедура SendPhoto(Команда)
|
||||||
|
|
||||||
|
ДанныеКартинки = ДанныеКартинки();
|
||||||
|
Ответ = ТелеграмМетодыВызовСервера.SendPhoto(ИдЧата, ДанныеКартинки, "telegram_bot.jpg", "Отправлено фото");
|
||||||
|
|
||||||
|
КонецПроцедуры
|
||||||
|
|
||||||
&НаСервереБезКонтекста
|
&НаСервереБезКонтекста
|
||||||
Функция ПолучитьРасширениеИмениФайла(Знач ИмяФайла) Экспорт
|
Функция ДанныеКартинки()
|
||||||
|
|
||||||
РасширениеФайла = "";
|
Возврат БиблиотекаКартинок.КартинкаБот.ПолучитьДвоичныеДанные();
|
||||||
МассивСтрок = СтрРазделить(ИмяФайла, ".", Ложь);
|
|
||||||
Если МассивСтрок.Количество() > 1 Тогда
|
|
||||||
РасширениеФайла = МассивСтрок[МассивСтрок.Количество() - 1];
|
|
||||||
КонецЕсли;
|
|
||||||
Возврат РасширениеФайла;
|
|
||||||
|
|
||||||
КонецФункции
|
КонецФункции
|
||||||
@@ -27,7 +27,7 @@
|
|||||||
<xr:Item xsi:type="xr:MDObjectRef">Constant.ЛогироватьHttpЗапросы</xr:Item>
|
<xr:Item xsi:type="xr:MDObjectRef">Constant.ЛогироватьHttpЗапросы</xr:Item>
|
||||||
<xr:Item xsi:type="xr:MDObjectRef">Document.ЛогHttpЗапроса</xr:Item>
|
<xr:Item xsi:type="xr:MDObjectRef">Document.ЛогHttpЗапроса</xr:Item>
|
||||||
<xr:Item xsi:type="xr:MDObjectRef">Catalog.ТелеграмДокумент</xr:Item>
|
<xr:Item xsi:type="xr:MDObjectRef">Catalog.ТелеграмДокумент</xr:Item>
|
||||||
<xr:Item xsi:type="xr:MDObjectRef">c3c88554-5bc5-41b7-ae33-7a29b983d784</xr:Item>
|
<xr:Item xsi:type="xr:MDObjectRef">CommonPicture.КартинкаБот</xr:Item>
|
||||||
</Content>
|
</Content>
|
||||||
</Properties>
|
</Properties>
|
||||||
<ChildObjects/>
|
<ChildObjects/>
|
||||||
|
|||||||
@@ -1,2 +1,2 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8"?>
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
<VERSION>2</VERSION>
|
<VERSION>4</VERSION>
|
||||||
|
|||||||
Reference in New Issue
Block a user