Compare commits
13 Commits
36cea3f0b0
...
scheduled_
| Author | SHA1 | Date | |
|---|---|---|---|
| 01db185d34 | |||
| 85c6219a8d | |||
| 219fe05b43 | |||
| 1f35a110e1 | |||
| 2c8c581088 | |||
| 5bf73184d2 | |||
| 8a88dea2b9 | |||
| 78b1198f7a | |||
| 97427fb844 | |||
| 63ad60bdf8 | |||
| 869bd182cb | |||
| ae3fe05e5d | |||
| d904c25ce6 |
19
README.md
19
README.md
@@ -36,12 +36,13 @@
|
||||
|
||||
## Поддерживаемые команды
|
||||
|
||||
Команда Описание
|
||||
|
||||
/start Приветствие и справка
|
||||
/subscribe Список конфигураций для отслеживания
|
||||
/add Добавить конфигурацию в список отслеживания
|
||||
/delete Удалить конфигурацию из списка отслеживания
|
||||
/notify_on Включить уведомления о новых версиях
|
||||
/notify_off Выключить уведомления о новых версиях
|
||||
/help Вывести список поддерживаемых команд
|
||||
| **Команда** | **Описание** |
|
||||
|:----------------- |:------------------------------------------- |
|
||||
| **/start** | Приветствие и справка |
|
||||
| **/subscribe** | Список конфигураций для отслеживания |
|
||||
| **/add** | Добавить конфигурацию в список отслеживания |
|
||||
| **/delete** | Удалить конфигурацию из списка отслеживания |
|
||||
| **/notify_on** | Включить уведомления о новых версиях |
|
||||
| **/notify_off** | Выключить уведомления о новых версиях |
|
||||
| **/status** | Вывести информацию о статусе конфигурации |
|
||||
| **/help** | Вывести список поддерживаемых команд |
|
||||
|
||||
@@ -36,9 +36,9 @@
|
||||
ИначеЕсли КомандаДляОбработки = "/delete" Тогда
|
||||
ОбработатьКомандуУдалитьКонфигурацию(ОбновлениеТелеграм);
|
||||
ИначеЕсли КомандаДляОбработки = "/notify_on" Тогда
|
||||
ОбработатьКомандуВключитьОповещения(ОбновлениеТелеграм);
|
||||
ОбработатьКомандуВключитьУведомления(ОбновлениеТелеграм);
|
||||
ИначеЕсли КомандаДляОбработки = "/notify_off" Тогда
|
||||
ОбработатьКомандуВыключитьОповещения(ОбновлениеТелеграм);
|
||||
ОбработатьКомандуВыключитьУведомления(ОбновлениеТелеграм);
|
||||
ИначеЕсли КомандаДляОбработки = "/status" Тогда
|
||||
ОбработатьКомандуСтатусКонфигурации(ОбновлениеТелеграм);
|
||||
ИначеЕсли КомандаДляОбработки = "/help" Тогда
|
||||
@@ -61,6 +61,8 @@
|
||||
УдалитьКонфигурациюИзСпискаОтслеживания(Данные, ОбновлениеТелеграм.ИдЧата);
|
||||
ИначеЕсли СтрНачинаетсяС(Данные, XMLСтрока(Перечисления.ВидыДанныхОбратныхВызовов.GetStatus)) Тогда
|
||||
ПолучитьДанныеСтатусаКонфигурации(Данные, ОбновлениеТелеграм.ИдЧата);
|
||||
ИначеЕсли СтрНачинаетсяС(Данные, XMLСтрока(Перечисления.ВидыДанныхОбратныхВызовов.NotifyOn)) Тогда
|
||||
УстановитьПериодУведомления(Данные, ОбновлениеТелеграм.ИдЧата);
|
||||
Иначе
|
||||
ОбработатьНеизвестнуюКоманду(ОбновлениеТелеграм);
|
||||
КонецЕсли;
|
||||
@@ -136,11 +138,29 @@
|
||||
Возврат;
|
||||
КонецЕсли;
|
||||
|
||||
ТекстОтвета = СтрШаблон("ℹ %1%2 %3 ➡ %4",
|
||||
РезультатСравненияВерсий = РаботаСОбновлениямиВызовСервера.СравнитьВерсииКонфигураций(
|
||||
ДанныеКонфигурации.ТекущаяВерсия,
|
||||
ДанныеКонфигурации.АктуальнаяВерсия);
|
||||
|
||||
Если РезультатСравненияВерсий <> Неопределено Тогда
|
||||
Если РезультатСравненияВерсий < 0 Тогда
|
||||
Диагностика = "Необходимо обновить текущую версию.";
|
||||
ИначеЕсли РезультатСравненияВерсий > 0 Тогда
|
||||
Диагностика = "Текущая версия не может быть старше актуальной!";
|
||||
Иначе
|
||||
Диагностика = "Обновление текущей версии не требуется.";
|
||||
КонецЕсли;
|
||||
Иначе
|
||||
Диагностика = "";
|
||||
КонецЕсли;
|
||||
|
||||
ТекстОтвета = СтрШаблон("ℹ %1%2<code>%3</code> → <code>%4</code>%5%6",
|
||||
ДанныеКонфигурации.Наименование,
|
||||
Символы.ПС,
|
||||
ДанныеКонфигурации.ТекущаяВерсия,
|
||||
ДанныеКонфигурации.АктуальнаяВерсия);
|
||||
ДанныеКонфигурации.АктуальнаяВерсия,
|
||||
Символы.ПС,
|
||||
Диагностика);
|
||||
|
||||
ТелеграмМетодыВызовСервера.SendMessage(ИдЧата, ТекстОтвета, Перечисления.ТелеграмРежимРазметки.HTML);
|
||||
Иначе
|
||||
@@ -150,6 +170,20 @@
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
Процедура УстановитьПериодУведомления(ТекстСообщения, ИдЧата)
|
||||
|
||||
Команда = XMLСтрока(Перечисления.ВидыДанныхОбратныхВызовов.NotifyOn);
|
||||
|
||||
Если НЕ СтрНачинаетсяС(ТекстСообщения, Команда) Тогда
|
||||
Возврат;
|
||||
КонецЕсли;
|
||||
|
||||
ПериодичностьИмя = СокрЛП(Сред(ТекстСообщения, СтрДлина(Команда) + 1));
|
||||
Периодичность = Перечисления.ПериодичностьУведомлений[ПериодичностьИмя];
|
||||
УправлениеОповещениями(ИдЧата, Периодичность);
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
Процедура ОбработатьВводВерсииКонфигурации(ОбновлениеТелеграм, ДанныеПользователя)
|
||||
|
||||
ИдЧата = ОбновлениеТелеграм.ИдЧата;
|
||||
@@ -220,8 +254,10 @@
|
||||
|
||||
Процедура ОбработатьКомандуСтарт(ОбновлениеТелеграм)
|
||||
|
||||
ТекстОтвета = "Привет! Я бот, который поможет тебе следить за обновлениями конфигураций 1С." + Символы.ПС
|
||||
+ Символы.ВК + Символы.ПС
|
||||
ТекстОтвета = "👋 Привет!"
|
||||
+ Символы.ПС
|
||||
+ "Я - бот, который поможет тебе следить за обновлениями конфигураций 1С."
|
||||
+ Символы.ПС + Символы.ВК + Символы.ПС
|
||||
+ "Что я умею:" + Символы.ПС
|
||||
+ "- Отслеживать новые релизы" + Символы.ПС
|
||||
+ "- Присылать уведомления о выходе обновлений" + Символы.ПС
|
||||
@@ -288,15 +324,34 @@
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
Процедура ОбработатьКомандуВключитьОповещения(ОбновлениеТелеграм)
|
||||
Процедура ОбработатьКомандуВключитьУведомления(ОбновлениеТелеграм)
|
||||
|
||||
УправлениеОповещениями(ОбновлениеТелеграм.ИдЧата, Истина);
|
||||
ИдЧата = ОбновлениеТелеграм.ИдЧата;
|
||||
Команда = XMLСтрока(Перечисления.ВидыДанныхОбратныхВызовов.NotifyOn);
|
||||
|
||||
МассивКнопок = ТелеграмРаботаСКлавиатурой.МассивРядовСПериодамиОповещения(ИдЧата, Команда);
|
||||
Если МассивКнопок.Количество() = 0 Тогда
|
||||
ТекстОтвета = "Не удалось получить список периодов оповещения";
|
||||
ТелеграмМетодыВызовСервера.SendMessage(ИдЧата, ТекстОтвета);
|
||||
Возврат;
|
||||
КонецЕсли;
|
||||
|
||||
Клавиатура = ТелеграмРаботаСКлавиатурой.КлавиатураВстроенная(МассивКнопок);
|
||||
ТекстОтвета = "Выберите нужную периодичность оповещения";
|
||||
ТелеграмМетодыВызовСервера.SendMessage(ИдЧата, ТекстОтвета, , Клавиатура);
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
Процедура ОбработатьКомандуВыключитьОповещения(ОбновлениеТелеграм)
|
||||
Процедура ОбработатьКомандуВыключитьУведомления(ОбновлениеТелеграм)
|
||||
|
||||
УправлениеОповещениями(ОбновлениеТелеграм.ИдЧата, Ложь);
|
||||
УправлениеОповещениями(ОбновлениеТелеграм.ИдЧата, Перечисления.ПериодичностьУведомлений.НеУведомлять);
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
Процедура УправлениеОповещениями(ИдЧата, ПериодичностьУведомлений)
|
||||
|
||||
ТекстОтвета = РегистрыСведений.УведомленияОНовыхВерсиях.УправлениеУведомлениями(ИдЧата, ПериодичностьУведомлений);
|
||||
ТелеграмМетодыВызовСервера.SendMessage(ИдЧата, ТекстОтвета, Перечисления.ТелеграмРежимРазметки.HTML);
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
@@ -318,13 +373,6 @@
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
Процедура УправлениеОповещениями(ИдЧата, Включить)
|
||||
|
||||
ТекстОтвета = РегистрыСведений.УведомленияОНовыхВерсиях.УправлениеОповещениями(ИдЧата, Включить);
|
||||
ТелеграмМетодыВызовСервера.SendMessage(ИдЧата, ТекстОтвета, Перечисления.ТелеграмРежимРазметки.HTML);
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
Процедура ОбработатьНеизвестнуюКоманду(ОбновлениеТелеграм)
|
||||
|
||||
ТекстОтвета = "Данная команда не поддерживается.";
|
||||
|
||||
@@ -9,6 +9,7 @@
|
||||
ТекстСообщения = ТекстСообщенияОНеактуальнойВерсии(ПолучательУведомления.Конфигурации);
|
||||
ТелеграмМетодыВызовСервера.SendMessage(ПолучательУведомления.ИдЧата, ТекстСообщения,
|
||||
Перечисления.ТелеграмРежимРазметки.HTML);
|
||||
РегистрыСведений.УведомленияОНовыхВерсиях.ОбновитьДатуОтправкиУведомления(ПолучательУведомления.ИдЧата);
|
||||
КонецЦикла;
|
||||
|
||||
КонецПроцедуры
|
||||
@@ -21,18 +22,43 @@
|
||||
|
||||
ТекстСообщения = СтрШаблон("Следующие конфигурации имеют неактуальные версии:%1%2", Символы.ПС, Символы.ПС);
|
||||
|
||||
КонфигурацииСНекорректнымиВерсиями = Новый Массив;
|
||||
|
||||
Для каждого ДанныеКонфигурации Из КонфигурацииДляВывода Цикл
|
||||
ТекстСообщения = ТекстСообщения + СтрШаблон("🔥 %1%2 %3 ➡ %4%5%6",
|
||||
ДанныеКонфигурации.КонфигурацияПредставление,
|
||||
Символы.ПС,
|
||||
ДанныеКонфигурации.ТекущаяВерсия,
|
||||
ДанныеКонфигурации.АктуальнаяВерсия,
|
||||
Символы.ПС,
|
||||
Символы.ПС);
|
||||
Если ДанныеКонфигурации.РезультатСравнения = Неопределено Тогда
|
||||
Продолжить;
|
||||
ИначеЕсли ДанныеКонфигурации.РезультатСравнения > 0 Тогда
|
||||
КонфигурацииСНекорректнымиВерсиями.Добавить(ДанныеКонфигурации);
|
||||
Продолжить;
|
||||
Иначе
|
||||
ТекстСообщения = ТекстСообщения + ФорматСтрокиСообщенияОНеактуальнойВерсии("🔥", ДанныеКонфигурации);
|
||||
КонецЕсли;
|
||||
КонецЦикла;
|
||||
|
||||
Если КонфигурацииСНекорректнымиВерсиями.Количество() > 0 Тогда
|
||||
ТекстСообщения = ТекстСообщения + СтрШаблон("Внимание! Текущая конфигурация старше актуальной:%1%2",
|
||||
Символы.ПС, Символы.ПС);
|
||||
|
||||
Для каждого ДанныеКонфигурации Из КонфигурацииСНекорректнымиВерсиями Цикл
|
||||
ТекстСообщения = ТекстСообщения + ФорматСтрокиСообщенияОНеактуальнойВерсии("🚫", ДанныеКонфигурации);
|
||||
КонецЦикла;
|
||||
КонецЕсли;
|
||||
|
||||
Возврат ТекстСообщения;
|
||||
|
||||
КонецФункции
|
||||
|
||||
Функция ФорматСтрокиСообщенияОНеактуальнойВерсии(Эмодзи, ДанныеКонфигурации)
|
||||
|
||||
Возврат СтрШаблон("%1 %2%3 <code>%4</code> → <code>%5</code>%6%7",
|
||||
Эмодзи,
|
||||
ДанныеКонфигурации.КонфигурацияПредставление,
|
||||
Символы.ПС,
|
||||
ДанныеКонфигурации.ТекущаяВерсия,
|
||||
ДанныеКонфигурации.АктуальнаяВерсия,
|
||||
Символы.ПС,
|
||||
Символы.ПС);
|
||||
|
||||
КонецФункции
|
||||
|
||||
#КонецОбласти
|
||||
@@ -223,7 +223,19 @@
|
||||
|ИЗ
|
||||
| РегистрСведений.УведомленияОНовыхВерсиях КАК УведомленияОНовыхВерсиях
|
||||
|ГДЕ
|
||||
| УведомленияОНовыхВерсиях.ОтправлятьУведомления
|
||||
| УведомленияОНовыхВерсиях.Периодичность <> ЗНАЧЕНИЕ(Перечисление.ПериодичностьУведомлений.НеУведомлять)
|
||||
| И ВЫБОР
|
||||
| КОГДА УведомленияОНовыхВерсиях.Периодичность = ЗНАЧЕНИЕ(Перечисление.ПериодичностьУведомлений.КаждыйЧас)
|
||||
| И УведомленияОНовыхВерсиях.ПоследняяОтправка <= ДОБАВИТЬКДАТЕ(&ТекущаяДата, ЧАС, -1)
|
||||
| ТОГДА ИСТИНА
|
||||
| КОГДА УведомленияОНовыхВерсиях.Периодичность = ЗНАЧЕНИЕ(Перечисление.ПериодичностьУведомлений.КаждыйДень)
|
||||
| И УведомленияОНовыхВерсиях.ПоследняяОтправка <= ДОБАВИТЬКДАТЕ(&ТекущаяДата, ДЕНЬ, -1)
|
||||
| ТОГДА ИСТИНА
|
||||
| КОГДА УведомленияОНовыхВерсиях.Периодичность = ЗНАЧЕНИЕ(Перечисление.ПериодичностьУведомлений.КаждуюНеделю)
|
||||
| И УведомленияОНовыхВерсиях.ПоследняяОтправка <= ДОБАВИТЬКДАТЕ(&ТекущаяДата, НЕДЕЛЯ, -1)
|
||||
| ТОГДА ИСТИНА
|
||||
| ИНАЧЕ ЛОЖЬ
|
||||
| КОНЕЦ
|
||||
|;
|
||||
|
|
||||
|////////////////////////////////////////////////////////////////////////////////
|
||||
@@ -244,6 +256,8 @@
|
||||
|ИТОГИ ПО
|
||||
| ИдЧата";
|
||||
|
||||
Запрос.УстановитьПараметр("ТекущаяДата", ТекущаяДатаСеанса());
|
||||
|
||||
РезультатЗапроса = Запрос.Выполнить();
|
||||
|
||||
ВыборкаИдЧата = РезультатЗапроса.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам);
|
||||
@@ -255,10 +269,14 @@
|
||||
ДанныеВерсийКонфигураций = Новый Массив;
|
||||
|
||||
Пока ВыборкаДетальныеЗаписи.Следующий() Цикл
|
||||
ВерсииКонфигурации = Новый Структура("КонфигурацияПредставление, ТекущаяВерсия, АктуальнаяВерсия",
|
||||
ВыборкаДетальныеЗаписи.КонфигурацияПредставление,
|
||||
ВыборкаДетальныеЗаписи.ТекущаяВерсия,
|
||||
ВыборкаДетальныеЗаписи.АктуальнаяВерсия);
|
||||
ВерсииКонфигурации = Новый Структура;
|
||||
ВерсииКонфигурации.Вставить("КонфигурацияПредставление", ВыборкаДетальныеЗаписи.КонфигурацияПредставление);
|
||||
ВерсииКонфигурации.Вставить("ТекущаяВерсия", ВыборкаДетальныеЗаписи.ТекущаяВерсия);
|
||||
ВерсииКонфигурации.Вставить("АктуальнаяВерсия", ВыборкаДетальныеЗаписи.АктуальнаяВерсия);
|
||||
|
||||
РезультатСравнения = СравнитьВерсииКонфигураций(ВыборкаДетальныеЗаписи.ТекущаяВерсия,
|
||||
ВыборкаДетальныеЗаписи.АктуальнаяВерсия);
|
||||
ВерсииКонфигурации.Вставить("РезультатСравнения", РезультатСравнения);
|
||||
ДанныеВерсийКонфигураций.Добавить(ВерсииКонфигурации);
|
||||
КонецЦикла;
|
||||
|
||||
@@ -270,6 +288,43 @@
|
||||
|
||||
КонецФункции
|
||||
|
||||
// Возвращает результат сравнения двух версий конфигураций: текущей и актуальной.
|
||||
//
|
||||
// Параметры:
|
||||
// ТекущаяВерсия - Строка - версия, установленная у пользователя
|
||||
// АктуальнаяВерсия - Строка - версия, полученная с сайта вендора
|
||||
//
|
||||
// Возвращаемое значение:
|
||||
// Отрицательное число - текущая версия меньше актуальной
|
||||
// Положительное число - актуальная версия меньше текущей
|
||||
// Ноль - номера версий одинаковые
|
||||
//
|
||||
Функция СравнитьВерсииКонфигураций(ТекущаяВерсия, АктуальнаяВерсия) Экспорт
|
||||
|
||||
НаборГруппТекущаяВерсия = СтрРазделить(ТекущаяВерсия, ".");
|
||||
НаборГруппАктуальнаяВерсия = СтрРазделить(АктуальнаяВерсия, ".");
|
||||
|
||||
Если НаборГруппТекущаяВерсия.Количество() = 0 ИЛИ НаборГруппАктуальнаяВерсия.Количество() = 0 Тогда
|
||||
Возврат Неопределено;
|
||||
КонецЕсли;
|
||||
|
||||
МаксИндексТекущаяВерсия = НаборГруппТекущаяВерсия.ВГраница();
|
||||
МаксИндексАктуальнаяВерсия = НаборГруппАктуальнаяВерсия.ВГраница();
|
||||
|
||||
Для Индекс = 0 По Макс(МаксИндексТекущаяВерсия, МаксИндексАктуальнаяВерсия) Цикл
|
||||
ГруппаТекущаяВерсия = ?(Индекс <= МаксИндексТекущаяВерсия, Число(НаборГруппТекущаяВерсия[Индекс]), 0);
|
||||
ГруппаАктуальнаяВерсия = ?(Индекс <= МаксИндексАктуальнаяВерсия, Число(НаборГруппАктуальнаяВерсия[Индекс]), 0);
|
||||
|
||||
Компаратор = ГруппаТекущаяВерсия - ГруппаАктуальнаяВерсия;
|
||||
Если Компаратор <> 0 Тогда
|
||||
Возврат Компаратор;
|
||||
КонецЕсли;
|
||||
КонецЦикла;
|
||||
|
||||
Возврат 0;
|
||||
|
||||
КонецФункции
|
||||
|
||||
#КонецОбласти
|
||||
|
||||
#Область СлужебныеПроцедурыИФункции
|
||||
@@ -289,7 +344,7 @@
|
||||
Функция НовоеСоединениеХТТП(Таймаут = 0)
|
||||
|
||||
Возврат Новый HTTPСоединение("update-api.1c.ru", 443, , , , ?(Таймаут > 0, Таймаут, 15),
|
||||
Новый ЗащищенноеСоединениеOpenSSL);
|
||||
Новый ЗащищенноеСоединениеOpenSSL);
|
||||
|
||||
КонецФункции
|
||||
|
||||
|
||||
@@ -12,4 +12,12 @@
|
||||
|
||||
КонецФункции
|
||||
|
||||
Функция СинонимПеречисления(ЗначениеПеречисления) Экспорт
|
||||
|
||||
ИмяПеречисления = ЗначениеПеречисления.Метаданные().Имя;
|
||||
ИндексЗначенияПеречисления = Перечисления[ИмяПеречисления].Индекс(ЗначениеПеречисления);
|
||||
Возврат Метаданные.Перечисления[ИмяПеречисления].ЗначенияПеречисления[ИндексЗначенияПеречисления].Синоним;
|
||||
|
||||
КонецФункции
|
||||
|
||||
#КонецОбласти
|
||||
|
||||
@@ -93,6 +93,24 @@
|
||||
|
||||
КонецФункции
|
||||
|
||||
Функция МассивРядовСПериодамиОповещения(ИдЧата, Команда) Экспорт
|
||||
|
||||
МассивРядов = Новый Массив;
|
||||
|
||||
Для каждого ЗначениеПериода Из Метаданные.Перечисления.ПериодичностьУведомлений.ЗначенияПеречисления Цикл
|
||||
КнопкаКлавиатурыВстроенной = ТелеграмРаботаСКлавиатурой.КнопкаКлавиатурыВстроенной(ЗначениеПериода.Синоним, ,
|
||||
СтрШаблон("%1 %2", Команда, ЗначениеПериода.Имя));
|
||||
Если ЗначениеПериода.Имя <> "НеУведомлять" Тогда
|
||||
МассивКнопок = Новый Массив;
|
||||
МассивКнопок.Добавить(КнопкаКлавиатурыВстроенной);
|
||||
МассивРядов.Добавить(МассивКнопок);
|
||||
КонецЕсли;
|
||||
КонецЦикла;
|
||||
|
||||
Возврат МассивРядов;
|
||||
|
||||
КонецФункции
|
||||
|
||||
#КонецОбласти
|
||||
|
||||
#Область СлужебныеПроцедурыИФункции
|
||||
|
||||
@@ -282,6 +282,7 @@
|
||||
<Enum>ТелеграмРежимРазметки</Enum>
|
||||
<Enum>ТелеграмСтатусДиалога</Enum>
|
||||
<Enum>ВидыДанныхОбратныхВызовов</Enum>
|
||||
<Enum>ПериодичностьУведомлений</Enum>
|
||||
<DataProcessor>НачальноеЗаполнениеДанных</DataProcessor>
|
||||
<InformationRegister>ТелеграмИсторияСообщений</InformationRegister>
|
||||
<InformationRegister>ОтслеживаниеВерсийКонфигураций</InformationRegister>
|
||||
|
||||
@@ -74,6 +74,18 @@
|
||||
<Comment/>
|
||||
</Properties>
|
||||
</EnumValue>
|
||||
<EnumValue uuid="883f782c-4484-4726-bd3c-4418f8547791">
|
||||
<Properties>
|
||||
<Name>NotifyOn</Name>
|
||||
<Synonym>
|
||||
<v8:item>
|
||||
<v8:lang>ru</v8:lang>
|
||||
<v8:content>Notify on</v8:content>
|
||||
</v8:item>
|
||||
</Synonym>
|
||||
<Comment/>
|
||||
</Properties>
|
||||
</EnumValue>
|
||||
</ChildObjects>
|
||||
</Enum>
|
||||
</MetaDataObject>
|
||||
91
src/cf/Enums/ПериодичностьУведомлений.xml
Normal file
91
src/cf/Enums/ПериодичностьУведомлений.xml
Normal file
@@ -0,0 +1,91 @@
|
||||
<?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="bcf975e5-286f-4ac9-916e-52d407fcf18e">
|
||||
<InternalInfo>
|
||||
<xr:GeneratedType name="EnumRef.ПериодичностьУведомлений" category="Ref">
|
||||
<xr:TypeId>3e7044ed-0e3a-4541-8a9e-ab9fe7208033</xr:TypeId>
|
||||
<xr:ValueId>f43d2234-6787-4a01-a802-fcd547f85afa</xr:ValueId>
|
||||
</xr:GeneratedType>
|
||||
<xr:GeneratedType name="EnumManager.ПериодичностьУведомлений" category="Manager">
|
||||
<xr:TypeId>a7526e24-f52f-432e-bf90-905ec2225597</xr:TypeId>
|
||||
<xr:ValueId>56b27172-4b82-4b46-a2a5-bf87b0ece644</xr:ValueId>
|
||||
</xr:GeneratedType>
|
||||
<xr:GeneratedType name="EnumList.ПериодичностьУведомлений" category="List">
|
||||
<xr:TypeId>ce3b1cff-eb12-401e-b368-b061a2a83848</xr:TypeId>
|
||||
<xr:ValueId>94ee4e38-9b48-46e5-8a02-5c76d151b47e</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="d4414838-b4a0-4852-93a4-6fdd71b7b16b">
|
||||
<Properties>
|
||||
<Name>КаждыйЧас</Name>
|
||||
<Synonym>
|
||||
<v8:item>
|
||||
<v8:lang>ru</v8:lang>
|
||||
<v8:content>Каждый час</v8:content>
|
||||
</v8:item>
|
||||
</Synonym>
|
||||
<Comment/>
|
||||
</Properties>
|
||||
</EnumValue>
|
||||
<EnumValue uuid="0dcec1a9-d267-43f4-ba1f-ed1c5ade39d7">
|
||||
<Properties>
|
||||
<Name>КаждыйДень</Name>
|
||||
<Synonym>
|
||||
<v8:item>
|
||||
<v8:lang>ru</v8:lang>
|
||||
<v8:content>Каждый день</v8:content>
|
||||
</v8:item>
|
||||
</Synonym>
|
||||
<Comment/>
|
||||
</Properties>
|
||||
</EnumValue>
|
||||
<EnumValue uuid="b9c44b33-0379-4f76-9ca4-6af791787242">
|
||||
<Properties>
|
||||
<Name>КаждуюНеделю</Name>
|
||||
<Synonym>
|
||||
<v8:item>
|
||||
<v8:lang>ru</v8:lang>
|
||||
<v8:content>Каждую неделю</v8:content>
|
||||
</v8:item>
|
||||
</Synonym>
|
||||
<Comment/>
|
||||
</Properties>
|
||||
</EnumValue>
|
||||
<EnumValue uuid="57436476-e3bb-4fc8-bcf2-eca06f286cfe">
|
||||
<Properties>
|
||||
<Name>НеУведомлять</Name>
|
||||
<Synonym>
|
||||
<v8:item>
|
||||
<v8:lang>ru</v8:lang>
|
||||
<v8:content>Не уведомлять</v8:content>
|
||||
</v8:item>
|
||||
</Synonym>
|
||||
<Comment/>
|
||||
</Properties>
|
||||
</EnumValue>
|
||||
</ChildObjects>
|
||||
</Enum>
|
||||
</MetaDataObject>
|
||||
@@ -64,18 +64,18 @@
|
||||
<ExecuteAfterWriteDataHistoryVersionProcessing>false</ExecuteAfterWriteDataHistoryVersionProcessing>
|
||||
</Properties>
|
||||
<ChildObjects>
|
||||
<Resource uuid="cdc02f8b-b82c-48d9-b936-bb2515c15258">
|
||||
<Resource uuid="14a9eafe-73cb-4605-b70e-2a6aae888c2c">
|
||||
<Properties>
|
||||
<Name>ОтправлятьУведомления</Name>
|
||||
<Name>Периодичность</Name>
|
||||
<Synonym>
|
||||
<v8:item>
|
||||
<v8:lang>ru</v8:lang>
|
||||
<v8:content>Отправлять уведомления</v8:content>
|
||||
<v8:content>Периодичность</v8:content>
|
||||
</v8:item>
|
||||
</Synonym>
|
||||
<Comment/>
|
||||
<Type>
|
||||
<v8:Type>xs:boolean</v8:Type>
|
||||
<v8:Type>cfg:EnumRef.ПериодичностьУведомлений</v8:Type>
|
||||
</Type>
|
||||
<PasswordMode>false</PasswordMode>
|
||||
<Format/>
|
||||
@@ -103,6 +103,48 @@
|
||||
<DataHistory>Use</DataHistory>
|
||||
</Properties>
|
||||
</Resource>
|
||||
<Attribute uuid="5294ea35-db35-4f2d-9764-31972faa1063">
|
||||
<Properties>
|
||||
<Name>ПоследняяОтправка</Name>
|
||||
<Synonym>
|
||||
<v8:item>
|
||||
<v8:lang>ru</v8:lang>
|
||||
<v8:content>Последняя отправка</v8:content>
|
||||
</v8:item>
|
||||
</Synonym>
|
||||
<Comment/>
|
||||
<Type>
|
||||
<v8:Type>xs:dateTime</v8:Type>
|
||||
<v8:DateQualifiers>
|
||||
<v8:DateFractions>DateTime</v8:DateFractions>
|
||||
</v8:DateQualifiers>
|
||||
</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>
|
||||
<Indexing>DontIndex</Indexing>
|
||||
<FullTextSearch>Use</FullTextSearch>
|
||||
<DataHistory>Use</DataHistory>
|
||||
</Properties>
|
||||
</Attribute>
|
||||
<Dimension uuid="3d0a0b1e-a7f9-4b8d-b95c-6e23973e0896">
|
||||
<Properties>
|
||||
<Name>ИдЧата</Name>
|
||||
|
||||
@@ -1,21 +1,69 @@
|
||||
#Область ПрограммныйИнтерфейс
|
||||
|
||||
Функция УправлениеОповещениями(ИдЧата, Включить) Экспорт
|
||||
Функция УправлениеУведомлениями(ИдЧата, Периодичность) Экспорт
|
||||
|
||||
МенеджерЗаписи = СоздатьМенеджерЗаписи();
|
||||
МенеджерЗаписи.ИдЧата = ИдЧата;
|
||||
МенеджерЗаписи.Прочитать();
|
||||
Если МенеджерЗаписи.Выбран() Тогда
|
||||
Если МенеджерЗаписи.ОтправлятьУведомления = Включить Тогда
|
||||
Возврат СтрШаблон("Оповещения уже %1", ?(Включить, "включены", "выключены"));
|
||||
Иначе
|
||||
МенеджерЗаписи.ОтправлятьУведомления = Включить;
|
||||
МенеджерЗаписи.Записать();
|
||||
Возврат СтрШаблон("Оповещения %1", ?(Включить, "включены 🔉", "выключены 🔇"));
|
||||
КонецЕсли;
|
||||
Менеджер = СоздатьМенеджерЗаписи();
|
||||
Менеджер.ИдЧата = ИдЧата;
|
||||
Менеджер.Прочитать();
|
||||
|
||||
Если Не Менеджер.Выбран() Тогда
|
||||
Возврат НеудачнаяСменеПериодичности(Периодичность);
|
||||
КонецЕсли;
|
||||
|
||||
Возврат СтрШаблон("Не удалось %1 оповещения", ?(Включить, "включить", "выключить"));
|
||||
Если Менеджер.Периодичность = Периодичность Тогда
|
||||
Возврат ПовторнаяПопыткаУстановки(Периодичность);
|
||||
КонецЕсли;
|
||||
|
||||
Менеджер.Периодичность = Периодичность;
|
||||
Менеджер.Записать();
|
||||
|
||||
Возврат УспешнаяСменаПериодичности(Периодичность);
|
||||
|
||||
КонецФункции
|
||||
|
||||
Процедура ОбновитьДатуОтправкиУведомления(ИдЧата) Экспорт
|
||||
|
||||
Менеджер = СоздатьМенеджерЗаписи();
|
||||
Менеджер.ИдЧата = ИдЧата;
|
||||
Менеджер.Прочитать();
|
||||
|
||||
Если Менеджер.Выбран() Тогда
|
||||
Менеджер.ПоследняяОтправка = ТекущаяДатаСеанса();
|
||||
Менеджер.Записать();
|
||||
КонецЕсли;
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
#КонецОбласти
|
||||
|
||||
#Область СлужебныеПроцедурыИФункции
|
||||
|
||||
Функция НеудачнаяСменеПериодичности(Периодичность)
|
||||
|
||||
Возврат СтрШаблон("Не удалось %1 уведомления",
|
||||
?(Периодичность = Перечисления.ПериодичностьУведомлений.НеУведомлять, "выключить", "включить"));
|
||||
|
||||
КонецФункции
|
||||
|
||||
Функция ПовторнаяПопыткаУстановки(Периодичность)
|
||||
|
||||
Если Периодичность = Перечисления.ПериодичностьУведомлений.НеУведомлять Тогда
|
||||
Возврат "🔇 Уведомления уже выключены";
|
||||
Иначе
|
||||
Возврат СтрШаблон("🔉 Уведомления уже включены (%1)",
|
||||
НРег(ТелеграмПовторноеИспользование.СинонимПеречисления(Периодичность)));
|
||||
КонецЕсли;
|
||||
|
||||
КонецФункции
|
||||
|
||||
Функция УспешнаяСменаПериодичности(Периодичность)
|
||||
|
||||
Если Периодичность = Перечисления.ПериодичностьУведомлений.НеУведомлять Тогда
|
||||
Возврат "🔇 Уведомления выключены";
|
||||
Иначе
|
||||
Возврат СтрШаблон("🔉 Уведомления включены (%1)",
|
||||
НРег(ТелеграмПовторноеИспользование.СинонимПеречисления(Периодичность)));
|
||||
КонецЕсли;
|
||||
|
||||
КонецФункции
|
||||
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -1,9 +1,9 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<JobSchedule xmlns="http://v8.1c.ru/8.3/xcf/extrnprops" xmlns:ent="http://v8.1c.ru/8.1/data/enterprise" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="2.19">
|
||||
<Schedule BeginDate="0001-01-01" EndDate="0001-01-01" BeginTime="09:00:00" EndTime="18:00:00" CompletionTime="00:00:00" CompletionInterval="0" RepeatPeriodInDay="14400" RepeatPause="0" WeekDayInMonth="0" DayInMonth="0" WeeksPeriod="1" DaysRepeatPeriod="1">
|
||||
<ent:WeekDays>1 2 3 4 5</ent:WeekDays>
|
||||
<Schedule BeginDate="0001-01-01" EndDate="0001-01-01" BeginTime="00:00:00" EndTime="00:00:00" CompletionTime="00:00:00" CompletionInterval="0" RepeatPeriodInDay="3600" RepeatPause="0" WeekDayInMonth="0" DayInMonth="0" WeeksPeriod="1" DaysRepeatPeriod="1">
|
||||
<ent:WeekDays>1 2 3 4 5 6 7</ent:WeekDays>
|
||||
<ent:Months>1 2 3 4 5 6 7 8 9 10 11 12</ent:Months>
|
||||
<ent:DetailedDailySchedules BeginDate="0001-01-01" EndDate="0001-01-01" BeginTime="09:00:00" EndTime="18:00:00" CompletionTime="00:00:00" CompletionInterval="0" RepeatPeriodInDay="14400" RepeatPause="0" WeekDayInMonth="0" DayInMonth="0" WeeksPeriod="1" DaysRepeatPeriod="0">
|
||||
<ent:DetailedDailySchedules BeginDate="0001-01-01" EndDate="0001-01-01" BeginTime="00:00:00" EndTime="00:00:00" CompletionTime="00:00:00" CompletionInterval="0" RepeatPeriodInDay="3600" RepeatPause="0" WeekDayInMonth="0" DayInMonth="0" WeeksPeriod="1" DaysRepeatPeriod="0">
|
||||
<ent:WeekDays/>
|
||||
<ent:Months/>
|
||||
</ent:DetailedDailySchedules>
|
||||
|
||||
@@ -16,7 +16,6 @@
|
||||
<Explanation/>
|
||||
<Picture/>
|
||||
<Content>
|
||||
<xr:Item xsi:type="xr:MDObjectRef">6a6de453-1c7e-4af2-9ed7-b9b7e86af49a</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>
|
||||
@@ -25,6 +24,8 @@
|
||||
<xr:Item xsi:type="xr:MDObjectRef">CommonModule.ОбновленияРегламент</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">Enum.ПериодичностьУведомлений</xr:Item>
|
||||
<xr:Item xsi:type="xr:MDObjectRef">b86f0a31-b523-4c41-9927-4dde82319197</xr:Item>
|
||||
</Content>
|
||||
</Properties>
|
||||
<ChildObjects/>
|
||||
|
||||
@@ -1,2 +1,2 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<VERSION>42</VERSION>
|
||||
<VERSION>50</VERSION>
|
||||
|
||||
Reference in New Issue
Block a user