diff --git a/src/cf/Catalogs/Конфигурации.xml b/src/cf/Catalogs/Конфигурации.xml
new file mode 100644
index 0000000..de41f55
--- /dev/null
+++ b/src/cf/Catalogs/Конфигурации.xml
@@ -0,0 +1,136 @@
+
+
+
+
+
+ 4bca873e-7270-448f-af9e-a835a7ea2544
+ 6334ba72-2517-4769-944b-e76ebb8b4136
+
+
+ 4e96a340-9a7a-4e22-ad39-95b094adf291
+ a5d50e22-a097-4acc-9e39-03f80d79850a
+
+
+ f73d46d4-9787-4bdf-ac3c-eda56b55b556
+ df445c5c-598b-41b7-a701-3b1e3c0eefa2
+
+
+ d40c5a12-c968-4a11-a5b2-85b4ae08ec0c
+ 6468db69-8a13-496c-a518-a61ea87fb001
+
+
+ b780d7b2-def9-43e5-8df8-3122de4a3142
+ 12d66b0c-3e47-4487-a073-74bc300c8945
+
+
+
+ Конфигурации
+
+
+ ru
+ Конфигурации
+
+
+
+ false
+ HierarchyFoldersAndItems
+ false
+ 2
+ true
+ true
+
+ ToItems
+ 9
+ 50
+ String
+ Variable
+ WholeCatalog
+ true
+ true
+ AsDescription
+
+ Auto
+ InDialog
+ false
+ BothWays
+
+ Catalog.Конфигурации.StandardAttribute.Description
+ Catalog.Конфигурации.StandardAttribute.Code
+
+ Begin
+ DontUse
+ Directly
+
+
+
+
+
+
+
+
+
+
+ false
+
+
+ Managed
+ Use
+
+
+
+
+
+ Use
+ Auto
+ DontUse
+ false
+ false
+
+
+
+
+ Имя
+
+
+ ru
+ Имя
+
+
+
+
+ xs:string
+
+ 100
+ Variable
+
+
+ false
+
+
+
+ false
+
+ false
+ false
+
+
+ false
+
+ DontCheck
+ Items
+
+
+ Auto
+ Auto
+
+
+ Auto
+
+ DontIndex
+ Use
+ Use
+
+
+
+
+
\ No newline at end of file
diff --git a/src/cf/CommonModules/РаботаСОбновлениямиВызовСервера.xml b/src/cf/CommonModules/РаботаСОбновлениямиВызовСервера.xml
new file mode 100644
index 0000000..59f0905
--- /dev/null
+++ b/src/cf/CommonModules/РаботаСОбновлениямиВызовСервера.xml
@@ -0,0 +1,23 @@
+
+
+
+
+ РаботаСОбновлениямиВызовСервера
+
+
+ ru
+ Работа с обновлениями вызов сервера
+
+
+
+ false
+ false
+ true
+ true
+ false
+ true
+ false
+ DontUse
+
+
+
\ No newline at end of file
diff --git a/src/cf/CommonModules/РаботаСОбновлениямиВызовСервера/Ext/Module.bsl b/src/cf/CommonModules/РаботаСОбновлениямиВызовСервера/Ext/Module.bsl
new file mode 100644
index 0000000..0f6da70
--- /dev/null
+++ b/src/cf/CommonModules/РаботаСОбновлениямиВызовСервера/Ext/Module.bsl
@@ -0,0 +1,151 @@
+#Область ПрограммныйИнтерфейс
+
+Функция АктуальнаяВерсияКонфигурации(Конфигурация, ВерсияКонфигурации, ВерсияПлатформы = Неопределено) Экспорт
+
+ АдресРесурса = АдресРесурсаПоИмениМетода("info");
+ ТелоЗапроса = Новый Структура("programName", Конфигурация.Имя);
+ ТелоЗапроса.Вставить("versionNumber", ВерсияКонфигурации);
+ ТелоЗапроса.Вставить("updateType", "NewConfigurationAndOrPlatform");
+
+ Если ВерсияПлатформы <> Неопределено Тогда
+ ТелоЗапроса.Вставить("platformVersion", ВерсияПлатформы);
+ Иначе
+ ТелоЗапроса.Вставить("platformVersion", "1.1.1.1");
+ КонецЕсли;
+
+ Соединение = Новый HTTPСоединение("update-api.1c.ru",443,,,,, Новый ЗащищенноеСоединениеOpenSSL);
+
+ Возврат HttpОбщегоНазначения.ВыполнитьPostЗапрос(Соединение, АдресРесурса, , ТелоЗапроса);
+
+КонецФункции
+
+Функция КонфигурацииИзПодписки(ИдЧата) Экспорт
+
+ Запрос = Новый Запрос;
+ Запрос.Текст =
+ "ВЫБРАТЬ
+ | ОтслеживаниеВерсийКонфигураций.Конфигурация.Наименование КАК КонфигурацияНаименование,
+ | ОтслеживаниеВерсийКонфигураций.Конфигурация.Имя КАК КонфигурацияИмя,
+ | ОтслеживаниеВерсийКонфигураций.ТекущаяВерсия КАК ТекущаяВерсия,
+ | ОтслеживаниеВерсийКонфигураций.АктуальнаяВерсия КАК АктуальнаяВерсия
+ |ИЗ
+ | РегистрСведений.ОтслеживаниеВерсийКонфигураций КАК ОтслеживаниеВерсийКонфигураций
+ |ГДЕ
+ | ОтслеживаниеВерсийКонфигураций.ИдЧата = &ИдЧата";
+
+ Запрос.УстановитьПараметр("ИдЧата", ИдЧата);
+
+ РезультатЗапроса = Запрос.Выполнить();
+
+ ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать();
+
+ МассивКонфигураций = Новый Массив;
+
+ Пока ВыборкаДетальныеЗаписи.Следующий() Цикл
+ Конфигурация = Новый Структура("Наименование, Имя, ТекущаяВерсия, АктуальнаяВерсия",
+ ВыборкаДетальныеЗаписи.КонфигурацияНаименование,ВыборкаДетальныеЗаписи.КонфигурацияИмя,
+ ВыборкаДетальныеЗаписи.ТекущаяВерсия, ВыборкаДетальныеЗаписи.АктуальнаяВерсия);
+ МассивКонфигураций.Добавить(Конфигурация);
+ КонецЦикла;
+
+ Возврат МассивКонфигураций;
+
+КонецФункции
+
+
+Функция АктуализироватьВерсииКонфигураций()Экспорт
+
+ Запрос = Новый Запрос;
+ Запрос.Текст =
+ "ВЫБРАТЬ
+ | ОтслеживаниеВерсийКонфигураций.Конфигурация КАК Конфигурация,
+ | ОтслеживаниеВерсийКонфигураций.ИдЧата КАК ИдЧата,
+ | ОтслеживаниеВерсийКонфигураций.ТекущаяВерсия КАК ТекущаяВерсия,
+ | ОтслеживаниеВерсийКонфигураций.АктуальнаяВерсия КАК АктуальнаяВерсия
+ |ИЗ
+ | РегистрСведений.ОтслеживаниеВерсийКонфигураций КАК ОтслеживаниеВерсийКонфигураций";
+
+ РезультатЗапроса = Запрос.Выполнить();
+
+ ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать();
+
+ КэшАктуальныхВерсий = РезультатЗапроса.Выгрузить().СкопироватьКолонки();
+ КэшАктуальныхВерсий.Колонки.Удалить("ИдЧата");
+ ОбработаноЗаписей = 0;
+ Пока ВыборкаДетальныеЗаписи.Следующий() Цикл
+ Конфигурация = ВыборкаДетальныеЗаписи.Конфигурация;
+ ТекущаяВерсия = ВыборкаДетальныеЗаписи.ТекущаяВерсия;
+ ИдЧата = ВыборкаДетальныеЗаписи.ИдЧата;
+
+ АктуальнаяВерсия = ПолучитьИзКэшаАктуальнуюВерсию(КэшАктуальныхВерсий, Конфигурация, ТекущаяВерсия);
+
+ Если АктуальнаяВерсия = Неопределено Тогда
+ Продолжить;
+ КонецЕсли;
+
+ Если АктуальнаяВерсия = ВыборкаДетальныеЗаписи.АктуальнаяВерсия Тогда
+ Продолжить;
+ КонецЕсли;
+
+ МенеджерЗаписи = РегистрыСведений.ОтслеживаниеВерсийКонфигураций.СоздатьМенеджерЗаписи();
+ МенеджерЗаписи.Конфигурация = Конфигурация;
+ МенеджерЗаписи.ИдЧата = ИдЧата;
+ МенеджерЗаписи.ТекущаяВерсия = ТекущаяВерсия;
+ МенеджерЗаписи.АктуальнаяВерсия = АктуальнаяВерсия;
+
+ МенеджерЗаписи.Записать();
+ ОбработаноЗаписей = ОбработаноЗаписей + 1;
+ КонецЦикла;
+
+ Возврат ОбработаноЗаписей;
+
+КонецФункции
+
+#КонецОбласти
+
+#Область СлужебныеПроцедурыИФункции
+
+Функция БазовыйАдрес()
+
+ Возврат "update-platform/programs/update";
+
+КонецФункции
+
+Функция АдресРесурсаПоИмениМетода(ИмяМетода)
+
+ Возврат СтрШаблон("%1/%2", БазовыйАдрес(), ИмяМетода);
+
+КонецФункции
+
+Функция ПолучитьИзКэшаАктуальнуюВерсию(Кэш, Конфигурация, ТекущаяВерсия)
+
+ СтруктураОтбора = Новый Структура("Конфигурация, ТекущаяВерсия", Конфигурация, ТекущаяВерсия);
+ МассивСтрок = Кэш.НайтиСтроки(СтруктураОтбора);
+ Если МассивСтрок.Количество() <> 0 Тогда
+ Возврат МассивСтрок[0].АктуальнаяВерсия;
+ КонецЕсли;
+
+ Ответ = АктуальнаяВерсияКонфигурации(Конфигурация, ТекущаяВерсия);
+
+ Если Ответ.Успех Тогда
+ АктуальнаяВерсияССервера = Ответ["Тело"]["configurationUpdateResponse"]["configurationVersion"];
+ Если АктуальнаяВерсияССервера = Неопределено Тогда
+ //Если запрос выполнен без ошибок и в запросе была передана актуальная версия - с сервера обновлений приходит null.
+ // Дополнительно проверим версию платформы, если что-то пришло, значит текущая версия существует
+ // и её назначаем актуальной. Таким образом отличаем некорректную версию текущей конфигурации от совпадения текущей и актуальной.
+ АктуальнаяВерсияПлатформы = Ответ["Тело"]["platformUpdateResponse"]["platformVersion"];
+ Если АктуальнаяВерсияПлатформы <> Неопределено Тогда
+ АктуальнаяВерсияССервера = ТекущаяВерсия;
+ КонецЕсли;
+ КонецЕсли;
+ НоваяСтрока = Кэш.Добавить();
+ ЗаполнитьЗначенияСвойств(НоваяСтрока, СтруктураОтбора);
+ НоваяСтрока.АктуальнаяВерсия = АктуальнаяВерсияССервера;
+ Возврат АктуальнаяВерсияССервера;
+ КонецЕсли;
+
+ Возврат Неопределено;
+
+КонецФункции
+
+#КонецОбласти
\ No newline at end of file
diff --git a/src/cf/Configuration.xml b/src/cf/Configuration.xml
index 4f2a242..91122ba 100644
--- a/src/cf/Configuration.xml
+++ b/src/cf/Configuration.xml
@@ -246,6 +246,7 @@
Русский
ТелеграмБот
+ Обновления
КартинкаБот
HttpОбщегоНазначения
ТелеграмМетодыВызовСервера
@@ -254,6 +255,7 @@
ТелеграмРегламент
РаботаСФайламиКлиентСервер
ТелеграмРаботаСКлавиатурой
+ РаботаСОбновлениямиВызовСервера
HTTPСервис_Telegram
ПроверкаОбновленийТелеграм
ТелеграмТокен
@@ -263,10 +265,14 @@
ТелеграмПользователь
ТелеграмСообщение
ТелеграмДокумент
+ Конфигурации
ЛогHttpЗапроса
МетодHTTPЗапроса
+ ТелеграмРежимРазметки
РаботаССообщениями
+ РаботаСОбновлениями
ТелеграмСообщения
+ ОтслеживаниеВерсийКонфигураций
\ No newline at end of file
diff --git a/src/cf/DataProcessors/РаботаСОбновлениями.xml b/src/cf/DataProcessors/РаботаСОбновлениями.xml
new file mode 100644
index 0000000..86600f8
--- /dev/null
+++ b/src/cf/DataProcessors/РаботаСОбновлениями.xml
@@ -0,0 +1,34 @@
+
+
+
+
+
+ d03df4e7-3d99-41bc-80a9-2aa356d9f81e
+ 888ddf20-8cde-4fa1-9984-ba1c5680b5ff
+
+
+ f0d25f79-1825-46a9-ae42-59c02e02df69
+ f9356985-f1dc-4bdc-a11c-d30b4656a52b
+
+
+
+ РаботаСОбновлениями
+
+
+ ru
+ Работа с обновлениями
+
+
+
+ true
+ DataProcessor.РаботаСОбновлениями.Form.Форма
+
+ false
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/cf/DataProcessors/РаботаСОбновлениями/Forms/Форма.xml b/src/cf/DataProcessors/РаботаСОбновлениями/Forms/Форма.xml
new file mode 100644
index 0000000..4c6d817
--- /dev/null
+++ b/src/cf/DataProcessors/РаботаСОбновлениями/Forms/Форма.xml
@@ -0,0 +1,22 @@
+
+
+
+
\ No newline at end of file
diff --git a/src/cf/DataProcessors/РаботаСОбновлениями/Forms/Форма/Ext/Form.xml b/src/cf/DataProcessors/РаботаСОбновлениями/Forms/Форма/Ext/Form.xml
new file mode 100644
index 0000000..2eee973
--- /dev/null
+++ b/src/cf/DataProcessors/РаботаСОбновлениями/Forms/Форма/Ext/Form.xml
@@ -0,0 +1,83 @@
+
+
\ No newline at end of file
diff --git a/src/cf/DataProcessors/РаботаСОбновлениями/Forms/Форма/Ext/Form/Module.bsl b/src/cf/DataProcessors/РаботаСОбновлениями/Forms/Форма/Ext/Form/Module.bsl
new file mode 100644
index 0000000..ae3ec99
--- /dev/null
+++ b/src/cf/DataProcessors/РаботаСОбновлениями/Forms/Форма/Ext/Form/Module.bsl
@@ -0,0 +1,45 @@
+
+&НаКлиенте
+Процедура АктуальнаяВерсияКонфигурации()
+
+ Конфигурация = КонфигурацияДляТеста();
+
+ ОтветАктуальнаяВерсияКонфигурации = РаботаСОбновлениямиВызовСервера.АктуальнаяВерсияКонфигурации(Конфигурация,"2.4.13.275");
+
+ ТекстСообщения = "Не удалось получить информацию по обновлению";
+ Если ОтветАктуальнаяВерсияКонфигурации.Успех Тогда
+ АктуальнаяВерсияКонфигурации = ОтветАктуальнаяВерсияКонфигурации["Тело"]["configurationUpdateResponse"]["configurationVersion"];
+ АктуальнаяВерсияПлатформы = ОтветАктуальнаяВерсияКонфигурации["Тело"]["configurationUpdateResponse"]["platformVersion"];
+ СсылкаНаРелиз = ОтветАктуальнаяВерсияКонфигурации["Тело"]["configurationUpdateResponse"]["updateInfoUrl"];
+ ТекстСообщения = СтрШаблон("Актуальная конфигурация: [%1](%2)%3Платформа: %4", АктуальнаяВерсияКонфигурации, СсылкаНаРелиз, Символы.ПС, АктуальнаяВерсияПлатформы);
+ КонецЕсли;
+
+ ОтветТелеграм = ТелеграмМетодыВызовСервера.SendMessage(ИдЧата, ТекстСообщения,
+ ПредопределенноеЗначение("Перечисление.ТелеграмРежимРазметки.Markdown"));
+
+КонецПроцедуры
+
+&НаСервереБезКонтекста
+Функция КонфигурацияДляТеста()
+
+ Возврат Справочники.Конфигурации.НайтиПоРеквизиту("Имя", "ARAutomation");
+
+КонецФункции
+
+&НаКлиенте
+Процедура АктуализироватьВерсии(Команда)
+
+ ОбработаноЗаписей = АктуализироватьВерсииНаСервере(ИдЧата);
+
+ Сообщение = Новый СообщениеПользователю;
+ Сообщение.Текст = СтрШаблон("Актуализация версий выполнена. Обновлено %1 записей", ОбработаноЗаписей);
+ Сообщение.Сообщить();
+
+КонецПроцедуры
+
+&НаСервереБезКонтекста
+Функция АктуализироватьВерсииНаСервере(ИдЧата)
+
+ Возврат РаботаСОбновлениямиВызовСервера.АктуализироватьВерсииКонфигураций();
+
+КонецФункции
diff --git a/src/cf/Enums/ТелеграмРежимРазметки.xml b/src/cf/Enums/ТелеграмРежимРазметки.xml
new file mode 100644
index 0000000..d6b4c8a
--- /dev/null
+++ b/src/cf/Enums/ТелеграмРежимРазметки.xml
@@ -0,0 +1,123 @@
+
+
+
+
+
+ 716b6266-61c5-4405-8959-1a9400cb9cfb
+ 762a0f01-d68f-4726-81f0-bdbc0d268266
+
+
+ 1b7f3102-8448-4afd-a1f2-2d524015a6fb
+ 6089b7ea-1ceb-4f1a-9e85-1f3c4bf28807
+
+
+ 4fad24bb-d880-4658-9c42-b6d68a050841
+ f597578f-6b7e-4d5e-9f34-dd82648cab4d
+
+
+
+ ТелеграмРежимРазметки
+
+
+ ru
+ Телеграм режим разметки
+
+
+
+ false
+
+
+
+ DontCheck
+ false
+ false
+ Auto
+ TransformValues
+
+
+ false
+
+
+ Auto
+ Auto
+
+ false
+ Use
+ false
+
+
+
+ Use
+
+
+
+
+
+
+
+ DontCheck
+ false
+ false
+ Auto
+ TransformValues
+
+
+ false
+
+
+ Auto
+ Auto
+
+ false
+ Use
+ false
+
+
+
+ Use
+
+
+
+
+
+
+
+ true
+ BothWays
+
+
+
+
+
+
+
+ Auto
+
+
+
+
+ HTML
+
+
+ ru
+ HTML
+
+
+
+
+
+
+
+ Markdown
+
+
+ ru
+ Markdown
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/cf/InformationRegisters/ОтслеживаниеВерсийКонфигураций.xml b/src/cf/InformationRegisters/ОтслеживаниеВерсийКонфигураций.xml
new file mode 100644
index 0000000..cc12944
--- /dev/null
+++ b/src/cf/InformationRegisters/ОтслеживаниеВерсийКонфигураций.xml
@@ -0,0 +1,246 @@
+
+
+
+
+
+ 6b4afa0e-51db-4766-9e39-0fb3ab26a53c
+ 9efb9f2a-77e7-4631-bf3f-e060f405f169
+
+
+ b8ce5fa4-67dd-4e84-a671-828606d960e6
+ 4c16d293-f895-4741-bfdc-e09deae19e4e
+
+
+ 98f953e9-3e02-471d-9946-671bad14b485
+ 14d52aff-7f68-4dea-a5a3-46e38a5fe272
+
+
+ 18ccae67-0396-4ad1-901f-0d0da9829a12
+ 4906b450-f288-4376-a567-6eef43baa603
+
+
+ 5b2cd7a8-1324-42bd-92d8-7cf6e517a9b9
+ 649e7195-d7bf-43f1-8984-68603b04b4fa
+
+
+ 743b6752-39c5-45cd-98ad-048994a2fdbb
+ e9002f98-f09c-425f-8817-96cc3ed43fb2
+
+
+ 364295b2-9d7a-400e-99c5-e50e9aa72dcf
+ ffcd9928-2b3e-4334-99c1-28d3f5c47705
+
+
+
+ ОтслеживаниеВерсийКонфигураций
+
+
+ ru
+ Отслеживание версий конфигураций
+
+
+
+ true
+ InDialog
+
+
+
+
+ Nonperiodical
+ Independent
+ false
+ false
+ Managed
+ DontUse
+ false
+ false
+
+
+
+
+
+ DontUse
+ false
+ false
+
+
+
+
+ ТекущаяВерсия
+
+
+ ru
+ Текущая версия
+
+
+
+
+ xs:string
+
+ 20
+ Variable
+
+
+ false
+
+
+
+ false
+
+ false
+ false
+
+
+ false
+
+ DontCheck
+ Items
+
+
+ Auto
+ Auto
+
+
+ Auto
+ DontIndex
+ Use
+ Use
+
+
+
+
+ АктуальнаяВерсия
+
+
+ ru
+ Актуальная версия
+
+
+
+
+ xs:string
+
+ 20
+ Variable
+
+
+ false
+
+
+
+ false
+
+ false
+ false
+
+
+ false
+
+ DontCheck
+ Items
+
+
+ Auto
+ Auto
+
+
+ Auto
+ DontIndex
+ Use
+ Use
+
+
+
+
+ Конфигурация
+
+
+ ru
+ Конфигурация
+
+
+
+
+ cfg:CatalogRef.Конфигурации
+
+ false
+
+
+
+ false
+
+ false
+ false
+
+
+ false
+
+ DontCheck
+ Items
+
+
+ Auto
+ Auto
+
+
+ Auto
+ false
+ true
+ false
+ DontIndex
+ Use
+ Use
+ TransformValues
+
+
+
+
+ ИдЧата
+
+
+ ru
+ Ид чата
+
+
+
+
+ xs:decimal
+
+ 15
+ 0
+ Any
+
+
+ false
+
+
+
+ false
+
+ false
+ false
+
+
+ false
+
+ DontCheck
+ Items
+
+
+ Auto
+ Auto
+
+
+ Auto
+ false
+ true
+ false
+ DontIndex
+ Use
+ Use
+ TransformValues
+
+
+
+
+
\ No newline at end of file
diff --git a/src/cf/Subsystems/Обновления.xml b/src/cf/Subsystems/Обновления.xml
new file mode 100644
index 0000000..a9b82c1
--- /dev/null
+++ b/src/cf/Subsystems/Обновления.xml
@@ -0,0 +1,26 @@
+
+
+
+
+ Обновления
+
+
+ ru
+ Обновления
+
+
+
+ true
+ true
+ false
+
+
+
+ DataProcessor.РаботаСОбновлениями
+ InformationRegister.ОтслеживаниеВерсийКонфигураций
+ Catalog.Конфигурации
+
+
+
+
+
\ No newline at end of file
diff --git a/src/cf/VERSION b/src/cf/VERSION
index 5cbcaf5..0b77ea9 100644
--- a/src/cf/VERSION
+++ b/src/cf/VERSION
@@ -1,2 +1,2 @@
-4
+5