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

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

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

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

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

Режим непосредственного удаления доступен не всегда. В типовых конфигурациях он может быть заблокирован правами пользователя, настройками режима совместимости или самой конфигурацией. Кроме того, в управляемых формах интерактивное удаление часто полностью отключено — разработчики намеренно оставляют только пометку, чтобы защитить учётные данные от случайной потери.

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

Чем непосредственное удаление отличается от пометки на удаление

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

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

Условия, при которых непосредственное удаление возможно

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

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

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

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

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

В управляемых формах типовых конфигураций (1С:Бухгалтерия, Управление торговлей, ERP) этот способ обычно недоступен: команда удаления либо отсутствует в меню «Ещё», либо выдаёт сообщение о запрете интерактивного удаления. Это осознанное решение разработчиков, а не неисправность.

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

Способ 2: пометка и удаление через «Удаление помеченных объектов»

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

Обработка работает в двух режимах: автоматическом (удаляются все помеченные объекты, на которые нет ссылок) и выборочном (можно отметить конкретные объекты). Если на документ есть ссылки, программа покажет их список — тогда нужно либо очистить ссылки вручную, либо удалить связанные объекты, либо отменить удаление.

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

Способ 3: программное удаление через метод Удалить()

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

bsl
ДокументОбъект = Документы.РеализацияТоваровУслуг.НайтиПоНомеру("000000001", ТекущаяДатаСеанса()).ПолучитьОбъект();
ДокументОбъект.Удалить(); // физическое удаление без контроля ссылок

Программное удаление массовых пачек документов лучше выполнять в транзакции с предварительной проверкой ссылок через функцию НайтиПоСсылкам(). Это позволяет сначала увидеть, какие объекты ссылаются на удаляемые документы, и только потом принимать решение.

Проверка результата и поиск битых ссылок

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

Тестирование и исправление запускается только в монопольном режиме и только после резервной копии. Режим «Удалять объект» при обнаружении битой ссылки удалит записи со ссылками, режим «Очищать ссылки» заменит их на пустые — выбирайте осознанно, потому что оба варианта меняют данные.

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

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

Документ в списке
Норма

Документ отсутствует в журнале и не находится поиском

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

Документ виден, но не открывается — удаление не завершено

Связанные объекты
Норма

В связанных документах и регистрах нет ссылок на удалённый объект

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

В полях отображается «Объект не найден»

Отчёты за период
Норма

Обороты и итоги соответствуют ожиданиям после удаления

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

Суммы изменились непредсказуемо — вероятно, удалён проведённый документ

Типичные ошибки и ограничения

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

Вторая ошибка — попытка удалить документ, участвующий в обмене данными (РИБ, обмен с сайтом, синхронизация между конфигурациями). В узле-корреспонденте документ останется, и при следующем обмене он может вернуться обратно или вызвать коллизию. Удаление в распределённых базах выполняется по отдельной методике с регистрацией удаления на всех узлах.

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

Типичные ошибки
01
Удаление проведённого документа напрямую — искажаются итоги закрытого периода
02
Удаление без резервной копии — при ошибке данные не восстановить
03
Удаление в базе с обменами — документ возвращается из узла-корреспондента или возникает коллизия
04
Игнорирование битых ссылок — отчёты и обмены начинают работать с ошибками
05
Попытка обойти дату запрета редактирования — нарушение учётной дисциплины

Когда непосредственное удаление оправдано, а когда нет

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

Сравнение способов удаления

Shift+Delete (интерактивное удаление)

Быстро, но без контроля ссылок; доступно только если разрешено конфигурацией и правами

Пометка + «Удаление помеченных объектов»

Штатный безопасный путь с контролем ссылочной целостности; требует монопольного режима

Программно методом Удалить()

Гибко для массовой очистки, но вся ответственность за проверки лежит на разработчике

Итог

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

Непосредственное удаление стирает документ из базы без проверки ссылок и без возможности восстановления. Перед удалением делайте резервную копию, отменяйте проведение, проверяйте связанные объекты и дату запрета. В рабочих базах предпочтителен штатный механизм через пометку и обработку «Удаление помеченных объектов».

Частые вопросы

Почему Shift+Delete не удаляет документ в 1С:Бухгалтерии?

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

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

Штатными средствами — нет. Восстановление возможно только из резервной копии базы или из узла распределённой базы, если документ там ещё существует. Именно поэтому резервная копия перед удалением обязательна.

Что делать, если обработка не удаляет документ из-за ссылок?

Обработка покажет список объектов, ссылающихся на документ. Откройте каждый из них и либо очистите поле со ссылкой, либо удалите связанный объект, либо отмените удаление документа, если ссылка нужна для учёта. После разрешения всех ссылок повторите удаление.

Нужен ли монопольный режим для удаления документов?

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

Как массово удалить ошибочно загруженные документы?

Пометьте их на удаление через групповое изменение реквизитов (обработка «Групповое изменение реквизитов» умеет устанавливать пометку), затем выполните «Удаление помеченных объектов». Программное удаление напрямую используйте только в тестовых базах или с собственной проверкой ссылок.

Опасно ли удалять документы из закрытого периода?

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