Получить файлы классификаторов. Получает актуальные версии файлов классификаторов из сервиса классификаторов
// Получает актуальные версии файлов классификаторов из сервиса классификаторов
// или из кэша поставляемых данных. При работе в модели сервиса информация о
// актуальных версиях классификаторов будет сохранена в кэше опционально, т.е.
// в зависимости от настройки классификатора в переопределяемом методе
// РаботаСКлассификаторамиПереопределяемый.ПриДобавленииКлассификаторов и в методе
// ИнтеграцияПодсистемБИП.ПриДобавленииКлассификаторов(Классификаторы). Если
// в настройках классификатора установлено значение СохранятьФайлВКэш равным Истина
// получение файлов актуальных версий будет доступно, в противно случае метод вернет
// пустую таблицу ДанныеКлассификаторов.
//
// Параметры:
// Идентификаторы - Массив - идентификаторы классификаторов в сервисе,
// файлы которых необходимо загрузить.
//
// Возвращаемое значение:
// Структура - информация о доступных обновлениях:
// *КодОшибки - Строка - строковый код возникшей ошибки, который
// может быть обработан вызывающим функционалом:
// - <Пустая строка> - обновление выполнено успешно;
// - "ОбновлениеНеТребуется" - обновление не обнаружено;
// - "НеверныйЛогинИлиПароль" - неверный логин или пароль;
// - "ПревышеноКоличествоПопыток" - превышено количество попыток
// получения обновления с некорректным логином и паролем;
// - "ОшибкаПодключения" - ошибка при подключении к сервису;
// - "ОшибкаСервиса" - внутренняя ошибка сервиса;
// - "НеизвестнаяОшибка" - при получении информации возникла
// неизвестная (не обрабатываемая) ошибка;
// - "НеОбработан" - файл классификатора успешно загружен, но не обработан.
// Ошибка может возникнуть, если отсутствуют алгоритмы обработки файла
// см. процедуру РаботаСКлассификаторамиПереопределяемый.ПриЗагрузкеКлассификатора
// и ИнтеграцияПодсистемБИП.ПриЗагрузкеКлассификатора;
// - "СервисВременноНеДоступен" - на сервер ведутся регламентные работы;
// - "НеизвестныйКлассификаторИлиПрограмма" - классификатор или программа
// в сервисе не обнаружен по переданному идентификатору;
// - "ФайлНеЗагружен" - при загрузке файлов классификатора возникли ошибки;
// - "НетДоступаКПрограмме" - отсутствует доступ к программе на Портале 1С:ИТС;
// *СообщениеОбОшибке - Строка, ФорматированнаяСтрока - сообщение об ошибке для пользователя;
// *ИнформацияОбОшибке - Строка, ФорматированнаяСтрока - сообщение об ошибке для администратора;
// *ДанныеКлассификаторов - ТаблицаЗначений, Неопределено - содержит информацию о доступных обновлениях
// **Идентификатор - Строка - идентификатор классификатора в сервисе;
// **Версия - Строка - номер актуальной версии;
// **АдресФайла - Строка - адрес файла во временном хранилище;
// **ОписаниеВерсии - Строка - описание изменений в версии;
// **КонтрольнаяСумма - Строка - описание изменений в версии;
// **Размер - Строка - описание изменений в версии;
//
Функция ПолучитьФайлыКлассификаторов(Идентификаторы) Экспорт
// 1. Определение файлов классификаторов
// из кэша подсистемы
РезультатОбновления = ДанныеКлассификаторовИзКэша(Идентификаторы);
// 2. При работе в модели сервиса возможно получение файлов классификаторов
// только из кэша.
Если Не ЗначениеЗаполнено(РезультатОбновления.КодОшибки)
Или ОбщегоНазначения.РазделениеВключено() Тогда
Возврат РезультатОбновления;
КонецЕсли;
// 2. Определение параметров аутентификации в сервисе.
Результат = ДанныеАутентификации();
Если Результат.Ошибка Тогда
РезультатОбновления.КодОшибки = КодОшибкиНеверныйЛогинИлиПароль();
ЗаполнитьЗначенияСвойств(РезультатОбновления, Результат, "ИнформацияОбОшибке");
РезультатОбновления.СообщениеОбОшибке = Результат.ИнформацияОбОшибке;
Возврат РезультатОбновления;
КонецЕсли;
РезультатОбновления = Новый Структура;
РезультатОбновления.Вставить("КодОшибки", "");
РезультатОбновления.Вставить("СообщениеОбОшибке", "");
РезультатОбновления.Вставить("ИнформацияОбОшибке", "");
РезультатОбновления.Вставить("ДанныеКлассификаторов", Неопределено);
ДанныеАутентификации = Результат.ДанныеАутентификации;
// 3. Загрузка информации о версиях классификаторов.
РезультатОперации = ИнформацияОбАктуальныхВерсияхКлассификаторов(
Идентификаторы,
ДанныеАутентификации);
Если РезультатОперации.Ошибка Тогда
ЗаполнитьЗначенияСвойств(
РезультатОбновления,
РезультатОперации,
"КодОшибки, СообщениеОбОшибке, ИнформацияОбОшибке");
Возврат РезультатОбновления;
КонецЕсли;
// 4. Получение файлов классификаторов по ссылкам определенным на этапе 1.
РезультатЗагрузки = ЗагрузитьФайлыКлассификаторов(
РезультатОперации.ДанныеКлассификаторов,
ДанныеАутентификации);
Если РезультатЗагрузки.Ошибка Тогда
ЗаполнитьЗначенияСвойств(
РезультатОбновления,
РезультатЗагрузки,
"КодОшибки, СообщениеОбОшибке, ИнформацияОбОшибке");
Возврат РезультатОбновления;
КонецЕсли;
// 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К участников)