Удаление документов в 1С:Предприятие обычно не вызывает проблем — достаточно нажать кнопку «Удалить» в форме документа или через журнал. Но что делать, если система выдает ошибку «Документ заблокирован», «Нет прав на удаление» или просто игнорирует команду? Такие ситуации возникают из-за блокировок транзакций, прав доступа, ссылочной целостности или ошибок в базе данных.
В этой статье мы разберем 5 рабочих способов принудительного удаления документов в 1С 8.3 и 8.2, включая методы через Конфигуратор, прямые SQL-запросы, Журнал регистрации и даже ручное редактирование таблиц. Каждый метод проиллюстрирован пошаговыми инструкциями с учетом типичных ошибок и ограничений платформы. Вы узнаете, как обойти блокировки, восстановить целостность данных и избежать типичных последствий — от «битых» ссылок до нарушения бухгалтерских итогов.
⚠️ Предупреждение: Принудительное удаление может нарушить целостность базы, особенно если документ участвует в расчетах (например, Реализация товаров или Поступление денежных средств). Перед началом обязательно сделайте резервную копию базы через Администрирование → Выгрузить информационную базу.
1. Удаление через Конфигуратор (метод для администраторов)
Если документ не удаляется в пользовательском режиме, первый шаг — попробовать сделать это через Конфигуратор. Этот метод подходит для документов, заблокированных транзакциями или сбоями сеансов.
Инструкция:
- Закройте все сеансы 1С:Предприятия (включая фоновые задачи).
- Запустите базу в режиме
Конфигуратор(через ярлык или команду1cv8 /F"путь_к_базе" /NИмяПользователя /PПароль). - Откройте меню
Файл → Открыть → Режим 1С:Предприятие(или нажмитеF5). - Найдите проблемный документ через стандартный интерфейс и попробуйте удалить его повторно.
Если документ по-прежнему не удаляется, переходите к следующему способу.
Закрыть все сеансы 1С (включая фоновые)
Сделать резервную копию базы
Запустить Конфигуратор от имени администратора
Проверить права пользователя на удаление-->
⚠️ Внимание: В некоторых конфигурациях (например, 1С:ERP или 1С:УТ 11) удаление через Конфигуратор может быть заблокировано на уровне РЛС (ролей). Если кнопка «Удалить» неактивна — потребуется временно выдать пользователю роль Полные права.
2. Прямое удаление через запрос (для опытных пользователей)
Если документ заблокирован на уровне СУБД (например, Microsoft SQL Server или PostgreSQL), можно удалить его напрямую через запрос. Этот метод требует знания структуры базы данных и прав на выполнение DELETE-запросов.
Алгоритм действий:
- Определите имя таблицы документа. Для этого откройте
Конфигуратор → Объекты конфигурации → Документыи найдите нужный тип (например, РеализацияТоваровУслуг). Имя таблицы в базе будет_Document{ИД_типа}. - Подключитесь к базе через SQL Management Studio (для MSSQL) или pgAdmin (для PostgreSQL).
- Выполните запрос для поиска документа по номеру или дате:
SELECT * FROM _Document{ИД_типа} WHERE _Number = 'НомерДокумента' - Удалите запись по идентификатору:
DELETE FROM _Document{ИД_типа} WHERE _IDRRef = 'ИдентификаторЗаписи'
⚠️ Критическое предупреждение: Удаление через SQL не проверяет ссылочную целостность. Если документ используется в регистрах (например, РегистрНакопления.ТоварыНаСкладах), база может потерять актуальность. После удаления обязательно выполните Тестирование и исправление базы через Конфигуратор.
Какие таблицы проверять после удаления?
После прямого удаления документа через SQL необходимо проверить связанные таблицы:
1. _Document{ИД_типа}_VT{НомерВерсии} — версии документа.
2. _InfoRg{ИД_регистра} — регистры сведений, где документ мог быть проводником.
3. _AccumRg{ИД_регистра} — регистры накопления (например, остатки товаров).
4. _Journal{ИД_журнала} — если документ отображался в журнале.
Для восстановления целостности может потребоваться ручное удаление записей или перепроведение документов.
3. Удаление через Журнал регистрации (для документов с блокировками)
Если документ заблокирован транзакцией или сеансом другого пользователя, его можно удалить через Журнал регистрации. Этот метод работает даже для документов, которые «зависнут» в статусе «Помечен на удаление».
Пошаговая инструкция:
- Откройте
Администрирование → Журнал регистрации. - Установите фильтр по дате создания документа и типу события
Удаление. - Найдите запись о попытке удаления вашего документа. Если она есть, но документ не удалился — щелкните по записи правой кнопкой и выберите
Повторить действие. - Если записи нет — создайте новую транзакцию удаления вручную через кнопку
Добавить.
Этот способ часто помогает при сбоях сетевого соединения или «подвисании» сеансов. Однако он не сработает, если блокировка установлена на уровне СУБД (например, deadlock в Microsoft SQL Server).
Через стандартный интерфейс
Через Конфигуратор
Прямой SQL-запрос
Журнал регистрации
Другой способ-->
4. Использование обработки «Поиск и удаление битых ссылок»
Для документов, которые не удаляются из-за битых ссылок (например, если документ ссылается на удаленный элемент справочника), подойдет стандартная обработка «Поиск и удаление битых ссылок». Она входит в состав многих типовых конфигураций (1С:Бухгалтерия 3.0, 1С:УТ 11, 1С:ERP 2.0).
Как пользоваться обработкой:
- Откройте обработку через
Файл → Открыть(файл обычно называетсяПоискИУдалениеБитыхСсылок.epf). - Установите флаги:
- 🔍 Искать битые ссылки в документах
- 🗑️ Удалять документы с битыми ссылками
- 📅 Ограничить датой (укажите диапазон дат создания документа)
⚠️ Внимание: Обработка удаляет документы без возможности восстановления. Перед запуском проверьте, не участвуют ли эти документы в критически важных операциях (например, закрытии месяца в бухгалтерии).
Если обработка не находит ваш документ, попробуйте временно отключить проверку прав доступа. Для этого в Конфигураторе перейдите в Сервис → Параметры → Запуск 1С:Предприятия и снимите флаг Использовать права доступа при запуске. После удаления документа не забудьте вернуть флаг обратно!
5. Ручное удаление через таблицу _1SJOURN (крайний метод)
Если документ «завис» в журнале и не удаляется никакими другими способами, можно попробовать удалить его запись напрямую из системной таблицы _1SJOURN. Этот метод крайне рискованный и должен использоваться только в случае, если другие способы не сработали.
Инструкция для Microsoft SQL Server:
- Подключитесь к базе через SQL Management Studio.
- Найдите идентификатор документа в таблице журнала:
SELECT * FROM _1SJOURN WHERE _Fld210 LIKE '%НомерДокумента%'(где
_Fld210— поле с номером документа; структура может отличаться в зависимости от версии платформы). - Удалите запись по идентификатору:
DELETE FROM _1SJOURN WHERE _IDDoc = 'ИдентификаторЗаписи' - 🔄 Отмена проведения: Снимите пометку проведения (
Действия → Отмена проведения). Это удалит движения документа по регистрам, но сохранит его в базе. - 📂 Перенос в архив: В некоторых конфигурациях (например, 1С:Документооборот) есть механизм архивации документов. Архивный документ не участвует в операциях, но остается в базе для истории.
- 📝 Корректировка движений: Если документ уже проведен, но нужно «убрать» его влияние, создайте Корректировку записей регистров с обратными движениями.
- 🔒 «Документ заблокирован другим пользователем»:
Решение: Найдите блокирующий сеанс через
Администрирование → Активные пользователии принудительно завершите его. В SQL Server можно использовать запрос:KILL {ID_сеанса} - 🚫 «Нет прав на удаление»:
Решение: Временно назначьте пользователю роль
АдминистраторилиПолные прававАдминистрирование → Пользователи. - 🔗 «Нарушение ссылочной целостности»:
Решение: Перед удалением проверьте, не ссылаются ли на документ другие объекты (например, Заказы покупателей или Счета на оплату). Используйте обработку «Поиск ссылок на объект».
| Таблица | Назначение | Риски при удалении |
|---|---|---|
_Document{ИД} |
Хранит сами документы | Нарушение ссылочной целостности |
_1SJOURN |
Журнал документов | Потеря истории изменений |
_InfoRg{ИД} |
Регистры сведений | Неактуальные данные в отчетах |
_AccumRg{ИД} |
Регистры накопления | Расхождение итогов |
⚠️ Предупреждение: Удаление из _1SJOURN может привести к невозможности восстановления документа даже через резервные копии, если они создавались с учетом журнала. Используйте этот метод только если документ не участвует в проводках и его потеря не критична для учета.
SELECT FROM _InfoRg WHERE _Fld{ИД_документа} = 'Идентификатор'
Если запрос возвращает записи — удаление документа приведет к расхождению итогов.-->
6. Альтернативные способы: отмена проведения и перенос в архив
Если удаление документа невозможно или нежелательно (например, из-за его участия в закрытии периода), рассмотрите альтернативные варианты:
Эти методы безопаснее принудительного удаления, так как не нарушают целостность базы. Например, отмена проведения документа Реализация товаров удалит его движения по регистру Товары на складах, но сам документ останется в журнале и при необходимости может быть проведен повторно.
⚠️ Внимание: В конфигурациях с подсистемой БП 3.0 или ERP 2.0 отмена проведения документов за закрытый период может быть заблокирована. В этом случае потребуется временно открыть период через Администрирование → Закрытие периода.
Частые ошибки и как их избежать
При принудительном удалении документов пользователи часто сталкиваются с типичными ошибками. Вот самые распространенные из них и способы их решения:
Еще одна частая проблема — документ удалился, но остался в отчетах. Это происходит, если движения по регистрам не были очищены. В этом случае поможет перепроведение документов за период или использование обработки «Корректировка движений документов».
FAQ: Ответы на частые вопросы
Можно ли удалить документ, если он участвует в закрытии месяца?
Удалять документы, участвующие в закрытии периода (например, Закрытие месяца в 1С:Бухгалтерии), крайне не рекомендуется. Это приведет к расхождению итогов в регистрах бухгалтерии и накопления. Вместо удаления:
- Отмените проведение документа.
- Создайте корректирующий документ (например, Сторно).
- Перезакройте период с учетом изменений.
Как удалить документ, если база повреждена и не открывается?
Если база повреждена и не запускается даже в Конфигураторе, попробуйте:
- Выполнить
Тестирование и исправлениечерезchdbfl.exe(утилита из комплекта 1С). Команда:chdbfl.exe /F"путь_к_базе" /L"лог_файл.txt" /Fix - Если это не помогло — восстановите базу из резервной копии.
- В крайнем случае экспортируйте данные через SQL-запросы в новую базу.
Что делать, если после удаления документа пропали остатки товаров?
Это означает, что документ был проводником в регистре накопления (например, Товары на складах). Чтобы восстановить остатки:
- Проверьте движения документа через отчет «Анализ субконто».
- Если документ был Поступлением — создайте новый документ с теми же данными.
- Если документ был Реализацией — сделайте сторно или корректировку регистров.
- Перепроведите все документы по товару за период.
Можно ли удалить документ из облачной версии 1С (1С:Фреш)?
В 1С:Фреш возможности принудительного удаления ограничены. Вы можете:
- Отменить проведение документа.
- Обратиться в поддержку 1С с запросом на удаление (потребуется обоснование).
- Использовать механизм «Перенос в архив», если он предусмотрен конфигурацией.
Прямой доступ к SQL в облаке запрещен, поэтому методы с запросами не работают.
Как удалить документ, если он помечен на удаление, но не удаляется?
Если документ «завис» в статусе Помечен на удаление, попробуйте:
- Запустить
Тестирование и исправлениебазы с флагомРеиндексация таблиц. - Использовать обработку «Очистка пометок удаления» (есть в открытых источниках, например, на Infostart).
- Удалить пометку вручную через
SQL:UPDATE _Document{ИД} SET _Marked = 0 WHERE _IDRRef = 'Идентификатор'