Compare commits
2 Commits
bf54a89e2e
...
0172c538be
| Author | SHA1 | Date | |
|---|---|---|---|
| 0172c538be | |||
| 694e06f836 |
@@ -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>
|
||||
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="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>
|
||||
283
src/cf/CommonModules/БотОбщегоНазначения/Ext/Module.bsl
Normal file
283
src/cf/CommonModules/БотОбщегоНазначения/Ext/Module.bsl
Normal 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", Команда, ПунктМенюПодписки.Имя)
|
||||
));
|
||||
МассивРядов.Добавить(МассивКнопок);
|
||||
КонецЕсли;
|
||||
КонецЦикла;
|
||||
Возврат МассивРядов;
|
||||
КонецЕсли;
|
||||
|
||||
КонецФункции
|
||||
|
||||
#КонецОбласти
|
||||
@@ -52,6 +52,50 @@
|
||||
|
||||
КонецФункции
|
||||
|
||||
Функция СписокКонфигураций(ИдЧата) Экспорт
|
||||
|
||||
Запрос = Новый Запрос;
|
||||
Запрос.Текст =
|
||||
"ВЫБРАТЬ РАЗЛИЧНЫЕ
|
||||
| ОтслеживаниеВерсийКонфигураций.Конфигурация КАК Конфигурация,
|
||||
| ОтслеживаниеВерсийКонфигураций.Конфигурация.Наименование КАК КонфигурацияНаименование,
|
||||
| ОтслеживаниеВерсийКонфигураций.Конфигурация.Имя КАК КонфигурацияИмя,
|
||||
| ИСТИНА КАК Подписка
|
||||
|ПОМЕСТИТЬ ВТ_ОтслеживаемыеКонфигурации
|
||||
|ИЗ
|
||||
| РегистрСведений.ОтслеживаниеВерсийКонфигураций КАК ОтслеживаниеВерсийКонфигураций
|
||||
|ГДЕ
|
||||
| ОтслеживаниеВерсийКонфигураций.ИдЧата = &ИдЧата
|
||||
|;
|
||||
|
|
||||
|////////////////////////////////////////////////////////////////////////////////
|
||||
|ВЫБРАТЬ
|
||||
| Конфигурации.Наименование КАК Наименование,
|
||||
| Конфигурации.Имя КАК Имя,
|
||||
| ЕСТЬNULL(ВТ_ОтслеживаемыеКонфигурации.Подписка, ЛОЖЬ) КАК Подписка
|
||||
|ИЗ
|
||||
| Справочник.Конфигурации КАК Конфигурации
|
||||
| ЛЕВОЕ СОЕДИНЕНИЕ ВТ_ОтслеживаемыеКонфигурации КАК ВТ_ОтслеживаемыеКонфигурации
|
||||
| ПО (ВТ_ОтслеживаемыеКонфигурации.Конфигурация = Конфигурации.Ссылка)
|
||||
|
|
||||
|УПОРЯДОЧИТЬ ПО
|
||||
| Подписка УБЫВ";
|
||||
|
||||
Запрос.УстановитьПараметр("ИдЧата", ИдЧата);
|
||||
РезультатЗапроса = Запрос.Выполнить();
|
||||
ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать();
|
||||
МассивКонфигураций = Новый Массив;
|
||||
|
||||
Пока ВыборкаДетальныеЗаписи.Следующий() Цикл
|
||||
Конфигурация = Новый Структура("Наименование, Имя, Подписка", ВыборкаДетальныеЗаписи.Наименование,
|
||||
ВыборкаДетальныеЗаписи.Имя, ВыборкаДетальныеЗаписи.Подписка);
|
||||
|
||||
МассивКонфигураций.Добавить(Конфигурация);
|
||||
КонецЦикла;
|
||||
|
||||
Возврат МассивКонфигураций;
|
||||
|
||||
КонецФункции
|
||||
|
||||
Функция АктуализироватьВерсииКонфигураций()Экспорт
|
||||
|
||||
@@ -101,6 +145,87 @@
|
||||
|
||||
КонецФункции
|
||||
|
||||
Функция КонфигурацияПоИмени(ИмяКонфигурации) Экспорт
|
||||
|
||||
Запрос = Новый Запрос;
|
||||
Запрос.Текст =
|
||||
"ВЫБРАТЬ
|
||||
| Конфигурации.Ссылка КАК Конфигурация
|
||||
|ИЗ
|
||||
| Справочник.Конфигурации КАК Конфигурации
|
||||
|ГДЕ
|
||||
| Конфигурации.Имя = &Имя";
|
||||
|
||||
Запрос.УстановитьПараметр("Имя", ИмяКонфигурации);
|
||||
|
||||
РезультатЗапроса = Запрос.Выполнить();
|
||||
|
||||
ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать();
|
||||
|
||||
Если ВыборкаДетальныеЗаписи.Следующий() Тогда
|
||||
Возврат ВыборкаДетальныеЗаписи.Конфигурация;
|
||||
КонецЕсли;
|
||||
|
||||
Возврат Неопределено;
|
||||
|
||||
КонецФункции
|
||||
|
||||
Процедура УстановитьСтатусДиалога(ИдЧата, НовыйСтатус, ДополнительнаяИнформация) Экспорт
|
||||
|
||||
Запрос = Новый Запрос;
|
||||
Запрос.Текст =
|
||||
"ВЫБРАТЬ
|
||||
| ТелеграмПользователь.Ссылка КАК Ссылка,
|
||||
| ТелеграмПользователь.СтатусДиалога КАК СтатусДиалога
|
||||
|ИЗ
|
||||
| Справочник.ТелеграмПользователь КАК ТелеграмПользователь
|
||||
|ГДЕ
|
||||
| ТелеграмПользователь.id = &ИдЧата";
|
||||
|
||||
Запрос.УстановитьПараметр("ИдЧата", ИдЧата);
|
||||
|
||||
РезультатЗапроса = Запрос.Выполнить();
|
||||
|
||||
ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать();
|
||||
|
||||
Если ВыборкаДетальныеЗаписи.Следующий() Тогда
|
||||
ПользовательОбъект = ВыборкаДетальныеЗаписи.Ссылка.ПолучитьОбъект();
|
||||
Если ПользовательОбъект <> Неопределено Тогда
|
||||
ПользовательОбъект.СтатусДиалога = НовыйСтатус;
|
||||
ПользовательОбъект.ДополнительнаяИнформация = ДополнительнаяИнформация;
|
||||
ПользовательОбъект.Записать();
|
||||
КонецЕсли;
|
||||
КонецЕсли;
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
Функция ПолучитьДанныеПользователя(ИдЧата) Экспорт
|
||||
|
||||
Запрос = Новый Запрос;
|
||||
Запрос.Текст =
|
||||
"ВЫБРАТЬ
|
||||
| ТелеграмПользователь.СтатусДиалога КАК СтатусДиалога,
|
||||
| ТелеграмПользователь.ДополнительнаяИнформация КАК ДополнительнаяИнформация
|
||||
|ИЗ
|
||||
| Справочник.ТелеграмПользователь КАК ТелеграмПользователь
|
||||
|ГДЕ
|
||||
| ТелеграмПользователь.id = &ИдЧата";
|
||||
|
||||
Запрос.УстановитьПараметр("ИдЧата", ИдЧата);
|
||||
|
||||
РезультатЗапроса = Запрос.Выполнить();
|
||||
|
||||
ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать();
|
||||
|
||||
Если ВыборкаДетальныеЗаписи.Следующий() Тогда
|
||||
Возврат Новый Структура("СтатусДиалога, ДополнительнаяИнформация", ВыборкаДетальныеЗаписи.СтатусДиалога,
|
||||
ВыборкаДетальныеЗаписи.ДополнительнаяИнформация);
|
||||
КонецЕсли;
|
||||
|
||||
Возврат Неопределено;
|
||||
|
||||
КонецФункции
|
||||
|
||||
#КонецОбласти
|
||||
|
||||
#Область СлужебныеПроцедурыИФункции
|
||||
|
||||
@@ -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");
|
||||
|
||||
Если ИдОбновления <> Неопределено И Сообщение <> Неопределено Тогда
|
||||
Если ИдОбновления <> Неопределено И (Сообщение <> Неопределено ИЛИ КоллбэкЗапрос <> Неопределено) Тогда
|
||||
Возврат Истина;
|
||||
КонецЕсли;
|
||||
|
||||
|
||||
@@ -16,7 +16,35 @@
|
||||
|
||||
КонецФункции
|
||||
|
||||
Функция КнопкаКлавиатуры(Надпись) Экспорт
|
||||
Функция КлавиатураВстроенная(Клавиатура) Экспорт
|
||||
|
||||
СоответствиеКлавиатуры = Новый Соответствие();
|
||||
|
||||
СоответствиеКлавиатуры.Вставить("inline_keyboard", Клавиатура);
|
||||
|
||||
Возврат СоответствиеКлавиатуры;
|
||||
|
||||
КонецФункции
|
||||
|
||||
|
||||
Функция КнопкаКлавиатурыВстроенной(Надпись, Url = Неопределено, CallbackData = Неопределено) Экспорт
|
||||
|
||||
СоответствиеКнопка = Новый Соответствие;
|
||||
СоответствиеКнопка.Вставить("text", ?(НЕ ЗначениеЗаполнено(Надпись), "<?>", Надпись));
|
||||
|
||||
Если Url <> Неопределено Тогда
|
||||
СоответствиеКнопка.Вставить("url", Url);
|
||||
КонецЕсли;
|
||||
|
||||
Если CallbackData <> Неопределено Тогда
|
||||
СоответствиеКнопка.Вставить("callback_data", CallbackData);
|
||||
КонецЕсли;
|
||||
|
||||
Возврат СоответствиеКнопка;
|
||||
|
||||
КонецФункции
|
||||
|
||||
Функция КнопкаКлавиатурыОтвета(Надпись) Экспорт
|
||||
|
||||
СоответствиеКнопка = Новый Соответствие;
|
||||
СоответствиеКнопка.Вставить("text", ?(НЕ ЗначениеЗаполнено(Надпись), "<?>", Надпись));
|
||||
@@ -34,7 +62,7 @@
|
||||
КонецЕсли;
|
||||
|
||||
Для каждого НадписьКнопки Из МассивНаименованийКнопок Цикл
|
||||
Результат.Добавить(КнопкаКлавиатуры(НадписьКнопки));
|
||||
Результат.Добавить(КнопкаКлавиатурыОтвета(НадписьКнопки));
|
||||
КонецЦикла;
|
||||
|
||||
Возврат Результат;
|
||||
|
||||
@@ -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>
|
||||
|
||||
@@ -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 @@
|
||||
Возврат БиблиотекаКартинок.КартинкаБот.ПолучитьДвоичныеДанные();
|
||||
|
||||
КонецФункции
|
||||
|
||||
|
||||
67
src/cf/Enums/ВидыДанныхКоллбэков.xml
Normal file
67
src/cf/Enums/ВидыДанныхКоллбэков.xml
Normal 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>
|
||||
67
src/cf/Enums/ТелеграмСтатусДиалога.xml
Normal file
67
src/cf/Enums/ТелеграмСтатусДиалога.xml
Normal 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>
|
||||
@@ -2,7 +2,8 @@
|
||||
Функция ШаблонURL1PostGetUpdate(Запрос)
|
||||
|
||||
Попытка
|
||||
ТелеграмОбщегоНазначения.ОбработатьИСохранитьОбновленияТелеграм(Запрос.ПолучитьТелоКакСтроку());
|
||||
//ТелеграмОбщегоНазначения.ОбработатьИСохранитьОбновленияТелеграм(Запрос.ПолучитьТелоКакСтроку());
|
||||
БотОбщегоНазначения.ОбработкаКомандыБота(Запрос.ПолучитьТелоКакСтроку());
|
||||
Ответ = HttpОбщегоНазначения.ОтветУспех();
|
||||
Возврат Ответ;
|
||||
Исключение
|
||||
|
||||
@@ -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/>
|
||||
|
||||
@@ -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/>
|
||||
|
||||
@@ -1,2 +1,2 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<VERSION>6</VERSION>
|
||||
<VERSION>8</VERSION>
|
||||
|
||||
Reference in New Issue
Block a user