Добавил возможность сравнивания версий
- При уведомлении о неактуальных версиях производится сравнение версий - При получении статуса конфигурации производится сравнение версий - Вывод диагностики в случае когда текущая версия старше актуальной. Это считается ошибкой.
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);
|
ТелеграмМетодыВызовСервера.SendMessage(ИдЧата, ТекстОтвета, Перечисления.ТелеграмРежимРазметки.HTML);
|
||||||
Иначе
|
Иначе
|
||||||
@@ -220,8 +234,10 @@
|
|||||||
|
|
||||||
Процедура ОбработатьКомандуСтарт(ОбновлениеТелеграм)
|
Процедура ОбработатьКомандуСтарт(ОбновлениеТелеграм)
|
||||||
|
|
||||||
ТекстОтвета = "Привет! Я бот, который поможет тебе следить за обновлениями конфигураций 1С." + Символы.ПС
|
ТекстОтвета = "👋 Привет!"
|
||||||
+ Символы.ВК + Символы.ПС
|
+ Символы.ПС
|
||||||
|
+ "Я - бот, который поможет тебе следить за обновлениями конфигураций 1С."
|
||||||
|
+ Символы.ПС + Символы.ВК + Символы.ПС
|
||||||
+ "Что я умею:" + Символы.ПС
|
+ "Что я умею:" + Символы.ПС
|
||||||
+ "- Отслеживать новые релизы" + Символы.ПС
|
+ "- Отслеживать новые релизы" + Символы.ПС
|
||||||
+ "- Присылать уведомления о выходе обновлений" + Символы.ПС
|
+ "- Присылать уведомления о выходе обновлений" + Символы.ПС
|
||||||
|
|||||||
@@ -21,18 +21,40 @@
|
|||||||
|
|
||||||
ТекстСообщения = СтрШаблон("Следующие конфигурации имеют неактуальные версии:%1%2", Символы.ПС, Символы.ПС);
|
ТекстСообщения = СтрШаблон("Следующие конфигурации имеют неактуальные версии:%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)
|
Функция НовоеСоединениеХТТП(Таймаут = 0)
|
||||||
|
|
||||||
Возврат Новый HTTPСоединение("update-api.1c.ru", 443, , , , ?(Таймаут > 0, Таймаут, 15),
|
Возврат Новый HTTPСоединение("update-api.1c.ru", 443, , , , ?(Таймаут > 0, Таймаут, 15),
|
||||||
Новый ЗащищенноеСоединениеOpenSSL);
|
Новый ЗащищенноеСоединениеOpenSSL);
|
||||||
|
|
||||||
КонецФункции
|
КонецФункции
|
||||||
|
|
||||||
|
|||||||
@@ -1,2 +1,2 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8"?>
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
<VERSION>42</VERSION>
|
<VERSION>43</VERSION>
|
||||||
|
|||||||
Reference in New Issue
Block a user