При ведении учета нередко возникает необходимость окончательно стереть ошибочно созданный или дублирующийся регламентированный отчет. Пользователи помечают декларацию на удаление, однако стандартная обработка контроля ссылочной целостности либо не удаляет объект, либо пользователь не может найти его в списке с привычным наименованием. Разберем подробно, как устроено хранение отчетности в программе и как корректно очистить базу от ненужных документов.
Проанализируем основные причины, по которым система не дает удалить декларацию:
РегламентированныйОтчет. В окне обработки удаления помеченных объектов он группируется именно по этому типу метаданных, а не по названию конкретной формы (например, «Декларация по налогу на прибыль»).ВыгрузкаРегламентированныхОтчетов. Пока этот документ не помечен на удаление, удаление самого отчета заблокировано.Рассмотрим по шагам типовой и безопасный порядок действий через интерфейс программы:
Регламентированный отчет. Отметим нужный отчет флагом и нажмем кнопку Контроль (или Удалить).Выгрузка регламентированных отчетов), дважды кликнем по нему для перехода в форму и установим на него пометку удаления.Если зависимый объект представляет собой запись регистра сведений без ведущего измерения, система не сможет очистить его автоматически при удалении основного документа. Разберем, как поступить в такой ситуации:
Групповая обработка справочников и документов.В исключительных случаях, когда в базе накопились разорванные ссылки или устаревшие технические записи, администратор может применить прямое удаление объекта средствами встроенного языка 1С. Важно: перед выполнением программного удаления обязательно создадим резервную копию информационной базы.
Посмотрим на пример кода во внешней обработке для удаления конкретного отчета по ссылке:
// Получаем объект регламентированного отчета по ссылке
ДокументОбъект = ВыбраннаяСсылкаНаОтчет.ПолучитьОбъект();
Если ДокументОбъект <> Неопределено Тогда
// Выполняем непосредственное удаление без проверки ссылок
ДокументОбъект.Удалить();
Сообщить("Регламентированный отчет успешно удален из базы данных.");
КонецЕсли;
Если удалять документ из базы необязательно, а требуется лишь убрать черновик или устаревший вариант из поля зрения бухгалтера, воспользуемся штатной функцией скрытия: