ПолучитьФайлыКлассификаторов (БСП)

Автор: 1С
ОбщийМодуль.РаботаСКлассификаторами
БСП

Получить файлы классификаторов. Получает актуальные версии файлов классификаторов из сервиса классификаторов

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

Рекомендации

Похожие публикации

ФайлКлассификаторовПослеВыбораФайла (БСП)

ДанныеКлассификатора (БСП)

ИнтерактивноеОбновлениеКлассификаторовИзФайла (БСП)

ОбработатьОбновлениеКлассификатора (БСП)

ПриЗагрузкеКлассификатора (БСП)

УдалитьКэшПоставляемыхКлассификаторов (БСП)

АнализДоступностиФайловКлассификатораВКаталогеПослеПоискаФайлов (БСП)

АнализДоступностиФайловКлассификатораВКаталогеЗавершение (БСП)

УстановитьФайлКлассификаторов (БСП)

TurboConf ИР адаптер 2.63