Есть такой проблемный для пользователей регистр сведений "Данные первичных документов". Проблемный он, потому что на него часто ссылаются помеченные на удаление документы, несмотря на то, что они не проведены и никаких движений по регистрам делать не должны!
И в результате не получается корректно удалить такие документы из базы, так как запрещено удалять объекты из базы, если на них кто-нибудь ссылается (а ссылаются в данном случае записи из регистра "Данные первичных документов").
А почистить ненужные записи из этого регистра ведь очень легко - я, когда столкнулся с этой задачей, за 1 минуту набросал следующий код:
Процедура КнопкаВыполнитьНажатие(Кнопка) Выборка = РегистрыСведений.ДанныеПервичныхДокументов.Выбрать(); Пока Выборка.Следующий() Цикл Если Выборка.Документ.ПометкаУдаления Тогда Сообщить(Выборка.Документ); МенеджерЗаписи = Выборка.ПолучитьМенеджерЗаписи(); МенеджерЗаписи.Удалить(); КонецЕсли; КонецЦикла; КонецПроцедуры |
Таким образом мы чистим только те записи, которые ссылаются на помеченные на удаление документы. Операция абсолютно безопасна и не может привести к каким-либо побочным эффектам. После такой чистки - повторите удаление помеченных документов и оно пройдёт без сучка и без задоринки.
Обработка ниже проверялась в 1С:Бухгалтерии 2.0 и 3.0.
Скачать обработку "Очистка регистра данные первичных документов"