К статье
Практический материал

Администрирование · 11 мин

Как в 1С удалить объект сразу, без пометки на удаление

Как в 1С удалить документ или элемент справочника окончательно, минуя пометку на удаление: способы, права, контроль ссылочной целостности и типичные ошибки.

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

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

Ниже разобраны рабочие способы: интерактивное удаление через Shift+Delete, программное удаление через встроенный язык, требования к правам пользователя, проверка последствий и ситуации, в которых прямое удаление недопустимо.

Почему в 1С вообще существует пометка на удаление

Двухэтапное удаление — осознанное архитектурное решение платформы. Когда пользователь нажимает Delete, объект не исчезает из базы: ему лишь устанавливается признак «ПометкаУдаления». При этом все связи сохраняются, объект можно восстановить одним нажатием, а физическое стирание происходит только после проверки, не используется ли он в других местах.

Обработка «Удаление помеченных объектов» (в типовых конфигурациях она находится в разделе «Администрирование» → «Обслуживание») перед физическим удалением ищет ссылки на помеченный объект во всех таблицах базы. Если ссылки найдены, объект либо не удаляется, либо удаляется вместе со ссылками — в зависимости от выбранного режима.

Прямое удаление минует обе стадии. Платформа не проверяет ссылки, не спрашивает подтверждения о связанных данных и не оставляет «страховочного» состояния. Объект исчезает из таблицы базы данных сразу и безвозвратно.

Способ 1. Интерактивное удаление через Shift+Delete

Самый простой способ удалить объект напрямую — выделить его в форме списка и нажать Shift+Delete. Платформа покажет предупреждение, что объект будет удалён без возможности восстановления, и после подтверждения сотрёт его из базы. Ни пометки на удаление, ни поиска ссылок при этом не происходит.

Способ работает в формах списков справочников, документов, планов счетов и других объектных данных. В управляемом интерфейсе сочетание клавиш то же самое. Если комбинация не срабатывает — почти наверняка у пользователя нет права «Интерактивное удаление», об этом ниже.

Прямое удаление через интерфейс
  1. 1
    Откройте список объектов (справочник, журнал документов) и найдите нужную запись
  2. 2
    Убедитесь, что объект не используется: проверьте связанные документы и движения
  3. 3
    Выделите объект и нажмите Shift+Delete
  4. 4
    Подтвердите удаление в диалоге предупреждения
  5. 5
    Проверьте, что объект исчез из списка, и выполните тестирование ссылочной целостности

Способ 2. Программное удаление через встроенный язык

Для пакетной обработки или удаления из кода используется метод Удалить() объекта. В отличие от УстановитьПометкуУдаления(), он стирает запись из базы немедленно и без контроля ссылок. Типичный фрагмент выглядит так:

ОбъектДляУдаления = СсылкаНаОбъект.ПолучитьОбъект();

ОбъектДляУдаления.Удалить();

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

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

bsl
ДокументОбъект = ДокументСсылка.ПолучитьОбъект();
ДокументОбъект.ОтменитьПроведение();
ДокументОбъект.Удалить();

Какие права нужны для прямого удаления

В ролевой модели 1С за прямое удаление отвечают два отдельных права: «Удаление» (программное) и «Интерактивное удаление» (через интерфейс, включая Shift+Delete). Они не зависят от права «Пометка на удаление» — пользователь может иметь право помечать объекты, но не иметь права стирать их напрямую.

В типовых конфигурациях на базе БСП интерактивное удаление обычно есть только у администраторов и в профилях, где оно добавлено явно. Если сочетание Shift+Delete не работает, проверьте: роль пользователя в конфигураторе (права на конкретный вид объектов), профиль группы доступа в режиме предприятия и наличие ограничений на уровне записей (RLS), которые могут скрывать саму возможность действия.

Чем опасно удаление без пометки и когда его нельзя делать

Главный риск — нарушение ссылочной целостности. Если удалить контрагента, на которого ссылаются реализации, или номенклатуру из табличных частей документов, в этих местах появятся ссылки вида «Объект не найден». Отчёты начнут выдавать ошибки или искажённые данные, обмены могут останавливаться, а восстановить удалённый объект штатными средствами уже не получится.

Есть ситуации, где прямое удаление категорически не рекомендуется: в рабочей базе с реальным учётом, для объектов периодов, по которым сдана отчётность, для документов, участвующих в обменах с другими системами, и для любых объектов, чьи связи не проверены. В этих случаях правильный путь — пометка на удаление и штатная обработка с контролем ссылок.

Как проверить ссылки перед удалением и результат после

Перед прямым удалением полезно найти все места использования объекта. В типовых конфигурациях для этого есть команда «Поиск ссылок на объект» (в ряде конфигураций доступна из меню «Ещё» в форме объекта или через обработку «Поиск и удаление дублей»). В конфигураторе аналогичную проверку даёт пункт «Правка → Поиск ссылок в объектах».

После удаления контроль выполняется через «Тестирование и исправление» информационной базы в конфигураторе с включённой проверкой ссылочной целостности. Проверка покажет битые ссылки, если они появились. В файловой базе тестирование запускается напрямую, в клиент-серверной — с учётом того, что на время проверки может потребоваться монопольный доступ.

