Compare commits

5 Commits

12 changed files with 30 additions and 106 deletions

View File

@@ -7,6 +7,7 @@
- Автоматическое отслеживание новых версий конфигураций - Автоматическое отслеживание новых версий конфигураций
- Уведомления о появлении актуальных версий конфигураций - Уведомления о появлении актуальных версий конфигураций
- Включение и отключение уведомлений о выходе новых версий конфигураций - Включение и отключение уведомлений о выходе новых версий конфигураций
- Возможность задать периодичность уведомлений (каждый час, день, неделю)
- Просмотр списка отслеживаемых конфигураций - Просмотр списка отслеживаемых конфигураций
- Добавление конкретной конфигурации в список отслеживания - Добавление конкретной конфигурации в список отслеживания
- Удаление конкретной конфигурации из списка отслеживания - Удаление конкретной конфигурации из списка отслеживания
@@ -26,9 +27,9 @@
Бот не требует внешнего сервера или промежуточного backend-а. Всё реализовано средствами платформы 1С. Бот не требует внешнего сервера или промежуточного backend-а. Всё реализовано средствами платформы 1С.
- Клонируйте или скачайте репозиторий: `git clone https://github.com/K4shey/tg_bot_1c.git` - Клонируйте или скачайте репозиторий: `git clone https://github.com/K4shey/1c_release_checker_bot.git`
- Создайте новую информационную базу. В режиме конфигуратора выполните команду загрузки конфигурации из файлов. - Создайте новую информационную базу. В режиме конфигуратора выполните команду загрузки конфигурации из файлов.
- Укажите путь к источнику: `tg_bot_1c\src\cf` - Укажите путь к источнику: `\src\cf`
- Зарегистрируйте Telegram-бота через @BotFather и получите токен. - Зарегистрируйте Telegram-бота через @BotFather и получите токен.
- Укажите токен в настройках конфигурации, раздел Администрирование. - Укажите токен в настройках конфигурации, раздел Администрирование.
- Есть возможность получать обновления в двух режимах: `long polling` и `webhook`. Режим устанавливается в настройках, раздел Администрирование. В случае использования `webhook` требуется публикация базы на веб-сервере. - Есть возможность получать обновления в двух режимах: `long polling` и `webhook`. Режим устанавливается в настройках, раздел Администрирование. В случае использования `webhook` требуется публикация базы на веб-сервере.

View File

@@ -170,7 +170,6 @@
КонецПроцедуры КонецПроцедуры
Процедура УстановитьПериодУведомления(ТекстСообщения, ИдЧата) Процедура УстановитьПериодУведомления(ТекстСообщения, ИдЧата)
Команда = XMLСтрока(Перечисления.ВидыДанныхОбратныхВызовов.NotifyOn); Команда = XMLСтрока(Перечисления.ВидыДанныхОбратныхВызовов.NotifyOn);
@@ -185,7 +184,6 @@
КонецПроцедуры КонецПроцедуры
Процедура ОбработатьВводВерсииКонфигурации(ОбновлениеТелеграм, ДанныеПользователя) Процедура ОбработатьВводВерсииКонфигурации(ОбновлениеТелеграм, ДанныеПользователя)
ИдЧата = ОбновлениеТелеграм.ИдЧата; ИдЧата = ОбновлениеТелеграм.ИдЧата;

View File

@@ -9,6 +9,7 @@
ТекстСообщения = ТекстСообщенияОНеактуальнойВерсии(ПолучательУведомления.Конфигурации); ТекстСообщения = ТекстСообщенияОНеактуальнойВерсии(ПолучательУведомления.Конфигурации);
ТелеграмМетодыВызовСервера.SendMessage(ПолучательУведомления.ИдЧата, ТекстСообщения, ТелеграмМетодыВызовСервера.SendMessage(ПолучательУведомления.ИдЧата, ТекстСообщения,
Перечисления.ТелеграмРежимРазметки.HTML); Перечисления.ТелеграмРежимРазметки.HTML);
РегистрыСведений.УведомленияОНовыхВерсиях.ОбновитьДатуОтправкиУведомления(ПолучательУведомления.ИдЧата);
КонецЦикла; КонецЦикла;
КонецПроцедуры КонецПроцедуры

View File

