ПеренестиКэшДанныхКлассификаторов

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

Выполняет перенос данных из кэша поставляемых данных в регистр сведений

// Выполняет перенос данных из кэша поставляемых данных в регистр сведений
// КэшДанныхКлассификаторов.
//
Процедура ПеренестиКэшДанныхКлассификаторов() Экспорт
	
	Если Не ОбщегоНазначения.РазделениеВключено() Тогда
		Возврат;
	КонецЕсли;
	
	РаботаСКлассификаторами.ЗаписатьИнформациюВЖурналРегистрации(
		НСтр("ru = 'Перенос кэша поставляемых данных в подсистему ""Работа с классификаторами"". Начало обновления.'"),
		Ложь);
	
	МодульПоставляемыеДанные = ОбщегоНазначения.ОбщийМодуль("ПоставляемыеДанные");
	Дескрипторы = МодульПоставляемыеДанные.ДескрипторыПоставляемыхДанныхИзКэша(
		РаботаСКлассификаторами.ВидПоставляемыхДанныхКлассификаторы());
	
	Для Каждого Дескриптор Из Дескрипторы Цикл
		
		ДанныеФайла = МодульПоставляемыеДанные.ПоставляемыеДанныеИзКэша(
			Дескриптор.ИдентификаторФайла);
		
		// Если файла физически нет в кэше, невозможно его перенести
		// в кэш подсистемы "Работа с классификаторами".
		Если ДанныеФайла = Неопределено Тогда
			Продолжить;
		КонецЕсли;
		
		ОписаниеФайла = РаботаСКлассификаторами.ОписаниеДанныхФайлаКлассификатора(
			ПоместитьВоВременноеХранилище(ДанныеФайла));
		
		Для Каждого Характеристика Из Дескриптор.Характеристики Цикл
			Если Характеристика.Код = "Идентификатор" Тогда
				ОписаниеФайла.Идентификатор = Характеристика.Значение;
			ИначеЕсли Характеристика.Код = "Версия" Тогда
				ОписаниеФайла.Версия = Число(Характеристика.Значение);
			ИначеЕсли Характеристика.Код = "КонтрольнаяСумма" Тогда
				ОписаниеФайла.КонтрольнаяСумма = Характеристика.Значение;
			ИначеЕсли Характеристика.Код = "ОписаниеВерсии" Тогда
				ОписаниеФайла.ОписаниеВерсии = Характеристика.Значение;
			ИначеЕсли Характеристика.Код = "Размер" Тогда
				ОписаниеФайла.Размер = Характеристика.Значение;
			ИначеЕсли Характеристика.Код = "Размер" Тогда
				ОписаниеФайла.Размер = Характеристика.Значение;
			КонецЕсли;
		КонецЦикла;
		
		// Не корректные данные кэша пропускаем.
		Если Не ЗначениеЗаполнено(ОписаниеФайла.Идентификатор) Тогда
			Продолжить;
		КонецЕсли;
		
		РаботаСКлассификаторами.ОбновитьКэшКлассификатора(ОписаниеФайла);
		
	КонецЦикла;
	
	// При работе в модели сервиса файлы классификаторов кэшировались в поставляемых
	// данных. При переходе на версию 2.4.1.10 кэш перенесен в регистр сведений
	// "КэшДанныхКлассификаторов". Устаревшие данные будут удалены через очередь заданий.
	ПараметрыЗадания = Новый Структура;
	ПараметрыЗадания.Вставить("ИмяМетода", "УдалитьКэшПоставляемыхКлассификаторов");
	ПараметрыЗадания.Вставить("ОбластьДанных", -1);
	ПараметрыЗадания.Вставить("ЗапланированныйМоментЗапуска", ТекущаяУниверсальнаяДата());
	ПараметрыЗадания.Вставить("КоличествоПовторовПриАварийномЗавершении", 3);
	
	МодульОчередьЗаданий = ОбщегоНазначения.ОбщийМодуль("ОчередьЗаданий");
	МодульОчередьЗаданий.ДобавитьЗадание(ПараметрыЗадания);
	
	РаботаСКлассификаторами.ЗаписатьИнформациюВЖурналРегистрации(
		НСтр("ru = 'Перенос кэша поставляемых данных в подсистему ""Работа с классификаторами"". Успешно завершено.'"),
		Ложь);
	
КонецПроцедуры

///////////////////////////////////////////////////////////////////////////////////////////////////////
// Copyright (c) 2019, ООО 1С-Софт
// Все права защищены. Эта программа и сопроводительные материалы предоставляются 
// в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0)
// Текст лицензии доступен по ссылке:
// https://creativecommons.org/licenses/by/4.0/legalcode
///////////////////////////////////////////////////////////////////////////////////////////////////////
TurboConf - расширение Конфигуратора 1С

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

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

ВерсияКлассификатораКэш (БСП)

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

ДескрипторПоставляемыхДанныхИзКэша (БСП)

УдалитьПоставляемыеДанныеИзКэша (БСП)