---
title: Вопрос перед удалением строк табличной части
slug: общие-управляемые-формы/вопрос-перед-удалением-строк-табличной-части
---

Если нужно удалить какие-нибудь связанные данные при удалении строки из основной таблицы - ниже пример

```bsl
&НаКлиенте
Процедура ДефектыДвигателяПередУдалением(Элемент, Отказ)
	Отказ = Истина;
	ДополнительныеПараметры = Новый Структура;
	ДополнительныеПараметры.Вставить("ВыделенныеСтроки", Элементы.ДефектыДвигателя.ВыделенныеСтроки);
	
	ОписаниеОповещения = Новый ОписаниеОповещения("УдалитьСтрокиТаблицыДефектыДвигателя", ЭтотОбъект, ДополнительныеПараметры);
	ТекстВопроса = "Внимание! При удалении строк из этой табличной части также будут удалены связанные данные о виновниках, мероприятиях и причинах";
	
	ПоказатьВопрос(ОписаниеОповещения, 
		ТекстВопроса, 
		РежимДиалогаВопрос.ДаНет);
КонецПроцедуры

&НаКлиенте
Процедура УдалитьСтрокиТаблицыДефектыДвигателя(Результат, ДополнительныеПараметры) Экспорт

	Если Результат <> КодВозвратаДиалога.Да Тогда
		Возврат;
	КонецЕсли;
	
	ВыделенныеСтроки = ОбщегоНазначенияКлиентСервер.СвойствоСтруктуры(ДополнительныеПараметры, 
		"ВыделенныеСтроки", Новый Массив);

	СтрокиКУдалению = Новый Массив;
	Для Каждого Идентификатор Из ВыделенныеСтроки Цикл
		
		ДанныеСтроки = Объект.ДефектыДвигателя.НайтиПоИдентификатору(Идентификатор);
		
		Если ДанныеСтроки = Неопределено Тогда
			Сообщение = СтрШаблон("Не удалось удалить строку с идентификатором %1", Идентификатор);
			Продолжить;
		КонецЕсли;
		
		УдалитьСвязанныеСтрокиТаблицыВиновники(ДанныеСтроки);
		УдалитьСвязанныеСтрокиТаблицыМероприятия(ДанныеСтроки);
		УдалитьСвязанныеСтрокиТаблицыПричины(ДанныеСтроки);
		
		СтрокиКУдалению.Добавить(ДанныеСтроки);
		
	КонецЦикла;

	Для Каждого Строка Из СтрокиКУдалению Цикл
		Объект.ДефектыДвигателя.Удалить(Строка);
	КонецЦикла;
		
КонецПроцедуры
```