Ошибка при выполнении обработчика ОбработкаУдаленияПроведения в 1С
- Ошибка
Ошибка при выполнении обработчика ОбработкаУдаленияПроведенияпри попытке распровести документ или пометить его на удаление. - Сообщение
Редактирование данных этого периода запрещено (Дата запрета изменения данных). - Сбои из-за попыток пересчета связанных подчиненных документов или подчиненных регистров сведений.
- Взаимоблокировки при параллельной отмене проведения группы документов.
1. Проверка дат запрета изменения данных
Наиболее частая причина сбоя — дата документа попадает в закрытый период:
- Перейдите в Администрирование -> Настройки пользователей и прав -> Даты запрета изменения.
- Временно скорректируйте дату запрета для пользователя, выполняющего регламентную отмену проведения.
2. Корректная логика очистки движений
По умолчанию платформа 1С автоматически очищает все наборы записей движений документа, для которых установлено свойство Записывать = Истина. Проверьте код модуля документа:
Процедура ОбработкаУдаленияПроведения(Отказ)
Если ЭтотОбъект.ОбменДанными.Загрузка Тогда
Возврат;
КонецЕсли;
// Если требуется дополнительная очистка нестандартных регистров
Попытка
НаборЗаписей = РегистрыСведений.ГрафикиПлатежей.СоздатьНаборЗаписей();
НаборЗаписей.Отбор.Регистратор.Установить(ЭтотОбъект.Ссылка);
НаборЗаписей.Записать(); // Очищаем записи
Исключение
Отказ = Истина;
ЗаписьЖурналаРегистрации("ОтменаПроведения", УровеньЖурналаРегистрации.Ошибка,,, ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()));
КонецПопытки;
КонецПроцедуры3. Проверка зависимых подчиненных документов
Если документ является основанием для других проведенных документов, настройте проверку ссылочной целостности перед отменой проведения.
Частые вопросы (FAQ)
Очищает ли платформа движения автоматически, если процедура ОбработкаУдаленияПроведения пустая?
Да. Если в свойствах документа для параметра 'Удаление движений' выбрано значение 'Удалять автоматически', платформа очищает все наборы записей регистров, где документ является регистратором.
Что делать, если отмена проведения падает из-за нехватки прав на один из регистров?
Проверьте роль пользователя: у нее должно быть право 'Интерактивное снятие проведения с контроля' и полные права на чтение/запись всех регистров, по которым данный документ формирует движения.
Можно ли отменить проведение документа без вызова обработчика ОбработкаУдаленияПроведения?
Да, если программно установить Объект.ОбменДанными.Загрузка = Истина и вызвать Объект.Записать(РежимЗаписиДокумента.ОтменаПроведения).
Почему при групповой отмене проведения документов возникают дедлоки?
Если документы отменяются в разном хронологическом или алфавитном порядке, транзакции СУБД захватывают блокировки страниц таблиц итогов регистров в перекрестном порядке, вызывая взаимоблокировку.