@@ -97,7 +97,7 @@
МассивРядов = Новый Массив; МассивРядов = Новый Массив;
Для каждого ЗначениеПериода из Метаданные.Перечисления.ПериодичностьУведомлений.ЗначенияПеречисления Цикл Для каждого ЗначениеПериода Из Метаданные.Перечисления.ПериодичностьУведомлений.ЗначенияПеречисления Цикл
КнопкаКлавиатурыВстроенной = ТелеграмРаботаСКлавиатурой.КнопкаКлавиатурыВстроенной(ЗначениеПериода.Синоним, , КнопкаКлавиатурыВстроенной = ТелеграмРаботаСКлавиатурой.КнопкаКлавиатурыВстроенной(ЗначениеПериода.Синоним, ,
СтрШаблон("%1 %2", Команда, ЗначениеПериода.Имя)); СтрШаблон("%1 %2", Команда, ЗначениеПериода.Имя));
Если ЗначениеПериода.Имя <> "НеУведомлять" Тогда Если ЗначениеПериода.Имя <> "НеУведомлять" Тогда

View File

@@ -284,7 +284,6 @@
<Enum>ВидыДанныхОбратныхВызовов</Enum> <Enum>ВидыДанныхОбратныхВызовов</Enum>
<Enum>ПериодичностьУведомлений</Enum> <Enum>ПериодичностьУведомлений</Enum>
<DataProcessor>НачальноеЗаполнениеДанных</DataProcessor> <DataProcessor>НачальноеЗаполнениеДанных</DataProcessor>
<DataProcessor>Тест_Удалить</DataProcessor>
<InformationRegister>ТелеграмИсторияСообщений</InformationRegister> <InformationRegister>ТелеграмИсторияСообщений</InformationRegister>
<InformationRegister>ОтслеживаниеВерсийКонфигураций</InformationRegister> <InformationRegister>ОтслеживаниеВерсийКонфигураций</InformationRegister>
<InformationRegister>УведомленияОНовыхВерсиях</InformationRegister> <InformationRegister>УведомленияОНовыхВерсиях</InformationRegister>

View File

@@ -1,34 +0,0 @@
<?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">
<DataProcessor uuid="b86f0a31-b523-4c41-9927-4dde82319197">
<InternalInfo>
<xr:GeneratedType name="DataProcessorObject.Тест_Удалить" category="Object">
<xr:TypeId>8794d5d5-b819-491c-a031-56d53e7d8a5f</xr:TypeId>
<xr:ValueId>b128426e-d9e5-4b0e-a516-1d23bd5b8e81</xr:ValueId>
</xr:GeneratedType>
<xr:GeneratedType name="DataProcessorManager.Тест_Удалить" category="Manager">
<xr:TypeId>80877c77-fa14-4b57-a545-33245b3f7993</xr:TypeId>
<xr:ValueId>81d4dfa1-1e97-4cd1-a0e6-869af166b6d5</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>true</UseStandardCommands>
<DefaultForm>DataProcessor.Тест_Удалить.Form.Форма</DefaultForm>
<AuxiliaryForm/>
<IncludeHelpInContents>false</IncludeHelpInContents>
<ExtendedPresentation/>
<Explanation/>
</Properties>
<ChildObjects>
<Form>Форма</Form>
</ChildObjects>
</DataProcessor>
</MetaDataObject>

View File

@@ -1,22 +0,0 @@
<?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">
<Form uuid="7a864e05-0f9c-492b-9955-757ac1f96b5f">
<Properties>
<Name>Форма</Name>
<Synonym>
<v8:item>
<v8:lang>ru</v8:lang>
<v8:content>Форма</v8:content>
</v8:item>
</Synonym>
<Comment/>
<FormType>Managed</FormType>
<IncludeHelpInContents>false</IncludeHelpInContents>
<UsePurposes>
<v8:Value xsi:type="app:ApplicationUsePurpose">PlatformApplication</v8:Value>
<v8:Value xsi:type="app:ApplicationUsePurpose">MobilePlatformApplication</v8:Value>
</UsePurposes>
<ExtendedPresentation/>
</Properties>
</Form>
</MetaDataObject>

View File

@@ -1,24 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<Form xmlns="http://v8.1c.ru/8.3/xcf/logform" xmlns:app="http://v8.1c.ru/8.2/managed-application/core" xmlns:cfg="http://v8.1c.ru/8.1/data/enterprise/current-config" xmlns:dcscor="http://v8.1c.ru/8.1/data-composition-system/core" xmlns:dcssch="http://v8.1c.ru/8.1/data-composition-system/schema" xmlns:dcsset="http://v8.1c.ru/8.1/data-composition-system/settings" 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: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">
<AutoCommandBar name="ФормаКоманднаяПанель" id="-1"/>
<ChildItems>
<Button name="Команда1" id="1">
<Type>UsualButton</Type>
<CommandName>Form.Command.Команда1</CommandName>
<ExtendedTooltip name="Команда1РасширеннаяПодсказка" id="2"/>
</Button>
</ChildItems>
<Attributes>
<Attribute name="Объект" id="1">
<Type>
<v8:Type>cfg:DataProcessorObject.Тест_Удалить</v8:Type>
</Type>
<MainAttribute>true</MainAttribute>
</Attribute>
</Attributes>
<Commands>
<Command name="Команда1" id="1">
<Action>Команда1</Action>
</Command>
</Commands>
</Form>

