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