diff --git a/src/cf/CommonModules/БотОбщегоНазначения/Ext/Module.bsl b/src/cf/CommonModules/БотОбщегоНазначения/Ext/Module.bsl
index 9932948..e8c070a 100644
--- a/src/cf/CommonModules/БотОбщегоНазначения/Ext/Module.bsl
+++ b/src/cf/CommonModules/БотОбщегоНазначения/Ext/Module.bsl
@@ -136,11 +136,25 @@
Возврат;
КонецЕсли;
- ТекстОтвета = СтрШаблон("ℹ %1%2 %3 ➡ %4",
+ РезультатСравненияВерсий = РаботаСОбновлениямиВызовСервера.СравнитьВерсииКонфигураций(
+ ДанныеКонфигурации.ТекущаяВерсия,
+ ДанныеКонфигурации.АктуальнаяВерсия);
+
+ Если РезультатСравненияВерсий < 0 Тогда
+ Диагностика = "Необходимо обновить текущую версию.";
+ ИначеЕсли РезультатСравненияВерсий > 0 Тогда
+ Диагностика = "Текущая версия не может быть старше актуальной!";
+ Иначе
+ Диагностика = "Обновление текущей версии не требуется.";
+ КонецЕсли;
+
+ ТекстОтвета = СтрШаблон("ℹ %1%2%3 → %4%5%6",
ДанныеКонфигурации.Наименование,
Символы.ПС,
ДанныеКонфигурации.ТекущаяВерсия,
- ДанныеКонфигурации.АктуальнаяВерсия);
+ ДанныеКонфигурации.АктуальнаяВерсия,
+ Символы.ПС,
+ Диагностика);
ТелеграмМетодыВызовСервера.SendMessage(ИдЧата, ТекстОтвета, Перечисления.ТелеграмРежимРазметки.HTML);
Иначе
@@ -220,8 +234,10 @@
Процедура ОбработатьКомандуСтарт(ОбновлениеТелеграм)
- ТекстОтвета = "Привет! Я бот, который поможет тебе следить за обновлениями конфигураций 1С." + Символы.ПС
- + Символы.ВК + Символы.ПС
+ ТекстОтвета = "👋 Привет!"
+ + Символы.ПС
+ + "Я - бот, который поможет тебе следить за обновлениями конфигураций 1С."
+ + Символы.ПС + Символы.ВК + Символы.ПС
+ "Что я умею:" + Символы.ПС
+ "- Отслеживать новые релизы" + Символы.ПС
+ "- Присылать уведомления о выходе обновлений" + Символы.ПС
diff --git a/src/cf/CommonModules/ОбновленияРегламент/Ext/Module.bsl b/src/cf/CommonModules/ОбновленияРегламент/Ext/Module.bsl
index c083278..f7ee816 100644
--- a/src/cf/CommonModules/ОбновленияРегламент/Ext/Module.bsl
+++ b/src/cf/CommonModules/ОбновленияРегламент/Ext/Module.bsl
@@ -21,18 +21,40 @@
ТекстСообщения = СтрШаблон("Следующие конфигурации имеют неактуальные версии:%1%2", Символы.ПС, Символы.ПС);
+ КонфигурацииСНекорректнымиВерсиями = Новый Массив;
+
Для каждого ДанныеКонфигурации Из КонфигурацииДляВывода Цикл
- ТекстСообщения = ТекстСообщения + СтрШаблон("🔥 %1%2 %3 ➡ %4%5%6",
- ДанныеКонфигурации.КонфигурацияПредставление,
- Символы.ПС,
- ДанныеКонфигурации.ТекущаяВерсия,
- ДанныеКонфигурации.АктуальнаяВерсия,
- Символы.ПС,
- Символы.ПС);
+ Если ДанныеКонфигурации.РезультатСравнения > 0 Тогда
+ КонфигурацииСНекорректнымиВерсиями.Добавить(ДанныеКонфигурации);
+ Продолжить;
+ КонецЕсли;
+
+ ТекстСообщения = ТекстСообщения + ФорматСтрокиСообщенияОНеактуальнойВерсии("🔥", ДанныеКонфигурации);
КонецЦикла;
+ Если КонфигурацииСНекорректнымиВерсиями.Количество() > 0 Тогда
+ ТекстСообщения = ТекстСообщения + СтрШаблон("Внимание! Текущая конфигурация старше актуальной:%1%2", Символы.ПС, Символы.ПС);
+
+ Для каждого ДанныеКонфигурации Из КонфигурацииСНекорректнымиВерсиями Цикл
+ ТекстСообщения = ТекстСообщения + ФорматСтрокиСообщенияОНеактуальнойВерсии("🚫", ДанныеКонфигурации);
+ КонецЦикла;
+ КонецЕсли;
+
Возврат ТекстСообщения;
+
+КонецФункции
+Функция ФорматСтрокиСообщенияОНеактуальнойВерсии(Эмодзи, ДанныеКонфигурации)
+
+ Возврат СтрШаблон("%1 %2%3 %4 → %5%6%7",
+ Эмодзи,
+ ДанныеКонфигурации.КонфигурацияПредставление,
+ Символы.ПС,
+ ДанныеКонфигурации.ТекущаяВерсия,
+ ДанныеКонфигурации.АктуальнаяВерсия,
+ Символы.ПС,
+ Символы.ПС);
+
КонецФункции
#КонецОбласти
\ No newline at end of file
diff --git a/src/cf/CommonModules/РаботаСОбновлениямиВызовСервера/Ext/Module.bsl b/src/cf/CommonModules/РаботаСОбновлениямиВызовСервера/Ext/Module.bsl
index 5ad8e9f..f6e82c9 100644
--- a/src/cf/CommonModules/РаботаСОбновлениямиВызовСервера/Ext/Module.bsl
+++ b/src/cf/CommonModules/РаботаСОбновлениямиВызовСервера/Ext/Module.bsl
@@ -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);
КонецФункции
diff --git a/src/cf/VERSION b/src/cf/VERSION
index 7e51577..bdd3681 100644
--- a/src/cf/VERSION
+++ b/src/cf/VERSION
@@ -1,2 +1,2 @@
-42
+43