Служебная доступные обновления классификаторов. Проверяет наличие доступных обновлений классификаторов в Сервисе классификаторов.
// Проверяет наличие доступных обновлений классификаторов в Сервисе классификаторов.
//
// Параметры:
// Идентификаторы - Массив - идентификаторы классификаторов в сервисе,
// обновление которых необходимо загрузить;
// ДанныеАутентификации - Структура - логин и пароль для авторизации в сервисе классификаторов;
// УдалитьАктуальные - Булево - признак удаления актуальных версий классификаторов.
//
// Возвращаемое значение:
// Структура - информация о доступных обновлениях:
// * КодОшибки - Строка - строковый код возникшей ошибки, который
// может быть обработан вызывающим функционалом:
// - <Пустая строка> - обновление выполнено успешно;
// - "НеверныйЛогинИлиПароль" - неверный логин или пароль;
// - "ПревышеноКоличествоПопыток" - превышено количество попыток
// получения обновления с некорректным логином и паролем;
// - "ОшибкаПодключения" - ошибка при подключении к сервису;
// - "ОшибкаСервиса" - внутренняя ошибка сервиса;
// - "НеизвестнаяОшибка" - при получении информации возникла
// неизвестная (не обрабатываемая) ошибка;
// - "СервисВременноНеДоступен" - на сервер ведутся регламентные работы;
// - "НеизвестныйКлассификаторИлиПрограмма" - классификатор или программа
// в сервисе не обнаружен по переданному идентификатору;
// - "НетДоступаКПрограмме" - отсутствует доступ к программе на Портале 1С:ИТС;
// - "ОбновлениеНеТребуется" - загружены актуальные версии классификаторов;
// *СообщениеОбОшибке - Строка, ФорматированнаяСтрока - сообщение об ошибке для пользователя;
// *ИнформацияОбОшибке - Строка, ФорматированнаяСтрока - сообщение об ошибке для администратора;
// *ДоступныеВерсии - Массив - содержит информацию о доступных обновлениях
// **Идентификатор - Строка - идентификатор классификатора в сервисе;
// **Версия - Строка - номер актуальной версии;
// **КонтрольнаяСумма - Число - контрольная сумма файла;
// **ОписаниеВерсии - Строка - описание изменений в версии;
// **ИдентификаторФайла - Строка - идентификатор файла, который будет использован для загрузки;
// **Размер - Строка - размер файла;
// **Наименование - Строка - наименование классификатора;
//
Функция СлужебнаяДоступныеОбновленияКлассификаторов(
Идентификаторы,
ДанныеАутентификации,
УдалитьАктуальные = Ложь) Экспорт
// 1. Проверка доступности обновления.
ПроверитьДоступностьОбновления();
// 2. Начальное заполнение номера версии,
// для новых классификаторов.
УстановитьНачальныйНомерВерсииКлассификаторов(Идентификаторы);
// 3. Определить данные аутентификации.
РезультатПроверки = Новый Структура;
РезультатПроверки.Вставить("КодОшибки", "");
РезультатПроверки.Вставить("СообщениеОбОшибке", "");
РезультатПроверки.Вставить("ИнформацияОбОшибке", "");
РезультатПроверки.Вставить("ДоступныеВерсии ", Новый Массив);
Если Не ОбщегоНазначения.РазделениеВключено() Тогда
Если ДанныеАутентификации = Неопределено Тогда
Результат = ДанныеАутентификации();
Если Результат.Ошибка Тогда
РезультатПроверки.КодОшибки = КодОшибкиНеверныйЛогинИлиПароль();
ЗаполнитьЗначенияСвойств(РезультатПроверки, Результат, "ИнформацияОбОшибке");
РезультатПроверки.СообщениеОбОшибке = Результат.ИнформацияОбОшибке;
Возврат РезультатПроверки;
КонецЕсли;
ДанныеАутентификации = Результат.ДанныеАутентификации;
КонецЕсли;
Иначе
// Получение обновление будет выполнено из кэша.
ДанныеАутентификации = Неопределено;
КонецЕсли;
// 4. Из сервиса загружается информация об актуальных версиях классификаторов,
// а также ссылки на файл.
Если ОбщегоНазначения.РазделениеВключено() Тогда
РезультатОперации = ДанныеКлассификаторовИзКэша(
Идентификаторы,
Ложь);
Иначе
РезультатОперации = ИнформацияОбАктуальныхВерсияхКлассификаторов(
Идентификаторы,
ДанныеАутентификации);
КонецЕсли;
Если РезультатОперации.Ошибка Тогда
ЗаполнитьЗначенияСвойств(
РезультатПроверки,
РезультатОперации,
"КодОшибки, СообщениеОбОшибке, ИнформацияОбОшибке");
Возврат РезультатПроверки;
КонецЕсли;
// 5. Если номер версии классификатора в базе равен номеру версии в сервисе,
// обновление не будет загружено.
Если УдалитьАктуальные Тогда
УдалитьАктуальныеВерсии(
РезультатОперации.ДанныеКлассификаторов,
Идентификаторы);
КонецЕсли;
Для Каждого ОписательВерсии Из РезультатОперации.ДанныеКлассификаторов Цикл
ИдентификаторФайла = Новый Структура;
ИдентификаторФайла.Вставить("ИдентификаторФайла", ОписательВерсии.ИдентификаторФайла);
ИдентификаторФайла.Вставить("КонтрольнаяСумма", ОписательВерсии.КонтрольнаяСумма);
ИдентификаторФайла.Вставить("Размер", ОписательВерсии.Размер);
ИдентификаторФайла.Вставить("ОписаниеВерсии", ОписательВерсии.ОписаниеВерсии);
ДанныеВерсии = Новый Структура;
ДанныеВерсии.Вставить("Идентификатор", ОписательВерсии.Идентификатор);
ДанныеВерсии.Вставить("Наименование", ОписательВерсии.Наименование);
ДанныеВерсии.Вставить("Версия", ОписательВерсии.Версия);
ДанныеВерсии.Вставить("ОписаниеВерсии", ОписательВерсии.ОписаниеВерсии);
ДанныеВерсии.Вставить("Размер", ОписательВерсии.Размер);
ДанныеВерсии.Вставить("ИдентификаторФайла", ИдентификаторФайла);
РезультатПроверки.ДоступныеВерсии.Добавить(ДанныеВерсии);
КонецЦикла;
Возврат РезультатПроверки;
КонецФункции
///////////////////////////////////////////////////////////////////////////////////////////////////////
// Copyright (c) 2019, ООО 1С-Софт
// Все права защищены. Эта программа и сопроводительные материалы предоставляются
// в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0)
// Текст лицензии доступен по ссылке:
// https://creativecommons.org/licenses/by/4.0/legalcode
///////////////////////////////////////////////////////////////////////////////////////////////////////
ДоступныеОбновленияКлассификаторов (БСП)
ИнформацияОДоступномОбновленииСлужебная (БСП)
СлужебнаяДоступноИспользованиеПолученияОбновленийПлатформы (БСП)
ДоступныеВерсииАдресныхСведений (БСП)
СлужебнаяПараметрыПолученияОбновлений (БСП)
ДатаОбновленияКлассификатора (БСП)
Канал FastCode 1C в Телеграм! Шаблоны кода, статьи, полезные советы, курсы по 1С (8К участников)