Compare commits

...

2 Commits

Author SHA1 Message Date
0172c538be - Добавил доработки 2025-05-27 18:16:38 +03:00
694e06f836 - Реализовал обработку команд бота: добавление кофигурации, удаление конфигурации, просмотр списка подписок.
- Добавил использование callback queries
- Выполнил рефакторинг общих модулей
2025-05-27 18:15:06 +03:00
14 changed files with 843 additions and 56 deletions

View File

@@ -220,6 +220,90 @@
<DataHistory>Use</DataHistory>
</Properties>
</Attribute>
<Attribute uuid="7bc919dd-95d1-4865-9036-aa53d7f54290">
<Properties>
<Name>СтатусДиалога</Name>
<Synonym>
<v8:item>
<v8:lang>ru</v8:lang>
<v8:content>Статус диалога</v8:content>
</v8:item>
</Synonym>
<Comment/>
<Type>
<v8:Type>cfg:EnumRef.ТелеграмСтатусДиалога</v8:Type>
</Type>
<PasswordMode>false</PasswordMode>
<Format/>
<EditFormat/>
<ToolTip/>
<MarkNegatives>false</MarkNegatives>
<Mask/>
<MultiLine>false</MultiLine>
<ExtendedEdit>false</ExtendedEdit>
<MinValue xsi:nil="true"/>
<MaxValue xsi:nil="true"/>
<FillFromFillingValue>false</FillFromFillingValue>
<FillValue xsi:nil="true"/>
<FillChecking>DontCheck</FillChecking>
<ChoiceFoldersAndItems>Items</ChoiceFoldersAndItems>
<ChoiceParameterLinks/>
<ChoiceParameters/>
<QuickChoice>Auto</QuickChoice>
<CreateOnInput>Auto</CreateOnInput>
<ChoiceForm/>
<LinkByType/>
<ChoiceHistoryOnInput>Auto</ChoiceHistoryOnInput>
<Use>ForItem</Use>
<Indexing>DontIndex</Indexing>
<FullTextSearch>Use</FullTextSearch>
<DataHistory>Use</DataHistory>
</Properties>
</Attribute>
<Attribute uuid="37de3f9a-734b-4c65-93e1-dabb9d75bf68">
<Properties>
<Name>ДополнительнаяИнформация</Name>
<Synonym>
<v8:item>
<v8:lang>ru</v8:lang>
<v8:content>Дополнительная информация</v8:content>
</v8:item>
</Synonym>
<Comment/>
<Type>
<v8:Type>xs:string</v8:Type>
<v8:StringQualifiers>
<v8:Length>0</v8:Length>
<v8:AllowedLength>Variable</v8:AllowedLength>
</v8:StringQualifiers>
</Type>
<PasswordMode>false</PasswordMode>
<Format/>
<EditFormat/>
<ToolTip/>
<MarkNegatives>false</MarkNegatives>
<Mask/>
<MultiLine>false</MultiLine>
<ExtendedEdit>false</ExtendedEdit>
<MinValue xsi:nil="true"/>
<MaxValue xsi:nil="true"/>
<FillFromFillingValue>false</FillFromFillingValue>
<FillValue xsi:type="xs:string"/>
<FillChecking>DontCheck</FillChecking>
<ChoiceFoldersAndItems>Items</ChoiceFoldersAndItems>
<ChoiceParameterLinks/>
<ChoiceParameters/>
<QuickChoice>Auto</QuickChoice>
<CreateOnInput>Auto</CreateOnInput>
<ChoiceForm/>
<LinkByType/>
<ChoiceHistoryOnInput>Auto</ChoiceHistoryOnInput>
<Use>ForItem</Use>
<Indexing>DontIndex</Indexing>
<FullTextSearch>Use</FullTextSearch>
<DataHistory>Use</DataHistory>
</Properties>
</Attribute>
</ChildObjects>
</Catalog>
</MetaDataObject>

View 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="f7536eb7-75ea-449e-b9b4-7f3b5295fe84">
<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>false</ExternalConnection>
<ClientOrdinaryApplication>false</ClientOrdinaryApplication>
<ServerCall>false</ServerCall>
<Privileged>false</Privileged>
<ReturnValuesReuse>DontUse</ReturnValuesReuse>
</Properties>
</CommonModule>
</MetaDataObject>

View File

