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> <DataHistory>Use</DataHistory>
</Properties> </Properties>
</Attribute> </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> </ChildObjects>
</Catalog> </Catalog>
</MetaDataObject> </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"); ИдОбновления = СоответствиеОбновления.Получить("update_id");
Сообщение = СоответствиеОбновления.Получить("message"); Сообщение = СоответствиеОбновления.Получить("message");
КоллбэкЗапрос = СоответствиеОбновления.Получить("callback_query");
Если ИдОбновления <> Неопределено И Сообщение <> Неопределено Тогда Если ИдОбновления <> Неопределено И (Сообщение <> Неопределено ИЛИ КоллбэкЗапрос <> Неопределено) Тогда
Возврат Истина; Возврат Истина;
КонецЕсли; КонецЕсли;

View File

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

View File

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

View File

@@ -11,47 +11,116 @@
Ответ = ТелеграмМетодыВызовСервера.GetUpdates(); Ответ = ТелеграмМетодыВызовСервера.GetUpdates();
Если Ответ.Успех Тогда БотОбщегоНазначения.ОбработкаКомандыБота(Ответ);
//МассивРядов = Новый Массив;
//МассивКнопок = ТелеграмРаботаСКлавиатурой.РядКнопок("один;два;три"); //Если Ответ.Успех Тогда
//МассивРядов.Добавить(МассивКнопок); // МассивСообщенийТелеграм = ТелеграмОбщегоНазначения.ОбновленияТелеграм(Ответ.Тело);
//МассивКнопок = ТелеграмРаботаСКлавиатурой.РядКнопок("Выбрать конфигурацию;Актуальная версия;Калькулятор обновлений"); // Для каждого СообщениеТелеграм Из МассивСообщенийТелеграм Цикл
//МассивРядов.Добавить(МассивКнопок);
//Клавиатура = ТелеграмРаботаСКлавиатурой.КлавиатураОтвета(МассивРядов, Истина, Истина);
//
//МассивСообщенийТелеграм = ТелеграмОбщегоНазначения.ОбновленияТелеграм(Ответ.Тело);
//Для каждого СообщениеТелеграм Из МассивСообщенийТелеграм Цикл
// ТелеграмОбщегоНазначения.СохранитьСообщениеВБазу(СообщениеТелеграм); // ТелеграмОбщегоНазначения.СохранитьСообщениеВБазу(СообщениеТелеграм);
// ТелеграмМетодыВызовСервера.SendMessage(СообщениеТелеграм.ИдЧата, СообщениеТелеграм.Сообщение.text, Клавиатура); //
//КонецЦикла; // Если СообщениеТелеграм.Сообщение.text = "/start" Тогда
// ТекстОтвета = "Привет! Я бот, который поможет тебе следить за обновлениями конфигураций 1С." + Символы.ПС +
МассивСообщенийТелеграм = ТелеграмОбщегоНазначения.ОбновленияТелеграм(Ответ.Тело); // Символы.ВК + Символы.ПС +
Для каждого СообщениеТелеграм Из МассивСообщенийТелеграм Цикл // "Что я умею:" + Символы.ПС +
ТелеграмОбщегоНазначения.СохранитьСообщениеВБазу(СообщениеТелеграм); // "- Отслеживать новые релизы" + Символы.ПС +
Если СообщениеТелеграм.Сообщение.text = "Конфигурации" Тогда // "- Присылать уведомления о выходе обновлений" + Символы.ПС +
ТекстОтвета = "Комплексная автоматизация" + Символы.ПС + // "- Показывать текущую версию" + Символы.ПС +
"Бухгалтерия предприятия" + Символы.ПС + // Символы.ВК + Символы.ПС +
"Зарплата и управление персоналом" + Символы.ПС + // "/subscribe - Список конфигураций для отслеживания" + Символы.ПС +
"Управление торговлей"; // "/add - Добавить конфигурацию в список отслеживания" + Символы.ПС +
// "/delete - Удалить конфигурацию из списка отслеживания" + Символы.ПС +
ТелеграмМетодыВызовСервера.SendMessage(СообщениеТелеграм.ИдЧата, ТекстОтвета); // Символы.ВК + Символы.ПС +
ИначеЕсли СообщениеТелеграм.Сообщение.text = "Подписки" Тогда // "/help — Помощь";
МассивПодписок = РаботаСОбновлениямиВызовСервера.КонфигурацииИзПодписки(СообщениеТелеграм.ИдЧата); //
ТекстОтвета = ""; // ТелеграмМетодыВызовСервера.SendMessage(СообщениеТелеграм.ИдЧата, ТекстОтвета,,);
Для каждого Конфигурация Из МассивПодписок Цикл // ИначеЕсли СообщениеТелеграм.Сообщение.text = "/subscribe" Тогда
ТекстОтвета = ТекстОтвета + СтрШаблон("%1(%2)%3",Конфигурация.Наименование, Конфигурация.ТекущаяВерсия, Символы.ПС); // КонфигурацииДляВыбора = РаботаСОбновлениямиВызовСервера.КонфигурацииДляВыбора(СообщениеТелеграм.ИдЧата);
КонецЦикла; //
ТелеграмМетодыВызовСервера.SendMessage(СообщениеТелеграм.ИдЧата, ТекстОтвета); // Если КонфигурацииДляВыбора.Количество() = 0 Тогда
КонецЕсли; // ТекстОтвета = "Не удалось получить список конфигураций";
//ТелеграмМетодыВызовСервера.SendMessage(СообщениеТелеграм.ИдЧата, СообщениеТелеграм.Сообщение.text); // Иначе
КонецЦикла; // ТекстОтвета = "";
// Для каждого ПунктМенюПодписки Из КонфигурацииДляВыбора Цикл
КонецЕсли; // ТекстОтвета = ТекстОтвета + СтрШаблон("%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(Команда) Процедура 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(Запрос) Функция ШаблонURL1PostGetUpdate(Запрос)
Попытка Попытка
ТелеграмОбщегоНазначения.ОбработатьИСохранитьОбновленияТелеграм(Запрос.ПолучитьТелоКакСтроку()); //ТелеграмОбщегоНазначения.ОбработатьИСохранитьОбновленияТелеграм(Запрос.ПолучитьТелоКакСтроку());
БотОбщегоНазначения.ОбработкаКомандыБота(Запрос.ПолучитьТелоКакСтроку());
Ответ = HttpОбщегоНазначения.ОтветУспех(); Ответ = HttpОбщегоНазначения.ОтветУспех();
Возврат Ответ; Возврат Ответ;
Исключение Исключение

View File

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

View File

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

View File

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