В подписке на событие нужно изменить одновременно три объекта. Если при изменении хотя бы одного из них возникнет ошибка, то нужно отменить все изменения.
По моему два варианта:
1. В процедуре, выполняемой по подписке
Попытка
Объект1 = Элемент1.ПолучитьОбъект();
// Код изменений
Объект1.Записать();
Объект2 = Элемент2.ПолучитьОбъект();
// Код изменений
Объект2.Записать();
Объект3 = Элемент3.ПолучитьОбъект();
// Код изменений
Объект3.Записать();
Исключение
Отказ = Истина
КонецПопытки;
2. Или пробовать мутить с транзакцией
НачатьТранзакцию();
Попытка
Объект1 = Элемент1.ПолучитьОбъект();
// Код изменений
Объект1.Записать();
Объект2 = Элемент2.ПолучитьОбъект();
// Код изменений
Объект2.Записать();
Объект3 = Элемент3.ПолучитьОбъект();
// Код изменений
Объект3.Записать();
ЗафиксироватьТранзакцию();
Исключение
Отказ = Истина;
ОтменитьТранзакцию();
КонецПопытки;