Добавил возможность сравнивания версий
- При уведомлении о неактуальных версиях производится сравнение версий - При получении статуса конфигурации производится сравнение версий - Вывод диагностики в случае когда текущая версия старше актуальной. Это считается ошибкой.
This commit is contained in:
@@ -136,11 +136,25 @@
|
||||
Возврат;
|
||||
КонецЕсли;
|
||||
|
||||
ТекстОтвета = СтрШаблон("ℹ %1%2 %3 ➡ %4",
|
||||
РезультатСравненияВерсий = РаботаСОбновлениямиВызовСервера.СравнитьВерсииКонфигураций(
|
||||
ДанныеКонфигурации.ТекущаяВерсия,
|
||||
ДанныеКонфигурации.АктуальнаяВерсия);
|
||||
|
||||
Если РезультатСравненияВерсий < 0 Тогда
|
||||
Диагностика = "Необходимо обновить текущую версию.";
|
||||
ИначеЕсли РезультатСравненияВерсий > 0 Тогда
|
||||
Диагностика = "Текущая версия не может быть старше актуальной!";
|
||||
Иначе
|
||||
Диагностика = "Обновление текущей версии не требуется.";
|
||||
КонецЕсли;
|
||||
|
||||
ТекстОтвета = СтрШаблон("ℹ %1%2<code>%3</code> → <code>%4</code>%5%6",
|
||||
ДанныеКонфигурации.Наименование,
|
||||
Символы.ПС,
|
||||
ДанныеКонфигурации.ТекущаяВерсия,
|
||||
ДанныеКонфигурации.АктуальнаяВерсия);
|
||||
ДанныеКонфигурации.АктуальнаяВерсия,
|
||||
Символы.ПС,
|
||||
Диагностика);
|
||||
|
||||
ТелеграмМетодыВызовСервера.SendMessage(ИдЧата, ТекстОтвета, Перечисления.ТелеграмРежимРазметки.HTML);
|
||||
Иначе
|
||||
@@ -220,8 +234,10 @@
|
||||
|
||||
Процедура ОбработатьКомандуСтарт(ОбновлениеТелеграм)
|
||||
|
||||
ТекстОтвета = "Привет! Я бот, который поможет тебе следить за обновлениями конфигураций 1С." + Символы.ПС
|
||||
+ Символы.ВК + Символы.ПС
|
||||
ТекстОтвета = "👋 Привет!"
|
||||
+ Символы.ПС
|
||||
+ "Я - бот, который поможет тебе следить за обновлениями конфигураций 1С."
|
||||
+ Символы.ПС + Символы.ВК + Символы.ПС
|
||||
+ "Что я умею:" + Символы.ПС
|
||||
+ "- Отслеживать новые релизы" + Символы.ПС
|
||||
+ "- Присылать уведомления о выходе обновлений" + Символы.ПС
|
||||
|
||||
@@ -21,18 +21,40 @@
|
||||
|
||||
ТекстСообщения = СтрШаблон("Следующие конфигурации имеют неактуальные версии:%1%2", Символы.ПС, Символы.ПС);
|
||||
|
||||
КонфигурацииСНекорректнымиВерсиями = Новый Массив;
|
||||
|
||||
Для каждого ДанныеКонфигурации Из КонфигурацииДляВывода Цикл
|
||||
ТекстСообщения = ТекстСообщения + СтрШаблон("🔥 %1%2 %3 ➡ %4%5%6",
|
||||
ДанныеКонфигурации.КонфигурацияПредставление,
|
||||
Символы.ПС,
|
||||
ДанныеКонфигурации.ТекущаяВерсия,
|
||||
ДанныеКонфигурации.АктуальнаяВерсия,
|
||||
Символы.ПС,
|
||||
Символы.ПС);
|
||||
Если ДанныеКонфигурации.РезультатСравнения > 0 Тогда
|
||||
КонфигурацииСНекорректнымиВерсиями.Добавить(ДанныеКонфигурации);
|
||||
Продолжить;
|
||||
КонецЕсли;
|
||||
|
||||
ТекстСообщения = ТекстСообщения + ФорматСтрокиСообщенияОНеактуальнойВерсии("🔥", ДанныеКонфигурации);
|
||||
КонецЦикла;
|
||||
|
||||
Если КонфигурацииСНекорректнымиВерсиями.Количество() > 0 Тогда
|
||||
ТекстСообщения = ТекстСообщения + СтрШаблон("Внимание! Текущая конфигурация старше актуальной:%1%2", Символы.ПС, Символы.ПС);
|
||||
|
||||
Для каждого ДанныеКонфигурации Из КонфигурацииСНекорректнымиВерсиями Цикл
|
||||
ТекстСообщения = ТекстСообщения + ФорматСтрокиСообщенияОНеактуальнойВерсии("🚫", ДанныеКонфигурации);
|
||||
КонецЦикла;
|
||||
КонецЕсли;
|
||||
|
||||
Возврат ТекстСообщения;
|
||||
|
||||
КонецФункции
|
||||
|
||||
Функция ФорматСтрокиСообщенияОНеактуальнойВерсии(Эмодзи, ДанныеКонфигурации)
|
||||
|
||||
Возврат СтрШаблон("%1 %2%3 <code>%4</code> → <code>%5</code>%6%7",
|
||||
Эмодзи,
|
||||
ДанныеКонфигурации.КонфигурацияПредставление,
|
||||
Символы.ПС,
|
||||
ДанныеКонфигурации.ТекущаяВерсия,
|
||||
ДанныеКонфигурации.АктуальнаяВерсия,
|
||||
Символы.ПС,
|
||||
Символы.ПС);
|
||||
|
||||
КонецФункции
|
||||
|
||||
#КонецОбласти
|
||||
@@ -255,10 +255,12 @@
|
||||
ДанныеВерсийКонфигураций = Новый Массив;
|
||||
|
||||
Пока ВыборкаДетальныеЗаписи.Следующий() Цикл
|
||||
ВерсииКонфигурации = Новый Структура("КонфигурацияПредставление, ТекущаяВерсия, АктуальнаяВерсия",
|
||||
ВыборкаДетальныеЗаписи.КонфигурацияПредставление,
|
||||
ВыборкаДетальныеЗаписи.ТекущаяВерсия,
|
||||
ВыборкаДетальныеЗаписи.АктуальнаяВерсия);
|
||||
ВерсииКонфигурации = Новый Структура;
|
||||
ВерсииКонфигурации.Вставить("КонфигурацияПредставление", ВыборкаДетальныеЗаписи.КонфигурацияПредставление);
|
||||
ВерсииКонфигурации.Вставить("ТекущаяВерсия", ВыборкаДетальныеЗаписи.ТекущаяВерсия);
|
||||
ВерсииКонфигурации.Вставить("АктуальнаяВерсия", ВыборкаДетальныеЗаписи.АктуальнаяВерсия);
|
||||
ВерсииКонфигурации.Вставить("РезультатСравнения", СравнитьВерсииКонфигураций(ВыборкаДетальныеЗаписи.ТекущаяВерсия,
|
||||
ВыборкаДетальныеЗаписи.АктуальнаяВерсия));
|
||||
ДанныеВерсийКонфигураций.Добавить(ВерсииКонфигурации);
|
||||
КонецЦикла;
|
||||
|
||||
@@ -270,6 +272,40 @@
|
||||
|
||||
КонецФункции
|
||||
|
||||
|
||||
// Возвращает результат сравнения двух версий конфигураций: текущей и актуальной.
|
||||
//
|
||||
// Возвращаемое значение:
|
||||
// Отрицательное число - текущая версия меньше актуальной
|
||||
// Положительное число - актуальная версия меньше текущей
|
||||
// Ноль - номера версий одинаковые
|
||||
//
|
||||
Функция СравнитьВерсииКонфигураций(ТекущаяВерсия, АктуальнаяВерсия) Экспорт
|
||||
|
||||
НаборГруппТекущаяВерсия = СтрРазделить(ТекущаяВерсия,".");
|
||||
НаборГруппАктуальнаяВерсия = СтрРазделить(АктуальнаяВерсия,".");
|
||||
|
||||
Если НаборГруппТекущаяВерсия.Количество() = 0 ИЛИ НаборГруппАктуальнаяВерсия.Количество() = 0 Тогда
|
||||
Возврат Неопределено;
|
||||
КонецЕсли;
|
||||
|
||||
МаксИндексТекущаяВерсия = НаборГруппТекущаяВерсия.ВГраница();
|
||||
МаксИндексАктуальнаяВерсия = НаборГруппАктуальнаяВерсия.ВГраница();
|
||||
|
||||
Для Индекс = 0 По Макс(МаксИндексТекущаяВерсия, МаксИндексАктуальнаяВерсия) Цикл
|
||||
ГруппаТекущаяВерсия = ?(Индекс <= МаксИндексТекущаяВерсия, Число(НаборГруппТекущаяВерсия[Индекс]), 0);
|
||||
ГруппаАктуальнаяВерсия = ?(Индекс <= МаксИндексАктуальнаяВерсия, Число(НаборГруппАктуальнаяВерсия[Индекс]), 0);
|
||||
|
||||
Компаратор = ГруппаТекущаяВерсия - ГруппаАктуальнаяВерсия;
|
||||
Если Компаратор <> 0 Тогда
|
||||
Возврат Компаратор;
|
||||
КонецЕсли;
|
||||
КонецЦикла;
|
||||
|
||||
Возврат 0;
|
||||
|
||||
КонецФункции
|
||||
|
||||
#КонецОбласти
|
||||
|
||||
#Область СлужебныеПроцедурыИФункции
|
||||
@@ -289,7 +325,7 @@
|
||||
Функция НовоеСоединениеХТТП(Таймаут = 0)
|
||||
|
||||
Возврат Новый HTTPСоединение("update-api.1c.ru", 443, , , , ?(Таймаут > 0, Таймаут, 15),
|
||||
Новый ЗащищенноеСоединениеOpenSSL);
|
||||
Новый ЗащищенноеСоединениеOpenSSL);
|
||||
|
||||
КонецФункции
|
||||
|
||||
|
||||
@@ -1,2 +1,2 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<VERSION>42</VERSION>
|
||||
<VERSION>43</VERSION>
|
||||
|
||||
Reference in New Issue
Block a user