Перед удалением идентификатора объекта метаданных. Удаление ссылок подсистем перед их удалением.
// Удаление ссылок подсистем перед их удалением.
Процедура ПередУдалениемИдентификатораОбъектаМетаданных(ИдентификаторОбъектаМетаданныхОбъект, Отказ) Экспорт
Если ИдентификаторОбъектаМетаданныхОбъект.ОбменДанными.Загрузка Тогда
Возврат;
КонецЕсли;
ИдентификаторОбъектаМетаданныхСсылка = ИдентификаторОбъектаМетаданныхОбъект.Ссылка;
Запрос = Новый Запрос(
"ВЫБРАТЬ РАЗЛИЧНЫЕ
| РазделыОтчетовИОбработок.Ссылка
|ИЗ
| Справочник.ДополнительныеОтчетыИОбработки.Разделы КАК РазделыОтчетовИОбработок
|ГДЕ
| РазделыОтчетовИОбработок.Раздел = &Подсистема
|
|ОБЪЕДИНИТЬ ВСЕ
|
|ВЫБРАТЬ РАЗЛИЧНЫЕ
| РазделыОтчетовИОбработок.Ссылка
|ИЗ
| Справочник.ДополнительныеОтчетыИОбработки.Назначение КАК РазделыОтчетовИОбработок
|ГДЕ
| РазделыОтчетовИОбработок.ОбъектНазначения = &Подсистема");
Запрос.УстановитьПараметр("Подсистема", ИдентификаторОбъектаМетаданныхСсылка);
ИзменяемыеОбъекты = Запрос.Выполнить().Выгрузить().ВыгрузитьКолонку("Ссылка");
НачатьТранзакцию();
Попытка
Блокировка = Новый БлокировкаДанных;
Для Каждого СправочникСсылка Из ИзменяемыеОбъекты Цикл
ЭлементБлокировки = Блокировка.Добавить(Метаданные.Справочники.ДополнительныеОтчетыИОбработки.ПолноеИмя());
ЭлементБлокировки.УстановитьЗначение("Ссылка", СправочникСсылка);
КонецЦикла;
Блокировка.Заблокировать();
Для Каждого СправочникСсылка Из ИзменяемыеОбъекты Цикл
СправочникОбъект = СправочникСсылка.ПолучитьОбъект();
Найденные = СправочникОбъект.Разделы.НайтиСтроки(Новый Структура("Раздел", ИдентификаторОбъектаМетаданныхСсылка));
Для Каждого СтрокаТаблицы Из Найденные Цикл
СправочникОбъект.Разделы.Удалить(СтрокаТаблицы);
КонецЦикла;
Найденные = СправочникОбъект.Назначение.НайтиСтроки(Новый Структура("ОбъектНазначения", ИдентификаторОбъектаМетаданныхСсылка));
Для Каждого СтрокаТаблицы Из Найденные Цикл
СправочникОбъект.Назначение.Удалить(СтрокаТаблицы);
КонецЦикла;
СправочникОбъект.Записать();
КонецЦикла;
ЗафиксироватьТранзакцию();
Исключение
ОтменитьТранзакцию();
ВызватьИсключение;
КонецПопытки;
КонецПроцедуры
///////////////////////////////////////////////////////////////////////////////////////////////////////
// Copyright (c) 2019, ООО 1С-Софт
// Все права защищены. Эта программа и сопроводительные материалы предоставляются
// в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0)
// Текст лицензии доступен по ссылке:
// https://creativecommons.org/licenses/by/4.0/legalcode
///////////////////////////////////////////////////////////////////////////////////////////////////////
ПередУдалениемИдентификатораОбъектаМетаданных (БСП)
ОбъектМетаданныхПоИдентификатору (БСП)
ОбъектыМетаданныхПоИдентификаторам (БСП)
ОписаниеПредопределенногоИдентификатораОбъектаМетаданных (БСП)
ПередПоискомПомеченныхНаУдаление (БСП)
ИдентификаторыОбъектовМетаданных (БСП)
ИдентификаторОбъектаМетаданных (БСП)