View File

@@ -1,12 +0,0 @@
&НаКлиенте
Процедура Команда1(Команда)
Команда1НаСервере();
КонецПроцедуры
&НаСервере
Процедура Команда1НаСервере()
ОбновленияРегламент.ПроверкаНеактуальныхВерсийКонфигураций();
КонецПроцедуры

View File

@@ -7,28 +7,45 @@
Менеджер.Прочитать(); Менеджер.Прочитать();
Если Не Менеджер.Выбран() Тогда Если Не Менеджер.Выбран() Тогда
Возврат СообщениеНеудача(Периодичность); Возврат НеудачнаяСменеПериодичности(Периодичность);
КонецЕсли; КонецЕсли;
Если Менеджер.Периодичность = Периодичность Тогда Если Менеджер.Периодичность = Периодичность Тогда
Возврат СообщениеДублирование(Периодичность); Возврат ПовторнаяПопыткаУстановки(Периодичность);
КонецЕсли; КонецЕсли;
Менеджер.Периодичность = Периодичность; Менеджер.Периодичность = Периодичность;
Менеджер.Записать(); Менеджер.Записать();
Возврат СообщениеУспех(Периодичность); Возврат УспешнаяСменаПериодичности(Периодичность);
КонецФункции КонецФункции
Функция СообщениеНеудача(Периодичность) Процедура ОбновитьДатуОтправкиУведомления(ИдЧата) Экспорт
Менеджер = СоздатьМенеджерЗаписи();
Менеджер.ИдЧата = ИдЧата;
Менеджер.Прочитать();
Если Менеджер.Выбран() Тогда
Менеджер.ПоследняяОтправка = ТекущаяДатаСеанса();
Менеджер.Записать();
КонецЕсли;
КонецПроцедуры
#КонецОбласти
#Область СлужебныеПроцедурыИФункции
Функция НеудачнаяСменеПериодичности(Периодичность)
Возврат СтрШаблон("Не удалось %1 уведомления", Возврат СтрШаблон("Не удалось %1 уведомления",
?(Периодичность = Перечисления.ПериодичностьУведомлений.НеУведомлять, "выключить", "включить")); ?(Периодичность = Перечисления.ПериодичностьУведомлений.НеУведомлять, "выключить", "включить"));
КонецФункции КонецФункции
Функция СообщениеДублирование(Периодичность) Функция ПовторнаяПопыткаУстановки(Периодичность)
Если Периодичность = Перечисления.ПериодичностьУведомлений.НеУведомлять Тогда Если Периодичность = Перечисления.ПериодичностьУведомлений.НеУведомлять Тогда
Возврат "&#128263 Уведомления уже выключены"; Возврат "&#128263 Уведомления уже выключены";
@@ -39,7 +56,7 @@
КонецФункции КонецФункции
Функция СообщениеУспех(Периодичность) Функция УспешнаяСменаПериодичности(Периодичность)
Если Периодичность = Перечисления.ПериодичностьУведомлений.НеУведомлять Тогда Если Периодичность = Перечисления.ПериодичностьУведомлений.НеУведомлять Тогда
Возврат "&#128263 Уведомления выключены"; Возврат "&#128263 Уведомления выключены";

View File

@@ -25,7 +25,7 @@
<xr:Item xsi:type="xr:MDObjectRef">InformationRegister.УведомленияОНовыхВерсиях</xr:Item> <xr:Item xsi:type="xr:MDObjectRef">InformationRegister.УведомленияОНовыхВерсиях</xr:Item>
<xr:Item xsi:type="xr:MDObjectRef">CommonModule.РаботаСОбновлениямиВызовСервера</xr:Item> <xr:Item xsi:type="xr:MDObjectRef">CommonModule.РаботаСОбновлениямиВызовСервера</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">DataProcessor.Тест_Удалить</xr:Item> <xr:Item xsi:type="xr:MDObjectRef">b86f0a31-b523-4c41-9927-4dde82319197</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>46</VERSION> <VERSION>50</VERSION>