ОбновитьИнформационнуюБазуВФоне (БСП)

Автор: 1С
ОбщийМодуль.ОбновлениеИнформационнойБазыСлужебный
БСП

Обновить информационную базу фоне. Для внутреннего использования.

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

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

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

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

ВыполнитьОбновлениеИнформационнойБазыВФоне (БСП)

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

ОбновитьРолиПользователей (БСП)

ОбновлениеИнформационнойБазы_ОбновитьНастройкиПолученияОбновлений_2_1_8_1 (БСП)

ОбновитьРолиВнешнихПользователей (БСП)

ПараметрыИнформационнойБазы (БСП)

СеансыИнформационнойБазы (БСП)

СоединенияСИнформационнойБазой (БСП)

TurboConf ИР адаптер 1.89