Контрольные точки

Как проверить результат

Объект в списке
Норма

Запись отсутствует в форме списка после удаления

Тревожный признак

Запись осталась или появилась пометка вместо удаления

Ссылки на объект
Норма

Поиск ссылок не находит упоминаний удалённого объекта

Тревожный признак

В документах или регистрах есть записи «Объект не найден»

Тестирование и исправление
Норма

Проверка ссылочной целостности завершается без ошибок

Тревожный признак

Отчёт о тестировании содержит битые ссылки

Когда прямое удаление оправдано: выбор сценария

Прямое удаление уместно в ограниченном круге задач: очистка тестовой или учебной базы, удаление мусорных записей после ошибочной загрузки, чистка дублей в копии базы перед повторным обменом, удаление объектов, только что созданных и гарантированно нигде не использованных. Во всех этих случаях контроль ссылок либо не нужен, либо выполнен вручную заранее.

Если объект существует давно, участвовал в проведённых документах, попадал в отчёты или передавался в другие системы — единственно правильный вариант стандартный: пометка на удаление, обработка удаления помеченных, разбор найденных ссылок. Это дольше, но сохраняет целостность учёта.

Маршрут решения

Как выбрать действие

Объект только что создан и точно нигде не используетсяУдалите напрямую через Shift+Delete
Объект появился из ошибочного обмена или загрузки в копии базыУдалите прямо или обработкой, предварительно сделав резервную копию
Объект используется в проведённых документах или старых периодахТолько пометка на удаление и штатная обработка с контролем ссылок
Нужно удалить много объектов в рабочей базеИспользуйте групповую пометку и обработку «Удаление помеченных объектов», а не пакетное прямое удаление

Типичные ошибки при прямом удалении

Самая частая ошибка — удаление объекта без проверки ссылок «на глазок». Даже если в списке документов объект не виден, он может использоваться в движениях регистров, в дополнительных реквизитах, в непроведённых черновиках и в записях обмена. Итог — битые ссылки, которые всплывают через недели в самый неподходящий момент.

Вторая распространённая ошибка — прямое удаление документа без отмены проведения с последующим ручным разбором регистров. Третья — выдача права интерактивного удаления широкому кругу пользователей «чтобы не мешали пометки», после чего учётные данные начинают исчезать без следов. Наконец, многие забывают про резервную копию: прямое удаление необратимо, и единственный способ вернуть объект — восстановление из бэкапа.

Типичные ошибки
01
Удаление без поиска ссылок — в базе остаются записи «Объект не найден», ломающие отчёты и обмены
02
Удаление проведённого документа без отмены проведения — в регистрах остаются «осиротевшие» движения
03
Работа без резервной копии — восстановить объект после прямого удаления штатными средствами невозможно
04
Выдача права интерактивного удаления всем пользователям — потеря данных без возможности отследить, кто и что удалил

FAQ: частые вопросы о прямом удалении в 1С

Почему Shift+Delete не работает — объект только помечается?

Скорее всего, у вашего пользователя нет права «Интерактивное удаление» на этот вид объектов. Проверьте роль в конфигураторе или профиль группы доступа в режиме предприятия. Также в некоторых конфигурациях прямое удаление программно заблокировано в обработчиках формы.

Можно ли восстановить объект, удалённый без пометки?

Штатными средствами — нет. Прямое удаление стирает запись из базы сразу. Восстановление возможно только из резервной копии или, в клиент-серверных базах, средствами СУБД из журналов, если это предусмотрено настройками сервера.

Чем отличаются права «Удаление» и «Интерактивное удаление»?

Право «Удаление» разрешает программное стирание объекта методом Удалить() из кода. «Интерактивное удаление» разрешает то же действие из интерфейса — через Shift+Delete. Для прямого удаления вручную нужно второе, для обработок — первое.

Как найти все места, где используется объект, перед удалением?

В конфигураторе используйте «Правка → Поиск ссылок в объектах». В типовых конфигурациях в режиме предприятия часто доступна команда поиска ссылок из формы объекта. Для массовой проверки подходит штатная обработка удаления помеченных объектов — она показывает все найденные ссылки.

Что делать, если после прямого удаления появились «Объект не найден»?

Запустите «Тестирование и исправление» в конфигураторе с проверкой ссылочной целостности — оно покажет все битые ссылки. Дальше либо восстановите объект из резервной копии, либо вручную очистите ссылки в документах и регистрах, где они остались.

Можно ли запретить прямое удаление всем пользователям?

Да. Достаточно снять права «Удаление» и «Интерактивное удаление» во всех ролях, оставив только «Пометка на удаление». Тогда пользователи смогут лишь помечать объекты, а физическое удаление будет выполняться администратором через штатную обработку с контролем ссылок.

Итог

Что важно запомнить

Прямое удаление в 1С выполняется через Shift+Delete или метод Удалить() и требует специальных прав. Оно не проверяет ссылки и необратимо, поэтому применяйте его только к объектам без связей, в тестовых базах или после резервного копирования. В рабочем учёте безопасный путь — пометка на удаление и штатная обработка с контролем ссылочной целостности.