#Область ПрограммныйИнтерфейс Функция АктуальнаяВерсияКонфигурации(Конфигурация, ВерсияКонфигурации, ВерсияПлатформы = Неопределено) Экспорт АдресРесурса = АдресРесурсаПоИмениМетода("info"); ТелоЗапроса = Новый Структура("programName", Конфигурация.Имя); ТелоЗапроса.Вставить("versionNumber", ВерсияКонфигурации); ТелоЗапроса.Вставить("updateType", "NewConfigurationAndOrPlatform"); Если ВерсияПлатформы <> Неопределено Тогда ТелоЗапроса.Вставить("platformVersion", ВерсияПлатформы); Иначе ТелоЗапроса.Вставить("platformVersion", "1.1.1.1"); КонецЕсли; Соединение = Новый HTTPСоединение("update-api.1c.ru",443,,,, 15, Новый ЗащищенноеСоединениеOpenSSL); Возврат HttpОбщегоНазначенияВызовСервера.ВыполнитьPostЗапрос(Соединение, АдресРесурса, , ТелоЗапроса); КонецФункции Функция КонфигурацииИзПодписки(ИдЧата) Экспорт Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ | ОтслеживаниеВерсийКонфигураций.Конфигурация.Наименование КАК КонфигурацияНаименование, | ОтслеживаниеВерсийКонфигураций.Конфигурация.Имя КАК КонфигурацияИмя, | ОтслеживаниеВерсийКонфигураций.ТекущаяВерсия КАК ТекущаяВерсия, | ОтслеживаниеВерсийКонфигураций.АктуальнаяВерсия КАК АктуальнаяВерсия |ИЗ | РегистрСведений.ОтслеживаниеВерсийКонфигураций КАК ОтслеживаниеВерсийКонфигураций |ГДЕ | ОтслеживаниеВерсийКонфигураций.ИдЧата = &ИдЧата"; Запрос.УстановитьПараметр("ИдЧата", ИдЧата); РезультатЗапроса = Запрос.Выполнить(); ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать(); МассивКонфигураций = Новый Массив; Пока ВыборкаДетальныеЗаписи.Следующий() Цикл Конфигурация = Новый Структура("Наименование, Имя, ТекущаяВерсия, АктуальнаяВерсия", ВыборкаДетальныеЗаписи.КонфигурацияНаименование,ВыборкаДетальныеЗаписи.КонфигурацияИмя, ВыборкаДетальныеЗаписи.ТекущаяВерсия, ВыборкаДетальныеЗаписи.АктуальнаяВерсия); МассивКонфигураций.Добавить(Конфигурация); КонецЦикла; Возврат МассивКонфигураций; КонецФункции Функция СтатусКонфигурацииИзПодписки(ИдЧата, Конфигурация) Экспорт Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ | ОтслеживаниеВерсийКонфигураций.Конфигурация.Наименование КАК Наименование, | ОтслеживаниеВерсийКонфигураций.ТекущаяВерсия КАК ТекущаяВерсия, | ОтслеживаниеВерсийКонфигураций.АктуальнаяВерсия КАК АктуальнаяВерсия |ИЗ | РегистрСведений.ОтслеживаниеВерсийКонфигураций КАК ОтслеживаниеВерсийКонфигураций |ГДЕ | ОтслеживаниеВерсийКонфигураций.ИдЧата = &ИдЧата | И ОтслеживаниеВерсийКонфигураций.Конфигурация = &Конфигурация"; Запрос.УстановитьПараметр("ИдЧата", ИдЧата); Запрос.УстановитьПараметр("Конфигурация", Конфигурация); РезультатЗапроса = Запрос.Выполнить(); ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать(); Если ВыборкаДетальныеЗаписи.Следующий() Тогда Результат = Новый Структура("Наименование, ТекущаяВерсия, АктуальнаяВерсия", ВыборкаДетальныеЗаписи.Наименование, ВыборкаДетальныеЗаписи.ТекущаяВерсия, ВыборкаДетальныеЗаписи.АктуальнаяВерсия); Возврат Результат; КонецЕсли; Возврат Неопределено; КонецФункции Функция СписокКонфигураций(ИдЧата) Экспорт Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ РАЗЛИЧНЫЕ | ОтслеживаниеВерсийКонфигураций.Конфигурация КАК Конфигурация, | ОтслеживаниеВерсийКонфигураций.Конфигурация.Наименование КАК КонфигурацияНаименование, | ОтслеживаниеВерсийКонфигураций.Конфигурация.Имя КАК КонфигурацияИмя, | ИСТИНА КАК Подписка |ПОМЕСТИТЬ ВТ_ОтслеживаемыеКонфигурации |ИЗ | РегистрСведений.ОтслеживаниеВерсийКонфигураций КАК ОтслеживаниеВерсийКонфигураций |ГДЕ | ОтслеживаниеВерсийКонфигураций.ИдЧата = &ИдЧата |; | |//////////////////////////////////////////////////////////////////////////////// |ВЫБРАТЬ | Конфигурации.Наименование КАК Наименование, | Конфигурации.Имя КАК Имя, | ЕСТЬNULL(ВТ_ОтслеживаемыеКонфигурации.Подписка, ЛОЖЬ) КАК Подписка |ИЗ | Справочник.Конфигурации КАК Конфигурации | ЛЕВОЕ СОЕДИНЕНИЕ ВТ_ОтслеживаемыеКонфигурации КАК ВТ_ОтслеживаемыеКонфигурации | ПО (ВТ_ОтслеживаемыеКонфигурации.Конфигурация = Конфигурации.Ссылка) | |УПОРЯДОЧИТЬ ПО | Подписка УБЫВ"; Запрос.УстановитьПараметр("ИдЧата", ИдЧата); РезультатЗапроса = Запрос.Выполнить(); ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать(); МассивКонфигураций = Новый Массив; Пока ВыборкаДетальныеЗаписи.Следующий() Цикл Конфигурация = Новый Структура("Наименование, Имя, Подписка", ВыборкаДетальныеЗаписи.Наименование, ВыборкаДетальныеЗаписи.Имя, ВыборкаДетальныеЗаписи.Подписка); МассивКонфигураций.Добавить(Конфигурация); КонецЦикла; Возврат МассивКонфигураций; КонецФункции Функция КонфигурацияПоИмени(ИмяКонфигурации) Экспорт Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ | Конфигурации.Ссылка КАК Конфигурация |ИЗ | Справочник.Конфигурации КАК Конфигурации |ГДЕ | Конфигурации.Имя = &Имя"; Запрос.УстановитьПараметр("Имя", ИмяКонфигурации); РезультатЗапроса = Запрос.Выполнить(); ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать(); Если ВыборкаДетальныеЗаписи.Следующий() Тогда Возврат ВыборкаДетальныеЗаписи.Конфигурация; КонецЕсли; Возврат Неопределено; КонецФункции Процедура УстановитьДанныеПользователя(ИдЧата, НовыйСтатус, ДополнительнаяИнформация) Экспорт Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ | ТелеграмПользователи.Ссылка КАК Ссылка, | ТелеграмПользователи.СтатусДиалога КАК СтатусДиалога |ИЗ | Справочник.ТелеграмПользователи КАК ТелеграмПользователи |ГДЕ | ТелеграмПользователи.id = &ИдЧата"; Запрос.УстановитьПараметр("ИдЧата", ИдЧата); РезультатЗапроса = Запрос.Выполнить(); ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать(); Если ВыборкаДетальныеЗаписи.Следующий() Тогда ПользовательОбъект = ВыборкаДетальныеЗаписи.Ссылка.ПолучитьОбъект(); Если ПользовательОбъект <> Неопределено Тогда ПользовательОбъект.СтатусДиалога = НовыйСтатус; ПользовательОбъект.ДополнительнаяИнформация = ДополнительнаяИнформация; ПользовательОбъект.Записать(); КонецЕсли; КонецЕсли; КонецПроцедуры Функция ДанныеПользователя(ИдЧата) Экспорт Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ | ТелеграмПользователи.СтатусДиалога КАК СтатусДиалога, | ТелеграмПользователи.ДополнительнаяИнформация КАК ДополнительнаяИнформация |ИЗ | Справочник.ТелеграмПользователи КАК ТелеграмПользователи |ГДЕ | ТелеграмПользователи.id = &ИдЧата"; Запрос.УстановитьПараметр("ИдЧата", ИдЧата); РезультатЗапроса = Запрос.Выполнить(); ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать(); Если ВыборкаДетальныеЗаписи.Следующий() Тогда Возврат Новый Структура("СтатусДиалога, ДополнительнаяИнформация", ВыборкаДетальныеЗаписи.СтатусДиалога, ВыборкаДетальныеЗаписи.ДополнительнаяИнформация); КонецЕсли; Возврат Неопределено; КонецФункции Функция СписокНеактуальныхКонфигурацийДляУведомления() Экспорт Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ | УведомленияОНовыхВерсиях.ИдЧата КАК ИдЧата |ПОМЕСТИТЬ ВТ_ЧатыПолучающиеУведомления |ИЗ | РегистрСведений.УведомленияОНовыхВерсиях КАК УведомленияОНовыхВерсиях |ГДЕ | УведомленияОНовыхВерсиях.ОтправлятьУведомления |; | |//////////////////////////////////////////////////////////////////////////////// |ВЫБРАТЬ | ОтслеживаниеВерсийКонфигураций.ИдЧата КАК ИдЧата, | ПРЕДСТАВЛЕНИЕССЫЛКИ(ОтслеживаниеВерсийКонфигураций.Конфигурация) КАК КонфигурацияПредставление, | ОтслеживаниеВерсийКонфигураций.ТекущаяВерсия КАК ТекущаяВерсия, | ОтслеживаниеВерсийКонфигураций.АктуальнаяВерсия КАК АктуальнаяВерсия |ИЗ | РегистрСведений.ОтслеживаниеВерсийКонфигураций КАК ОтслеживаниеВерсийКонфигураций |ГДЕ | ОтслеживаниеВерсийКонфигураций.ТекущаяВерсия <> ОтслеживаниеВерсийКонфигураций.АктуальнаяВерсия | И ОтслеживаниеВерсийКонфигураций.ИдЧата В | (ВЫБРАТЬ | Т.ИдЧата КАК ИдЧата | ИЗ | ВТ_ЧатыПолучающиеУведомления КАК Т) |ИТОГИ ПО | ИдЧата"; РезультатЗапроса = Запрос.Выполнить(); ВыборкаИдЧата = РезультатЗапроса.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам); ДанныеДляУведомлений = Новый Массив; Пока ВыборкаИдЧата.Следующий() Цикл ВыборкаДетальныеЗаписи = ВыборкаИдЧата.Выбрать(); ДанныеВерсийКонфигураций = Новый Массив; Пока ВыборкаДетальныеЗаписи.Следующий() Цикл ДанныеВерсийКонфигураций.Добавить(Новый Структура("КонфигурацияПредставление, ТекущаяВерсия, АктуальнаяВерсия", ВыборкаДетальныеЗаписи.КонфигурацияПредставление, ВыборкаДетальныеЗаписи.ТекущаяВерсия, ВыборкаДетальныеЗаписи.АктуальнаяВерсия)); КонецЦикла; ДанныеДляУведомлений.Добавить(Новый Структура("ИдЧата, Конфигурации", ВыборкаИдЧата.ИдЧата, ДанныеВерсийКонфигураций)); КонецЦикла; Возврат ДанныеДляУведомлений; КонецФункции #КонецОбласти #Область СлужебныеПроцедурыИФункции Функция БазовыйАдрес() Возврат "update-platform/programs/update"; КонецФункции Функция АдресРесурсаПоИмениМетода(ИмяМетода) Возврат СтрШаблон("%1/%2", БазовыйАдрес(), ИмяМетода); КонецФункции #КонецОбласти