Обновить (БСП)

Автор: 1С
ОбщийМодуль.ВариантыОтчетов
БСП

Обновить. Актуализирует кэши метаданных подсистемы с учетом режима работы программы.

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

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

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

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

ОбновитьТелефон (БСП)

ОбновитьКомпонентыСПортала (БСП)

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

ОбновитьНастройкиXDTOКорреспондента (БСП)

ОбновитьИсправленияИзСкрипта (БСП)

ОбновитьПредставлениеАдреса (БСП)

ОбновитьКурсВалюты (БСП)

ОбновитьПрисоединенныйФайл (БСП)

ОбновитьПрогрессВФоне (БСП)

Обновить (БСП)

TurboConf - расширение Конфигуратора 1С