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 + ForItem + 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 @@ + + +
+ + Форма + + + ru + Форма + + + + Managed + false + + PlatformApplication + MobilePlatformApplication + + + +
+
\ 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 @@ + +
+ Use + UseList + + + + ИдЧата + true + + + + + + + + + + cfg:DataProcessorObject.РаботаСОбновлениями + + true + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Ид чата</v8:content> + </v8:item> + + + xs:decimal + + 15 + 0 + Any + + + + ИдЧата + + + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Актуальная версия конфигурации</v8:content> + </v8:item> + + + + ru + Актуальная версия конфигурации + + + АктуальнаяВерсияКонфигурации + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Актуализировать версии</v8:content> + </v8:item> + + + + ru + Актуализировать версии + + + АктуализироватьВерсии + + + \ 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