ПередУдалениемИдентификатораОбъектаМетаданных (БСП)

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

Перед удалением идентификатора объекта метаданных. Удаление ссылок подсистем перед их удалением.

// Удаление ссылок подсистем перед их удалением.
Процедура ПередУдалениемИдентификатораОбъектаМетаданных(ИдентификаторОбъектаМетаданныхОбъект, Отказ) Экспорт
	Если ИдентификаторОбъектаМетаданныхОбъект.ОбменДанными.Загрузка Тогда
		Возврат;
	КонецЕсли;
	
	Подсистема = ИдентификаторОбъектаМетаданныхОбъект.Ссылка;
	
	ТекстЗапроса =
	"ВЫБРАТЬ РАЗЛИЧНЫЕ
	|	ВариантыОтчетов.Ссылка
	|ИЗ
	|	Справочник.ВариантыОтчетов КАК ВариантыОтчетов
	|ГДЕ
	|	ВариантыОтчетов.Размещение.Подсистема = &Подсистема";
	
	Запрос = Новый Запрос;
	Запрос.УстановитьПараметр("Подсистема", Подсистема);
	Запрос.Текст = ТекстЗапроса;
	
	ИзменяемыеВарианты = Запрос.Выполнить().Выгрузить().ВыгрузитьКолонку("Ссылка");
	
	НачатьТранзакцию();
	Попытка
		Блокировка = Новый БлокировкаДанных;
		Для Каждого СсылкаВарианта Из ИзменяемыеВарианты Цикл
			ЭлементБлокировки = Блокировка.Добавить(Метаданные.Справочники.ВариантыОтчетов.ПолноеИмя());
			ЭлементБлокировки.УстановитьЗначение("Ссылка", СсылкаВарианта);
		КонецЦикла;
		Блокировка.Заблокировать();
		
		Для Каждого СсылкаВарианта Из ИзменяемыеВарианты Цикл
			ВариантОбъект = СсылкаВарианта.ПолучитьОбъект();
			
			Найденные = ВариантОбъект.Размещение.НайтиСтроки(Новый Структура("Подсистема", Подсистема));
			Для Каждого СтрокаТаблицы Из Найденные Цикл
				ВариантОбъект.Размещение.Удалить(СтрокаТаблицы);
			КонецЦикла;
			
			ВариантОбъект.Записать();
		КонецЦикла;
		ЗафиксироватьТранзакцию();
	Исключение
		ОтменитьТранзакцию();
		ВызватьИсключение;
	КонецПопытки;
	
КонецПроцедуры

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

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

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

ПередУдалениемИдентификатораОбъектаМетаданных (БСП)

ОбъектМетаданныхПоИдентификатору (БСП)

ОбъектыМетаданныхПоИдентификаторам (БСП)

ОписаниеПредопределенногоИдентификатораОбъектаМетаданных (БСП)

ПередПоискомПомеченныхНаУдаление (БСП)

ИдентификаторОбъектаМетаданных (БСП)

ИдентификаторыОбъектовМетаданных (БСП)

ДополнениеВыгрузкиИдентификаторВсехДокументов (БСП)

ДополнениеВыгрузкиИдентификаторВсехСправочников (БСП)

Обновлятор-1С: групповое (пакетное) обновление и обслуживание всех баз за один раз