Как найти и удалить «зависшие» объекты и файлы в 1С:Документооборот при возникновении ошибок удаления?

Программист 1С v8.3 (Управляемые формы) 1С:Документооборот IT и автоматизация бизнеса
← На главную

В системе 1С:Документооборот (1С:ДО) процесс удаления объектов часто превращается в сложную задачу из-за разветвленной структуры связей. Типичная ситуация: вы пометили бизнес-процесс на удаление, запустили стандартную обработку «Удаление помеченных объектов», но система выдает ошибку, ссылаясь на наличие связанных файлов или задач, которые невозможно найти обычными средствами. В этой статье мы детально разберем механизмы хранения ссылок в 1С:ДО и методы очистки базы от «фантомных» объектов.

Разбор механики процесса удаления в 1С:Предприятие

Прежде всего, проанализируем, как платформа работает с помеченными объектами. В 1С не существует отдельной физической «корзины» или таблицы, куда перемещаются данные. При установке пометки удаления у объекта просто меняется значение системного реквизита ПометкаУдаления на Истина (в терминах SQL-таблиц это поле _Marked).

Список, который мы видим в обработке удаления, генерируется динамически. Система сканирует таблицы и ищет все записи с этой пометкой. Если объект не удаляется, значит, на него ссылается другой объект базы данных, который либо не помечен на удаление, либо является частью защищенного механизма. Рассмотрим подробнее, где именно могут «прятаться» эти связи в контексте 1С:Документооборот.

Метод 1: Комплексная пометка иерархии бизнес-процессов

Бизнес-процессы в 1С:ДО — это комплексные объекты. При пометке на удаление только «шапки» процесса часто остаются «брошенными» его задачи и присоединенные файлы. Рассмотрим правильный алгоритм действий:

  1. Найдем корневой бизнес-процесс. Это особенно важно для комплексных процессов, которые порождают подчиненные подпроцессы.
  2. Пометим на удаление не только сам процесс, но и все связанные с ним задачи.
  3. Проверим наличие файлов, прикрепленных непосредственно к задачам или к предмету процесса.

Важный нюанс: В настройках списков 1С:ДО по умолчанию включена фильтрация, которая скрывает помеченные на удаление объекты. Чтобы увидеть их «вживую», необходимо в меню «Еще» (или через настройки формы) включить опцию «Показывать удаленные». Это часто помогает обнаружить файлы, которые визуально отсутствовали в карточке документа или задачи.

Метод 2: Поиск ссылок через консоль запросов

Если стандартная обработка не показывает, какой именно объект блокирует удаление, или сообщает о «битой» ссылке, воспользуемся консолью запросов. Проанализируем состояние справочников файлов и их версий. Часто бывает так, что карточка файла помечена на удаление, а его конкретная версия — нет, или наоборот.

Выполним следующий запрос для поиска проблемных файлов:


ВЫБРАТЬ
    Файлы.Ссылка КАК Ссылка
ИЗ
    Справочник.Файлы КАК Файлы
ГДЕ
    Файлы.ПометкаУдаления = ИСТИНА;

ВЫБРАТЬ
    ВерсииФайлов.Ссылка КАК СсылкаВерсияФайла,
    ВерсииФайлов.Владелец КАК ВладелецФайл,
    ВерсииФайлов.Владелец.ПометкаУдаления КАК ВладелецФайлПометкаУдаления
ИЗ
    Справочник.ВерсииФайлов КАК ВерсииФайлов
ГДЕ
    ВерсииФайлов.ПометкаУдаления = ИСТИНА

Проанализируем результаты. Если мы видим, что у версии файла ВладелецФайлПометкаУдаления имеет значение Ложь, это прямой признак того, что цепочка удаления разорвана. Нам необходимо вручную пометить владельца на удаление.

Метод 3: Использование специализированных инструментов редактирования реквизитов

Когда мы определили объект, который мешает удалению, но не можем найти его в интерфейсе (например, это вспомогательная запись в табличной части), воспользуемся внешними обработками типа «Редактор реквизитов объектов». Разберем пошагово методику работы с ними:

  1. В стандартной обработке «Удаление помеченных объектов» получаем ссылку на объект, который не удается удалить.
  2. Открываем этот объект в редакторе реквизитов.
  3. Используем функцию «Поиск ссылок на данный объект».
  4. Если ссылка найдена в табличной части (ТЧ) другого объекта (например, в задаче), мы можем либо пометить этот объект на удаление, либо программно очистить строку в ТЧ, разорвав связь.

Этот метод позволяет «отвязать» объект от помеченного на удаление вспомогательного файла, после чего повторный запуск удаления пройдет успешно.

Метод 4: Тестирование и исправление (ТиИ) при наличии «битых» ссылок

Если при попытке удаления система выдает ошибку вида Объект не найден (84:b7...), это означает физическое отсутствие объекта в базе при наличии ссылок на него в других местах. Выясним причину: такое случается при некорректных обменах данными или прямом удалении записей через SQL. Для исправления ситуации выполним следующие действия:

  1. Запустим конфигуратор и перейдем в меню «Администрирование» — «Тестирование и исправление».
  2. Выберем режим «Проверка ссылочной целостности».
  3. В поле «При наличии ссылок на несуществующие объекты» установим переключатель в положение «Очищать ссылки» (или «Создавать объекты», если важно восстановить структуру).

После завершения этой процедуры ссылки, указывающие «в пустоту», будут удалены, и блокировка с бизнес-процесса будет снята.

Метод 5: Работа с регистрами БСП и спецификой 1С:ДО

В современных версиях 1С:ДО, использующих механизмы БСП, данные о файлах и связях могут храниться в служебных регистрах. Если объект «невидим», проанализируем следующие места:

Проанализируем также права доступа. Иногда объект не удаляется, потому что у пользователя нет прав на удаление одного из связанных объектов (например, в другой папке документов), хотя пометка на удаление установлена. В таких случаях поможет запуск регламентного задания ОбновлениеПравДоступа, которое актуализирует дескрипторы и позволит системе корректно обработать цепочку удаления.

Резюмируем: Для успешного удаления в 1С:ДО всегда начинайте с комплексной пометки всей цепочки (Бизнес-процесс — Задачи — Файлы). Если это не помогает, используйте запросы к справочникам Файлы и ВерсииФайлов, а при обнаружении пустых ссылок — процедуру ТестированиеИИсправление.

← На главную