@@ -0,0 +1,283 @@
#Область ПрограммныйИнтерфейс
Процедура ОбработкаКомандыБота(Тело) Экспорт
МассивОбновленийТелеграм = ТелеграмОбщегоНазначения.ОбновленияТелеграм(Тело);
Для каждого ОбновлениеТелеграм Из МассивОбновленийТелеграм Цикл
ТелеграмОбщегоНазначения.СохранитьСообщениеВБазу(ОбновлениеТелеграм);
ДанныеПользователя = РаботаСОбновлениямиВызовСервера.ПолучитьДанныеПользователя(ОбновлениеТелеграм.ИдЧата);
Если ОбновлениеТелеграм.Свойство("ИдСообщения") Тогда
Если ОбновлениеТелеграм.Сообщение.text = "/start" Тогда
ОбработатьКомандуСтарт(ОбновлениеТелеграм);
ИначеЕсли ОбновлениеТелеграм.Сообщение.text = "/subscribe" Тогда
ОбработатьКомандуПодписки(ОбновлениеТелеграм);
ИначеЕсли ОбновлениеТелеграм.Сообщение.text = "/add" Тогда
ОбработатьКомандуДобавитьКонфигурацию(ОбновлениеТелеграм);
ИначеЕсли ОбновлениеТелеграм.Сообщение.text = "/delete" Тогда
ОбработатьКомандуУдалитьКонфигурацию(ОбновлениеТелеграм);
ИначеЕсли ДанныеПользователя <> Неопределено
И ДанныеПользователя.СтатусДиалога = Перечисления.ТелеграмСтатусДиалога.ОжиданиеВводаВерсии Тогда
ОбработатьВводВерсииКонфигурации(ОбновлениеТелеграм, ДанныеПользователя);
КонецЕсли;
ИначеЕсли ОбновлениеТелеграм.Свойство("ИдКоллбэка") <> Неопределено Тогда
Данные = ОбновлениеТелеграм.ДанныеКоллбэка;
Если СтрНачинаетсяС(Данные, XMLСтрока(Перечисления.ВидыДанныхКоллбэков.AddVersion)) Тогда
ДобавитьКонфигурациюВСписокОтслеживания(Данные, ОбновлениеТелеграм.ИдЧата);
ИначеЕсли СтрНачинаетсяС(Данные, XMLСтрока(Перечисления.ВидыДанныхКоллбэков.DeleteVersion)) Тогда
УдалитьКонфигурациюИзСпискаОтслеживания(Данные, ОбновлениеТелеграм.ИдЧата);
КонецЕсли;
КонецЕсли;
КонецЦикла;
КонецПроцедуры
#КонецОбласти
#Область СлужебныеПроцедурыИФункции
Процедура ДобавитьКонфигурациюВСписокОтслеживания(ТекстСообщения, ИдЧата)
Команда = XMLСтрока(Перечисления.ВидыДанныхКоллбэков.AddVersion);
Если НЕ СтрНачинаетсяС(ТекстСообщения, Команда) Тогда
Возврат;
КонецЕсли;
ИмяКонфигурации = СокрЛП(Сред(ТекстСообщения, СтрДлина(Команда) + 1));
Конфигурация = РаботаСОбновлениямиВызовСервера.КонфигурацияПоИмени(ИмяКонфигурации);
Если Конфигурация <> Неопределено Тогда
ТекстОтвета = СтрШаблон("Отлично, добавляем в список конфигурацию ""%1"".", Конфигурация.Наименование) + Символы.ПС +
Символы.ВК + Символы.ПС +
"Для корректного отслеживания обновлений нужно ввести версию конфигурации (четыре группы цифр, разделённых точками):" +
Символы.ПС +
"Например: 3.1.30.197";
РаботаСОбновлениямиВызовСервера.УстановитьСтатусДиалога(ИдЧата, Перечисления.ТелеграмСтатусДиалога.ОжиданиеВводаВерсии,
ИмяКонфигурации);
ТелеграмМетодыВызовСервера.SendMessage(ИдЧата, ТекстОтвета,,);
КонецЕсли;
КонецПроцедуры
Процедура УдалитьКонфигурациюИзСпискаОтслеживания(ТекстСообщения, ИдЧата)
Команда = XMLСтрока(Перечисления.ВидыДанныхКоллбэков.DeleteVersion);
Если НЕ СтрНачинаетсяС(ТекстСообщения, Команда) Тогда
Возврат;
КонецЕсли;
ИмяКонфигурации = СокрЛП(Сред(ТекстСообщения, СтрДлина(Команда) + 1));
Конфигурация = РаботаСОбновлениямиВызовСервера.КонфигурацияПоИмени(ИмяКонфигурации);
Если Конфигурация <> Неопределено Тогда
МенеджерЗаписи = РегистрыСведений.ОтслеживаниеВерсийКонфигураций.СоздатьМенеджерЗаписи();
МенеджерЗаписи.Конфигурация = Конфигурация;
МенеджерЗаписи.ИдЧата = ИдЧата;
Попытка
МенеджерЗаписи.Удалить();
ТекстОтвета = СтрШаблон("Конфигурация ""%1"" удалена из списка отслеживания", Конфигурация.Наименование);
Исключение
ТекстОтвета = "При удалении данных возникла ошибка";
КонецПопытки;
ТелеграмМетодыВызовСервера.SendMessage(ИдЧата, ТекстОтвета,,);
КонецЕсли;
КонецПроцедуры
Процедура ОбработатьВводВерсииКонфигурации(ОбновлениеТелеграм, ДанныеПользователя)
ИдЧата = ОбновлениеТелеграм.ИдЧата;
Версия = ОбновлениеТелеграм.Сообщение.text;
Если НЕ ВерсияКонфигурацииКорректна(Версия) Тогда
ТекстОтвета = СтрШаблон("Вы ввели некорректный номер версии: %1%2Для корректного отслеживания обновлений нужно
|ввести версию конфигурации(четыре группы цифр, разделённых точками):Например: 3.1.30.197.", Версия, Символы.ПС);
ТелеграмМетодыВызовСервера.SendMessage(ИдЧата, ТекстОтвета,,);
Возврат;
КонецЕсли;
Конфигурация = РаботаСОбновлениямиВызовСервера.КонфигурацияПоИмени(ДанныеПользователя.ДополнительнаяИнформация);
Ответ = РаботаСОбновлениямиВызовСервера.АктуальнаяВерсияКонфигурации(Конфигурация, Версия);
Если НЕ Ответ.Успех Тогда
ТекстОтвета = "При получении данных с сервера произошла ошибка";
ТелеграмМетодыВызовСервера.SendMessage(ИдЧата, ТекстОтвета,,);
Возврат;
КонецЕсли;
АктуальнаяВерсия = Ответ["Тело"]["configurationUpdateResponse"]["configurationVersion"];
Если АктуальнаяВерсия = Неопределено Тогда
ТекстОтвета = СтрШаблон("Для указанной версии: %1 нет данных по актуальности", Версия);
ТелеграмМетодыВызовСервера.SendMessage(ИдЧата, ТекстОтвета,,);
Возврат;
КонецЕсли;
МенеджерЗаписи = РегистрыСведений.ОтслеживаниеВерсийКонфигураций.СоздатьМенеджерЗаписи();
МенеджерЗаписи.Конфигурация = Конфигурация;
МенеджерЗаписи.ИдЧата = ИдЧата;
МенеджерЗаписи.ТекущаяВерсия = Версия;
МенеджерЗаписи.АктуальнаяВерсия = АктуальнаяВерсия;
Попытка
МенеджерЗаписи.Записать();
РаботаСОбновлениямиВызовСервера.УстановитьСтатусДиалога(ИдЧата, Перечисления.ТелеграмСтатусДиалога.НачальноеСостояние, "");
ТекстОтвета = СтрШаблон("Версия: %1 успешно добавлена", Версия);
Исключение
ТекстОтвета = "При сохранении данных возникла ошибка";
КонецПопытки;
ТелеграмМетодыВызовСервера.SendMessage(ИдЧата, ТекстОтвета,,);
КонецПроцедуры
Функция ВерсияКонфигурацииКорректна(Версия)
Попытка
РегулярноеВыражение = "^\d+\.\d+\.\d+\.\d+$";
Возврат СтрПодобнаПоРегулярномуВыражению(Версия, РегулярноеВыражение);
Исключение
МассивГруппЦифр = СтрРазделить(Версия, ".");
Если МассивГруппЦифр.Количество() <> 4 Тогда
Возврат Ложь;
КонецЕсли;
Для Каждого ГруппаЦифрВерсии Из МассивГруппЦифр Цикл
Если Не ТолькоЦифрыВСтроке(ГруппаЦифрВерсии) Тогда
Возврат Ложь;
КонецЕсли;
КонецЦикла;
Возврат Истина;
КонецПопытки;
КонецФункции
Функция ТолькоЦифрыВСтроке(Знач Значение, Знач ПробелыЗапрещены = Истина) Экспорт
Если ТипЗнч(Значение) <> Тип("Строка") Тогда
Возврат Ложь;
КонецЕсли;
Если Не ПробелыЗапрещены Тогда
Значение = СтрЗаменить(Значение, " ", "");
КонецЕсли;
Если СтрДлина(Значение) = 0 Тогда
Возврат Истина;
КонецЕсли;
// Если содержит только цифры, то в результате замен должна быть получена пустая строка.
// Проверять при помощи ПустаяСтрока нельзя, так как в исходной строке могут быть пробельные символы.
Возврат СтрДлина(
СтрЗаменить( СтрЗаменить( СтрЗаменить( СтрЗаменить( СтрЗаменить(
СтрЗаменить( СтрЗаменить( СтрЗаменить( СтрЗаменить( СтрЗаменить(
Значение, "0", ""), "1", ""), "2", ""), "3", ""), "4", ""), "5", ""), "6", ""), "7", ""), "8", ""), "9", "")) = 0;
КонецФункции
Процедура ОбработатьКомандуСтарт(ОбновлениеТелеграм)
ТекстОтвета = "Привет! Я бот, который поможет тебе следить за обновлениями конфигураций 1С." + Символы.ПС +
Символы.ВК + Символы.ПС +
"Что я умею:" + Символы.ПС +
"- Отслеживать новые релизы" + Символы.ПС +
"- Присылать уведомления о выходе обновлений" + Символы.ПС +
"- Показывать текущую версию" + Символы.ПС +
Символы.ВК + Символы.ПС +
"/subscribe - Список конфигураций для отслеживания" + Символы.ПС +
"/add - Добавить конфигурацию в список отслеживания" + Символы.ПС +
"/delete - Удалить конфигурацию из списка отслеживания";
ТелеграмМетодыВызовСервера.SendMessage(ОбновлениеТелеграм.ИдЧата, ТекстОтвета,,);
КонецПроцедуры
Процедура ОбработатьКомандуПодписки(ОбновлениеТелеграм)
СписокКонфигураций = РаботаСОбновлениямиВызовСервера.СписокКонфигураций(ОбновлениеТелеграм.ИдЧата);
ТекстОтвета = "";
Если СписокКонфигураций.Количество() = 0 Тогда
ТекстОтвета = "Не удалось получить список конфигураций";
Иначе
Для каждого ПунктМенюПодписки Из СписокКонфигураций Цикл
ТекстОтвета = ТекстОтвета + СтрШаблон("%1 %2%3", ?(ПунктМенюПодписки.Подписка, "[X]", "[ ]"),
ПунктМенюПодписки.Наименование,Символы.ПС);
КонецЦикла;
КонецЕсли;
ТелеграмМетодыВызовСервера.SendMessage(ОбновлениеТелеграм.ИдЧата, ТекстОтвета,,);
КонецПроцедуры
Процедура ОбработатьКомандуДобавитьКонфигурацию(ОбновлениеТелеграм)
ИдЧата = ОбновлениеТелеграм.ИдЧата;
Команда = XMLСтрока(Перечисления.ВидыДанныхКоллбэков.AddVersion);
МассивРядов = МассивРядовСоСпискомКонфигураций(ИдЧата, Команда, Ложь);
Если МассивРядов = Неопределено Тогда
ТекстОтвета = "Не удалось получить список конфигураций";
ТелеграмМетодыВызовСервера.SendMessage(ИдЧата, ТекстОтвета);
КонецЕсли;
Клавиатура = ТелеграмРаботаСКлавиатурой.КлавиатураВстроенная(МассивРядов);
ТекстОтвета = "Выберите нужную конфигурацию для отслеживания обновлений";
ТелеграмМетодыВызовСервера.SendMessage(ИдЧата, ТекстОтвета,, Клавиатура);
КонецПроцедуры
Процедура ОбработатьКомандуУдалитьКонфигурацию(ОбновлениеТелеграм)
ИдЧата = ОбновлениеТелеграм.ИдЧата;
Команда = XMLстрока(Перечисления.ВидыДанныхКоллбэков.DeleteVersion);
МассивРядов = МассивРядовСоСпискомКонфигураций(ИдЧата, Команда, Истина);
Если МассивРядов = Неопределено Тогда
ТекстОтвета = "Не удалось получить список конфигураций";
ТелеграмМетодыВызовСервера.SendMessage(ИдЧата, ТекстОтвета);
КонецЕсли;
Клавиатура = ТелеграмРаботаСКлавиатурой.КлавиатураВстроенная(МассивРядов);
ТекстОтвета = "Выберите нужную конфигурацию для отмены отслеживания обновлений";
ТелеграмМетодыВызовСервера.SendMessage(ИдЧата, ТекстОтвета,, Клавиатура);
КонецПроцедуры
Функция МассивРядовСоСпискомКонфигураций(ИдЧата, Команда, Подписка = Неопределено)
СписокКонфигураций = РаботаСОбновлениямиВызовСервера.СписокКонфигураций(ИдЧата);
Если СписокКонфигураций.Количество() = 0 Тогда
Возврат Неопределено;
Иначе
МассивРядов = Новый Массив;
Для каждого ПунктМенюПодписки Из СписокКонфигураций Цикл
Если Подписка = Неопределено
ИЛИ (Подписка И ПунктМенюПодписки.Подписка)
ИЛИ (НЕ Подписка И НЕ ПунктМенюПодписки.Подписка) Тогда
МассивКнопок = Новый Массив;
МассивКнопок.Добавить(ТелеграмРаботаСКлавиатурой.КнопкаКлавиатурыВстроенной(
ПунктМенюПодписки.Наименование
,
,
СтрШаблон("%1 %2", Команда, ПунктМенюПодписки.Имя)
));
МассивРядов.Добавить(МассивКнопок);
КонецЕсли;
КонецЦикла;
Возврат МассивРядов;
КонецЕсли;
КонецФункции
#КонецОбласти

View File

@@ -52,6 +52,50 @@
КонецФункции
Функция СписокКонфигураций(ИдЧата) Экспорт
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ РАЗЛИЧНЫЕ
| ОтслеживаниеВерсийКонфигураций.Конфигурация КАК Конфигурация,
| ОтслеживаниеВерсийКонфигураций.Конфигурация.Наименование КАК КонфигурацияНаименование,
| ОтслеживаниеВерсийКонфигураций.Конфигурация.Имя КАК КонфигурацияИмя,
| ИСТИНА КАК Подписка
|ПОМЕСТИТЬ ВТ_ОтслеживаемыеКонфигурации
|ИЗ
| РегистрСведений.ОтслеживаниеВерсийКонфигураций КАК ОтслеживаниеВерсийКонфигураций
|ГДЕ
| ОтслеживаниеВерсийКонфигураций.ИдЧата = &ИдЧата
|;
|
|////////////////////////////////////////////////////////////////////////////////
|ВЫБРАТЬ
| Конфигурации.Наименование КАК Наименование,
| Конфигурации.Имя КАК Имя,
| ЕСТЬNULL(ВТ_ОтслеживаемыеКонфигурации.Подписка, ЛОЖЬ) КАК Подписка
|ИЗ
| Справочник.Конфигурации КАК Конфигурации
| ЛЕВОЕ СОЕДИНЕНИЕ ВТ_ОтслеживаемыеКонфигурации КАК ВТ_ОтслеживаемыеКонфигурации
| ПО (ВТ_ОтслеживаемыеКонфигурации.Конфигурация = Конфигурации.Ссылка)
|
|УПОРЯДОЧИТЬ ПО
| Подписка УБЫВ";
Запрос.УстановитьПараметр("ИдЧата", ИдЧата);
РезультатЗапроса = Запрос.Выполнить();
ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать();
МассивКонфигураций = Новый Массив;
Пока ВыборкаДетальныеЗаписи.Следующий() Цикл
Конфигурация = Новый Структура("Наименование, Имя, Подписка", ВыборкаДетальныеЗаписи.Наименование,
ВыборкаДетальныеЗаписи.Имя, ВыборкаДетальныеЗаписи.Подписка);
МассивКонфигураций.Добавить(Конфигурация);
КонецЦикла;
Возврат МассивКонфигураций;
КонецФункции
Функция АктуализироватьВерсииКонфигураций()Экспорт
@@ -101,6 +145,87 @@
КонецФункции
Функция КонфигурацияПоИмени(ИмяКонфигурации) Экспорт
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| Конфигурации.Ссылка КАК Конфигурация
|ИЗ
| Справочник.Конфигурации КАК Конфигурации
|ГДЕ
| Конфигурации.Имя = &Имя";
Запрос.УстановитьПараметр("Имя", ИмяКонфигурации);
РезультатЗапроса = Запрос.Выполнить();
ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать();
Если ВыборкаДетальныеЗаписи.Следующий() Тогда
Возврат ВыборкаДетальныеЗаписи.Конфигурация;
КонецЕсли;
Возврат Неопределено;
КонецФункции
Процедура УстановитьСтатусДиалога(ИдЧата, НовыйСтатус, ДополнительнаяИнформация) Экспорт
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| ТелеграмПользователь.Ссылка КАК Ссылка,
| ТелеграмПользователь.СтатусДиалога КАК СтатусДиалога
|ИЗ
| Справочник.ТелеграмПользователь КАК ТелеграмПользователь
|ГДЕ
| ТелеграмПользователь.id = &ИдЧата";
Запрос.УстановитьПараметр("ИдЧата", ИдЧата);
РезультатЗапроса = Запрос.Выполнить();
ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать();
Если ВыборкаДетальныеЗаписи.Следующий() Тогда
ПользовательОбъект = ВыборкаДетальныеЗаписи.Ссылка.ПолучитьОбъект();
Если ПользовательОбъект <> Неопределено Тогда
ПользовательОбъект.СтатусДиалога = НовыйСтатус;
ПользовательОбъект.ДополнительнаяИнформация = ДополнительнаяИнформация;
ПользовательОбъект.Записать();
КонецЕсли;
КонецЕсли;
КонецПроцедуры
Функция ПолучитьДанныеПользователя(ИдЧата) Экспорт
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| ТелеграмПользователь.СтатусДиалога КАК СтатусДиалога,
| ТелеграмПользователь.ДополнительнаяИнформация КАК ДополнительнаяИнформация
|ИЗ
| Справочник.ТелеграмПользователь КАК ТелеграмПользователь
|ГДЕ
| ТелеграмПользователь.id = &ИдЧата";
Запрос.УстановитьПараметр("ИдЧата", ИдЧата);
РезультатЗапроса = Запрос.Выполнить();
ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать();
Если ВыборкаДетальныеЗаписи.Следующий() Тогда
Возврат Новый Структура("СтатусДиалога, ДополнительнаяИнформация", ВыборкаДетальныеЗаписи.СтатусДиалога,
ВыборкаДетальныеЗаписи.ДополнительнаяИнформация);
КонецЕсли;
Возврат Неопределено;
КонецФункции
#КонецОбласти
#Область СлужебныеПроцедурыИФункции

View File

@@ -66,7 +66,11 @@
МассивСообщенийТелеграм.Добавить(ПараметрыСообщения)
КонецЦикла;
ИначеЕсли ЭтоОдиночноеОбновление(ДанныеОбновления) Тогда
ПараметрыСообщения = СтруктураСообщенияТелеграм(Обновление);
Если ДанныеОбновления.Получить("message") <> Неопределено Тогда
ПараметрыСообщения = СтруктураСообщенияТелеграм(ДанныеОбновления);
ИначеЕсли ДанныеОбновления.Получить("callback_query") <> Неопределено Тогда
ПараметрыСообщения = СтруктураКоллбэкЗапроса(ДанныеОбновления);
КонецЕсли;
МассивСообщенийТелеграм.Добавить(ПараметрыСообщения)
КонецЕсли;
@@ -96,6 +100,33 @@
КонецФункции
Функция СтруктураКоллбэкЗапроса(Обновление)
ДанныеСообщения = Обновление["callback_query"];
ПараметрыСообщения = Новый Структура;
ПараметрыСообщения.Вставить("ИдКоллбэкЗапроса", Обновление["update_id"]);
Автор = АвторСообщения(ДанныеСообщения["from"]);
ПараметрыСообщения.Вставить("Автор", Автор);
Если ДанныеСообщения.Получить("message") <> Неопределено Тогда
НовоеСообщение = ТелеграмСообщение(ДанныеСообщения["message"], Автор);
ПараметрыСообщения.Вставить("Сообщение", НовоеСообщение);
КонецЕсли;
ПараметрыСообщения.Вставить("Дата", ТекущаяДатаСеанса());
ИдЧата = Автор.id;
ПараметрыСообщения.Вставить("ИдЧата", ИдЧата);
ДанныеКоллбэка = ДанныеСообщения["data"];
ПараметрыСообщения.Вставить("ДанныеКоллбэка", ДанныеКоллбэка);
Возврат ПараметрыСообщения;
КонецФункции
Процедура СохранитьСообщениеВБазу(СтруктураСообщения) Экспорт
МенеджерЗаписи = РегистрыСведений.ТелеграмСообщения.СоздатьМенеджерЗаписи();
@@ -144,8 +175,9 @@
ИдОбновления = СоответствиеОбновления.Получить("update_id");
Сообщение = СоответствиеОбновления.Получить("message");
КоллбэкЗапрос = СоответствиеОбновления.Получить("callback_query");
Если ИдОбновления <> Неопределено И Сообщение <> Неопределено Тогда
Если ИдОбновления <> Неопределено И (Сообщение <> Неопределено ИЛИ КоллбэкЗапрос <> Неопределено) Тогда
Возврат Истина;
КонецЕсли;

View File

@@ -16,7 +16,35 @@
КонецФункции
Функция КнопкаКлавиатуры(Надпись) Экспорт
Функция КлавиатураВстроенная(Клавиатура) Экспорт
СоответствиеКлавиатуры = Новый Соответствие();
СоответствиеКлавиатуры.Вставить("inline_keyboard", Клавиатура);
Возврат СоответствиеКлавиатуры;
КонецФункции
Функция КнопкаКлавиатурыВстроенной(Надпись, Url = Неопределено, CallbackData = Неопределено) Экспорт
СоответствиеКнопка = Новый Соответствие;
СоответствиеКнопка.Вставить("text", ?(НЕ ЗначениеЗаполнено(Надпись), "<?>", Надпись));
Если Url <> Неопределено Тогда
СоответствиеКнопка.Вставить("url", Url);
КонецЕсли;
Если CallbackData <> Неопределено Тогда
СоответствиеКнопка.Вставить("callback_data", CallbackData);
КонецЕсли;
Возврат СоответствиеКнопка;
КонецФункции
Функция КнопкаКлавиатурыОтвета(Надпись) Экспорт
СоответствиеКнопка = Новый Соответствие;
СоответствиеКнопка.Вставить("text", ?(НЕ ЗначениеЗаполнено(Надпись), "<?>", Надпись));
@@ -34,7 +62,7 @@
КонецЕсли;
Для каждого НадписьКнопки Из МассивНаименованийКнопок Цикл
Результат.Добавить(КнопкаКлавиатуры(НадписьКнопки));
Результат.Добавить(КнопкаКлавиатурыОтвета(НадписьКнопки));
КонецЦикла;
Возврат Результат;

View File

@@ -249,13 +249,14 @@
<Subsystem>Обновления</Subsystem>
<CommonPicture>КартинкаБот</CommonPicture>
<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>
<ScheduledJob>ПроверкаОбновленийТелеграм</ScheduledJob>
<Constant>ТелеграмТокен</Constant>
@@ -269,6 +270,8 @@
<Document>ЛогHttpЗапроса</Document>
<Enum>МетодHTTPЗапроса</Enum>
<Enum>ТелеграмРежимРазметки</Enum>
<Enum>ТелеграмСтатусДиалога</Enum>
<Enum>ВидыДанныхКоллбэков</Enum>
<DataProcessor>РаботаССообщениями</DataProcessor>
<DataProcessor>РаботаСОбновлениями</DataProcessor>
<InformationRegister>ТелеграмСообщения</InformationRegister>

View File

@@ -11,47 +11,116 @@
Ответ = ТелеграмМетодыВызовСервера.GetUpdates();
Если Ответ.Успех Тогда
//МассивРядов = Новый Массив;
//МассивКнопок = ТелеграмРаботаСКлавиатурой.РядКнопок("один;два;три");
//МассивРядов.Добавить(МассивКнопок);
//МассивКнопок = ТелеграмРаботаСКлавиатурой.РядКнопок("Выбрать конфигурацию;Актуальная версия;Калькулятор обновлений");
//МассивРядов.Добавить(МассивКнопок);
//Клавиатура = ТелеграмРаботаСКлавиатурой.КлавиатураОтвета(МассивРядов, Истина, Истина);
//
//МассивСообщенийТелеграм = ТелеграмОбщегоНазначения.ОбновленияТелеграм(Ответ.Тело);
//Для каждого СообщениеТелеграм Из МассивСообщенийТелеграм Цикл
БотОбщегоНазначения.ОбработкаКомандыБота(Ответ);
//Если Ответ.Успех Тогда
// МассивСообщенийТелеграм = ТелеграмОбщегоНазначения.ОбновленияТелеграм(Ответ.Тело);
// Для каждого СообщениеТелеграм Из МассивСообщенийТелеграм Цикл
// ТелеграмОбщегоНазначения.СохранитьСообщениеВБазу(СообщениеТелеграм);
// ТелеграмМетодыВызовСервера.SendMessage(СообщениеТелеграм.ИдЧата, СообщениеТелеграм.Сообщение.text, Клавиатура);
//КонецЦикла;
МассивСообщенийТелеграм = ТелеграмОбщегоНазначения.ОбновленияТелеграм(Ответ.Тело);
Для каждого СообщениеТелеграм Из МассивСообщенийТелеграм Цикл
ТелеграмОбщегоНазначения.СохранитьСообщениеВБазу(СообщениеТелеграм);
Если СообщениеТелеграм.Сообщение.text = "Конфигурации" Тогда
ТекстОтвета = "Комплексная автоматизация" + Символы.ПС +
"Бухгалтерия предприятия" + Символы.ПС +
"Зарплата и управление персоналом" + Символы.ПС +
"Управление торговлей";
ТелеграмМетодыВызовСервера.SendMessage(СообщениеТелеграм.ИдЧата, ТекстОтвета);
ИначеЕсли СообщениеТелеграм.Сообщение.text = "Подписки" Тогда
МассивПодписок = РаботаСОбновлениямиВызовСервера.КонфигурацииИзПодписки(СообщениеТелеграм.ИдЧата);
ТекстОтвета = "";
Для каждого Конфигурация Из МассивПодписок Цикл
ТекстОтвета = ТекстОтвета + СтрШаблон("%1(%2)%3",Конфигурация.Наименование, Конфигурация.ТекущаяВерсия, Символы.ПС);
КонецЦикла;
ТелеграмМетодыВызовСервера.SendMessage(СообщениеТелеграм.ИдЧата, ТекстОтвета);
КонецЕсли;
//ТелеграмМетодыВызовСервера.SendMessage(СообщениеТелеграм.ИдЧата, СообщениеТелеграм.Сообщение.text);
КонецЦикла;
КонецЕсли;
//
// Если СообщениеТелеграм.Сообщение.text = "/start" Тогда
// ТекстОтвета = "Привет! Я бот, который поможет тебе следить за обновлениями конфигураций 1С." + Символы.ПС +
// Символы.ВК + Символы.ПС +
// "Что я умею:" + Символы.ПС +
// "- Отслеживать новые релизы" + Символы.ПС +
// "- Присылать уведомления о выходе обновлений" + Символы.ПС +
// "- Показывать текущую версию" + Символы.ПС +
// Символы.ВК + Символы.ПС +
// "/subscribe - Список конфигураций для отслеживания" + Символы.ПС +
// "/add - Добавить конфигурацию в список отслеживания" + Символы.ПС +
// "/delete - Удалить конфигурацию из списка отслеживания" + Символы.ПС +
// Символы.ВК + Символы.ПС +
// "/help — Помощь";
//
// ТелеграмМетодыВызовСервера.SendMessage(СообщениеТелеграм.ИдЧата, ТекстОтвета,,);
// ИначеЕсли СообщениеТелеграм.Сообщение.text = "/subscribe" Тогда
// КонфигурацииДляВыбора = РаботаСОбновлениямиВызовСервера.КонфигурацииДляВыбора(СообщениеТелеграм.ИдЧата);
//
// Если КонфигурацииДляВыбора.Количество() = 0 Тогда
// ТекстОтвета = "Не удалось получить список конфигураций";
// Иначе
// ТекстОтвета = "";
// Для каждого ПунктМенюПодписки Из КонфигурацииДляВыбора Цикл
// ТекстОтвета = ТекстОтвета + СтрШаблон("%1 %2%3", ?(ПунктМенюПодписки.Подписка, "[X]", "[ ]"),
// ПунктМенюПодписки.Наименование,Символы.ПС);
// КонецЦикла;
// КонецЕсли;
//
// ТелеграмМетодыВызовСервера.SendMessage(СообщениеТелеграм.ИдЧата, ТекстОтвета,,);
// ИначеЕсли СообщениеТелеграм.Сообщение.text = "/add" Тогда
// КонфигурацииДляВыбора = РаботаСОбновлениямиВызовСервера.КонфигурацииДляВыбора(СообщениеТелеграм.ИдЧата);
//
// Если КонфигурацииДляВыбора.Количество() = 0 Тогда
// ТекстОтвета = "Не удалось получить список конфигураций";
// Иначе
// МассивРядов = Новый Массив;
// ТекстОтвета = "Выберите нужную конфигурацию для отслеживания обновлений";
// Для каждого ПунктМенюПодписки Из КонфигурацииДляВыбора Цикл
// Если НЕ ПунктМенюПодписки.Подписка Тогда
// МассивКнопок = Новый Массив;
// МассивКнопок.Добавить(ТелеграмРаботаСКлавиатурой.КнопкаКлавиатуры
// ("/add_conf " + ПунктМенюПодписки.Наименование));
// МассивРядов.Добавить(МассивКнопок);
// КонецЕсли;
// КонецЦикла;
// КонецЕсли;
//
// Клавиатура = ТелеграмРаботаСКлавиатурой.КлавиатураОтвета(МассивРядов, Истина, Истина);
// ТелеграмМетодыВызовСервера.SendMessage(СообщениеТелеграм.ИдЧата, ТекстОтвета,,Клавиатура);
// ИначеЕсли СтрНачинаетсяС(СообщениеТелеграм.Сообщение.text, "/add_conf") Тогда
// Результат = ДобавитьКонфигурациюВСписокОтслеживания(СообщениеТелеграм.Сообщение.text, СообщениеТелеграм.ИдЧата);
// КонецЕсли;
// КонецЦикла;
//КонецЕсли;
Возврат Ответ;
КонецФункции
//&НаСервереБезКонтекста
//Функция ДобавитьКонфигурациюВСписокОтслеживания(ТекстСообщения, ИдЧата)
//
// КомандаДобавленияКонфигурации = "/add_conf";
//
// Если НЕ СтрНачинаетсяС(ТекстСообщения, КомандаДобавленияКонфигурации) Тогда
// Возврат Ложь;
// КонецЕсли;
//
// НаименованиеКонфигурации = СокрЛП(Сред(ТекстСообщения, СтрДлина(КомандаДобавленияКонфигурации) + 1,
// СтрДлина(ТекстСообщения) - СтрДлина(КомандаДобавленияКонфигурации)+ 1));
//
// Запрос = Новый Запрос;
// Запрос.Текст =
// "ВЫБРАТЬ
// | Конфигурации.Ссылка КАК Конфигурация,
// | &ИдЧата КАК ИдЧата,
// | &ТекущаяВерсия КАК ТекущаяВерсия,
// | &АктуальнаяВерсия КАК АктуальнаяВерсия
// |ИЗ
// | Справочник.Конфигурации КАК Конфигурации
// |ГДЕ
// | Конфигурации.Наименование ПОДОБНО ""%"" + &Наименование + ""%""";
//
// Запрос.УстановитьПараметр("Наименование", НаименованиеКонфигурации);
// Запрос.УстановитьПараметр("ИдЧата", ИдЧата);
// Запрос.УстановитьПараметр("ТекущаяВерсия", "1.1.1.1");
// Запрос.УстановитьПараметр("АктуальнаяВерсия", "1.2.3.4");
//
// РезультатЗапроса = Запрос.Выполнить();
//
// ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать();
//
// Если ВыборкаДетальныеЗаписи.Следующий() Тогда
// МенеджерЗаписи = РегистрыСведений.ОтслеживаниеВерсийКонфигураций.СоздатьМенеджерЗаписи();
// ЗаполнитьЗначенияСвойств(МенеджерЗаписи, ВыборкаДетальныеЗаписи);
// МенеджерЗаписи.Записать();
// Возврат Истина;
// КонецЕсли;
//
// Возврат Ложь;
//
//КонецФункции
&НаКлиенте
Процедура getWebhookInfo(Команда)
@@ -208,3 +277,4 @@
Возврат БиблиотекаКартинок.КартинкаБот.ПолучитьДвоичныеДанные();
КонецФункции

View File

@@ -0,0 +1,67 @@
<?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">
<Enum uuid="49b74ca2-e1cc-4ac3-9da2-d2e3c99a5044">
<InternalInfo>
<xr:GeneratedType name="EnumRef.ВидыДанныхКоллбэков" category="Ref">
<xr:TypeId>faee0c1e-a312-43c8-8af2-20618cc53904</xr:TypeId>
<xr:ValueId>b6d6ee51-fdfe-47bd-bc31-3147751dc7fc</xr:ValueId>
</xr:GeneratedType>
<xr:GeneratedType name="EnumManager.ВидыДанныхКоллбэков" category="Manager">
<xr:TypeId>268e63a6-adc9-4961-9d35-92c1ddc296e3</xr:TypeId>
<xr:ValueId>6e68fa9a-2345-462c-98d4-6c31908cb17b</xr:ValueId>
</xr:GeneratedType>
<xr:GeneratedType name="EnumList.ВидыДанныхКоллбэков" category="List">
<xr:TypeId>6bf0eedb-c7aa-4a05-ae0f-3900e6b21ff7</xr:TypeId>
<xr:ValueId>7947dc7b-96c2-4672-8ebe-c48dba063c3e</xr:ValueId>
</xr:GeneratedType>
</InternalInfo>
<Properties>
<Name>ВидыДанныхКоллбэков</Name>
<Synonym>
<v8:item>
<v8:lang>ru</v8:lang>
<v8:content>Виды данных коллбэков</v8:content>
</v8:item>
</Synonym>
<Comment/>
<UseStandardCommands>false</UseStandardCommands>
<Characteristics/>
<QuickChoice>true</QuickChoice>
<ChoiceMode>BothWays</ChoiceMode>
<DefaultListForm/>
<DefaultChoiceForm/>
<AuxiliaryListForm/>
<AuxiliaryChoiceForm/>
<ListPresentation/>
<ExtendedListPresentation/>
<Explanation/>
<ChoiceHistoryOnInput>Auto</ChoiceHistoryOnInput>
</Properties>
<ChildObjects>
<EnumValue uuid="e9994e9e-2232-4446-9340-1a27a3b395b1">
<Properties>
<Name>AddVersion</Name>
<Synonym>
<v8:item>
<v8:lang>ru</v8:lang>
<v8:content>Add version</v8:content>
</v8:item>
</Synonym>
<Comment/>
</Properties>
</EnumValue>
<EnumValue uuid="cd9b7c80-8053-495b-aa4d-a1a7b838ee62">
<Properties>
<Name>DeleteVersion</Name>
<Synonym>
<v8:item>
<v8:lang>ru</v8:lang>
<v8:content>Delete version</v8:content>
</v8:item>
</Synonym>
<Comment/>
</Properties>
</EnumValue>
</ChildObjects>
</Enum>
</MetaDataObject>

View File

@@ -0,0 +1,67 @@
<?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">
<Enum uuid="2493ff18-0aaf-485d-bb57-d22fb2391ca0">
<InternalInfo>
<xr:GeneratedType name="EnumRef.ТелеграмСтатусДиалога" category="Ref">
<xr:TypeId>cf2bd22c-53f7-4ac4-b9cd-481d538fa00e</xr:TypeId>
<xr:ValueId>6d902a2a-3f17-4fd5-b737-7026d967c7b8</xr:ValueId>
</xr:GeneratedType>
<xr:GeneratedType name="EnumManager.ТелеграмСтатусДиалога" category="Manager">
<xr:TypeId>8db25e5c-a1bf-4d76-aec6-db62437baabf</xr:TypeId>
<xr:ValueId>70ab63bd-a1f5-4a77-9a44-aa12047391a8</xr:ValueId>
</xr:GeneratedType>
<xr:GeneratedType name="EnumList.ТелеграмСтатусДиалога" category="List">
<xr:TypeId>392a66d6-1ea8-4044-b85f-a259b75aea29</xr:TypeId>
<xr:ValueId>f4d001cd-6eda-4cf1-b3a4-124be40377dd</xr:ValueId>
</xr:GeneratedType>
</InternalInfo>
<Properties>
<Name>ТелеграмСтатусДиалога</Name>
<Synonym>
<v8:item>
<v8:lang>ru</v8:lang>
<v8:content>Телеграм статус диалога</v8:content>
</v8:item>
</Synonym>
<Comment/>
<UseStandardCommands>false</UseStandardCommands>
<Characteristics/>
<QuickChoice>true</QuickChoice>
<ChoiceMode>BothWays</ChoiceMode>
<DefaultListForm/>
<DefaultChoiceForm/>
<AuxiliaryListForm/>
<AuxiliaryChoiceForm/>
<ListPresentation/>
<ExtendedListPresentation/>
<Explanation/>
<ChoiceHistoryOnInput>Auto</ChoiceHistoryOnInput>
</Properties>
<ChildObjects>
<EnumValue uuid="98b22f32-3bf7-477a-9b02-e7633e1b63f2">
<Properties>
<Name>НачальноеСостояние</Name>
<Synonym>
<v8:item>
<v8:lang>ru</v8:lang>
<v8:content>Начальное состояние</v8:content>
</v8:item>
</Synonym>
<Comment/>
</Properties>
</EnumValue>
<EnumValue uuid="9df045ba-f23b-466d-95da-56c46e2fcaf7">
<Properties>
<Name>ОжиданиеВводаВерсии</Name>
<Synonym>
<v8:item>
<v8:lang>ru</v8:lang>
<v8:content>Ожидание ввода версии</v8:content>
</v8:item>
</Synonym>
<Comment/>
</Properties>
</EnumValue>
</ChildObjects>
</Enum>
</MetaDataObject>

View File

@@ -2,7 +2,8 @@
Функция ШаблонURL1PostGetUpdate(Запрос)
Попытка
ТелеграмОбщегоНазначения.ОбработатьИСохранитьОбновленияТелеграм(Запрос.ПолучитьТелоКакСтроку());
//ТелеграмОбщегоНазначения.ОбработатьИСохранитьОбновленияТелеграм(Запрос.ПолучитьТелоКакСтроку());
БотОбщегоНазначения.ОбработкаКомандыБота(Запрос.ПолучитьТелоКакСтроку());
Ответ = HttpОбщегоНазначения.ОтветУспех();
Возврат Ответ;
Исключение

View File

@@ -19,6 +19,8 @@
<xr:Item xsi:type="xr:MDObjectRef">DataProcessor.РаботаСОбновлениями</xr:Item>
<xr:Item xsi:type="xr:MDObjectRef">InformationRegister.ОтслеживаниеВерсийКонфигураций</xr:Item>
<xr:Item xsi:type="xr:MDObjectRef">Catalog.Конфигурации</xr:Item>
<xr:Item xsi:type="xr:MDObjectRef">Enum.ТелеграмСтатусДиалога</xr:Item>
<xr:Item xsi:type="xr:MDObjectRef">Enum.ВидыДанныхКоллбэков</xr:Item>
</Content>
</Properties>
<ChildObjects/>

View File

@@ -29,6 +29,8 @@
<xr:Item xsi:type="xr:MDObjectRef">Catalog.ТелеграмДокумент</xr:Item>
<xr:Item xsi:type="xr:MDObjectRef">CommonPicture.КартинкаБот</xr:Item>
<xr:Item xsi:type="xr:MDObjectRef">Enum.ТелеграмРежимРазметки</xr:Item>
<xr:Item xsi:type="xr:MDObjectRef">Enum.ТелеграмСтатусДиалога</xr:Item>
<xr:Item xsi:type="xr:MDObjectRef">Enum.ВидыДанныхКоллбэков</xr:Item>
</Content>
</Properties>
<ChildObjects/>

View File

@@ -1,2 +1,2 @@
<?xml version="1.0" encoding="UTF-8"?>
<VERSION>6</VERSION>
<VERSION>8</VERSION>