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