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