Работа с 1С: Управление Торговлей (УТ) рано или поздно сталкивает пользователей с необходимостью очистки базы от ненужных данных. Одной из самых распространённых задач становится удаление документов, помеченных на удаление — тех записей, которые были отмечены как устаревшие или ошибочные, но физически ещё хранятся в системе. Эти "призрачные" документы занимают место в базе, замедляют работу отчётов и могут искажать аналитику.
В отличие от обычного удаления (когда документ исчезает сразу), помеченные объекты остаются в базе до специальной процедуры очистки. Это сделано для безопасности: у пользователей есть шанс восстановить данные, если удаление было ошибочным. Однако со временем таких записей накапливается сотни, и их нужно физически удалять. В этой статье разберём все способы — от ручного удаления через интерфейс до автоматических скриптов для администраторов.
Особое внимание уделим нюансам: почему некоторые документы не удаляются даже после пометки, как избежать ошибок при очистке связанных данных (например, проводок или движений по регистрам), и что делать, если права доступа не позволяют выполнить операцию. Инструкции актуальны для 1С:УТ 10.3, 11.x и 1С:ERP 2.5 (с учётом особенностей конфигураций).
Почему документы помечаются на удаление, а не удаляются сразу?
Механизм пометки на удаление в 1С — это компромисс между безопасностью данных и производительностью системы. Вот ключевые причины такого подхода:
- 🔄 Возможность отмены: Пользователь может передумать или обнаружить, что документ всё же нужен. Пока физического удаления не произошло, восстановление занимает секунды.
- 📊 Целостность отчётности: Некоторые документы (например, закрывающие месяц) нельзя удалять "на лету" — это нарушит бухгалтерский баланс. Пометка позволяет отложить очистку до безопасного момента.
- 🔗 Связанные объекты: Документы часто ссылаются друг на друга (например, реализация на основании заказа). Удаление "родительского" документа без проверки зависимостей может сломать логику работы.
- 🛡️ Защита от случайных действий: В многопользовательских базах риск ошибочного удаления высок. Двухэтапная процедура (пометка → физическое удаление) снижает этот риск.
Однако у такого механизма есть и обратная сторона: помеченные документы продолжают:
- 📉 Замедлять формирование отчётов (особенно если их тысячи).
- 🔍 Путать пользователей при поиске актуальных данных.
- 💾 Занимать место в базе и резервных копиях.
Поэтому регулярная очистка — обязательная процедура для поддержания здоровья системы. Но перед тем как приступить, важно понять, какие именно документы можно удалять без риска.
Какие документы можно удалять, а какие — нет?
Не все помеченные на удаление документы безопасно очищать. Вот критерии, которые помогут избежать ошибок:
| Тип документа | Можно удалять? | Риски |
|---|---|---|
| Черновики заказов/накладных | ✅ Да | Нет движений по регистрам |
| Оприходования/списания (без проводок) | ✅ Да | Проверьте, что нет связанных финансовых операций |
| Реализации/поступления с проводками | ⚠️ Условно | Требуется перепроведение зависимых документов |
| Закрытие месяца/периода | ❌ Нет | Нарушит бухгалтерскую отчётность |
| Документы с внешними ссылками (например, из CRM) | ❌ Нет | Может сломать интеграцию |
Критический момент: если документ проводился (создавал движения по регистрам накопления, бухгалтерским счётам или расчётам), его удаление может нарушить:
- 📈 Остатки товаров на складах.
- 💰 Финансовые результаты в отчётности.
- 📑 Связи с другими документами (например, оплата по счёту).
Перед массовым удалением всегда проверяйте:
- Есть ли у документа
Проводки (Дт/Кт)в бухгалтерском учёте? - Ссылаются ли на него другие объекты (кнопка
Перейти → Ссылки на этот документ)? - Не входит ли он в закрытые периоды (настройки учёта)?
Используйте отчёт "Анализ учёта" (раздел "Отчёты → Стандартные → Анализ учёта") для проверки влияния документа на остатки. Если после удаления пометки остатки не изменились — объект можно безопасно очищать.
Способ 1: Ручное удаление через интерфейс 1С (для пользователей)
Если у вас есть права на удаление документов, самый простой способ — использовать стандартный интерфейс 1С:Управление Торговлей. Этот метод подходит для очистки небольшого количества записей (до 50–100 документов).
Пошаговая инструкция:
- Откройте список документов, которые нужно очистить (например,
Продажи → Реализация товаров и услуг). - Включите отображение помеченных на удаление объектов:
Все действия → Показать помеченные на удаление - Выделите нужные документы (можно использовать
Shift+кликдля множественного выбора). - Нажмите
Удалить помеченные(илиЕщё → Удалить помеченныев новых версиях). - Подтвердите действие в диалоговом окне.
Ограничения метода:
- 🚫 Не работает для документов с движениями (будет ошибка "Нельзя удалить документ, по которому есть движения").
- 🐢 Медленно при большом количестве записей (более 100).
- 🔒 Требуются права на удаление (обычно есть у администраторов или главбухов).
Проверьте права доступа (раздел "Администрирование → Пользователи")
Создайте резервную копию базы (обязательно!)
Убедитесь, что документы не используются в отчётности
Закройте все открытые сессии других пользователей-->
Если при попытке удаления появляется ошибка "Документ используется в регистре...", значит, объект нельзя очистить без предварительной обработки. В этом случае поможет регламентное задание или обработка для принудительного удаления (см. следующие разделы).
Способ 2: Регламентное задание "Очистка помеченных объектов"
Для автоматической очистки в 1С:УТ предусмотрено регламентное задание Очистка помеченных объектов. Оно запускается по расписанию (например, раз в неделю) и удаляет все помеченные документы, которые не имеют зависимостей.
Как настроить:
- Перейдите в
Администрирование → Регламентные задания. - Найдите задание
Очистка помеченных объектов(если его нет — создайте новое с типомОчисткаПомеченныхОбъектов). - Установите расписание (рекомендуется вне рабочих часов, например, в 2:00 ночи).
- В настройках задания укажите:
Удалять объекты старше (дней): 30Максимальное количество объектов за запуск: 1000
- Сохраните и запустите вручную для теста (кнопка
Выполнить сейчас).
Преимущества метода:
- ⏰ Работает автоматически без участия пользователя.
- 🔧 Можно настроить фильтры (например, очищать только документы старше 30 дней).
- 📊 Ведётся журнал выполнения (проверяйте его на ошибки!).
Что делать если регламентное задание зависает?
Если задание "застревает" на одном документе, причины могут быть следующие:
1. Блокировка базы — проверьте активные сессии в "Администрирование → Активные пользователи".
2. Слишком большой объём данных — разбейте очистку на части (например, по 500 документов за запуск).
3. Повреждение данных — запустите тестирование и исправление базы (Администрирование → Тестирование и исправление).
Важно: регламентное задание не удаляет документы, по которым есть движения в регистрах. Для них потребуется предварительное снятие проводок (об этом — в следующем разделе).
Способ 3: Принудительное удаление документов с движениями
Если документ проводился (создавал движения по регистрам), его нельзя удалить стандартными методами. В этом случае нужно:
- Снять проводки (отменить движения).
- Удалить документ.
Для этого есть два пути:
Вариант А: Ручное снятие проводок
Подходит для единичных документов:
- Откройте документ (например, реализацию).
- Нажмите
Ещё → Снять проводки(илиДействия → Отменить проведениев старых версиях). - После снятия проводок документ можно удалить стандартным способом.
Вариант Б: Обработка для массового снятия проводок
Для пакетной обработки используйте внешнюю обработку (например, УниверсальнаяОчисткаПомеченных.epf). Алгоритм:
- Скачайте обработку с сайта 1С-ИТС или форумов (например, Инфостарт).
- Откройте её в 1С через
Файл → Открыть → Выбрать файл обработки. - Укажите параметры:
Тип документов: РеализацияТоваровУслугДата начала: 01.01.2023
Снимать проводки: Да
Удалять после снятия: Да
- Запустите обработку и дождитесь завершения.
Внимание: принудительное удаление документов с движениями может нарушить учёт! Перед массовой очисткой обязательно сверьте остатки товаров и денежных средств до и после операции.
Если после удаления документов с проводками остатки в отчётах изменились — необходимо восстановить удалённые объекты и перепровести связанные операции.
Способ 4: Удаление через SQL-запрос (для администраторов)
Для опытных администраторов баз данных есть способ очистки прямо через SQL. Это самый быстрый метод для массового удаления, но он требует осторожности: ошибка в запросе может повредить базу.
Алгоритм:
- Создайте резервную копию базы (
1Cv8.1CDфайл). - Подключитесь к SQL-серверу через Microsoft SQL Server Management Studio или аналоги.
- Выполните запрос для поиска помеченных документов (пример для реализаций):
SELECTТ1.Sclad_Reference AS Документ,
Т1.Sclad_Date AS Дата
FROM
dbo._Document169 AS Т1 -- 169 - номер типа документа "РеализацияТоваровУслуг"
WHERE
Т1._Marked = 1 -- Пометка на удаление
AND Т1._Posted = 0 -- Не проведён (без движений)
- Для удаления используйте запрос (только для НЕпроводимых документов!):
DELETE FROM dbo._Document169 WHERE _Marked = 1 AND _Posted = 0
⚠️ Внимание:
Не удаляйте через SQL документы с
_Posted = 1(проводимые)! Это приведёт к расхождению данных в регистрах. Для таких объектов сначала снимайте проводки через 1С, затем удаляйте.
Также учитывайте:
- 🔢 Номера типов документов (
169в примере) могут отличаться в разных конфигурациях. Уточняйте их в таблицеdbo._DocumentTypes. - 🔄 После SQL-очистки рекомендуется выполнить тестирование базы (
Администрирование → Тестирование и исправление).
Ошибки при удалении и как их исправить
При очистке помеченных документов пользователи часто сталкиваются с ошибками. Разберём самые распространённые и способы их решения:
| Ошибка | Причина | Решение |
|---|---|---|
| "Документ используется в регистре..." | Есть движения по регистрам накопления/бухгалтерии | Снять проводки (см. Способ 3) |
| "Недостаточно прав" | У пользователя нет роли "Администратор" или "Полные права" | Обратиться к администратору или временно повысить права |
| "Объект заблокирован другим пользователем" | Документ открыт в другой сессии | Закрыть все сессии через "Активные пользователи" |
| "Нельзя удалить документ за закрытый период" | Дата документа входит в закрытый месяц/квартал | Перенести дату документа или открыть период |
Если ошибка не типичная, проверьте журнал регистрации (Администрирование → Журнал регистрации) — там может быть подробное описание проблемы. Например, ошибка "Нарушение ссылочной целостности" означает, что на документ ссылается другой объект (найдите его через Все действия → Ссылки на этот документ).
Для сложных случаев (например, когда документ "завис" в состоянии удаления) используйте утилиту chdbfl.exe из комплекта 1С:
- Закройте все сессии 1С.
- Запустите командную строку от имени администратора.
- Выполните команду:
chdbfl.exe "Путь_к_базе.1CD" -ibcheck -ibrebuild
FAQ: Частые вопросы по удалению документов в 1С УТ
Можно ли восстановить документ после физического удаления?
Нет, после физического удаления (не путайте с пометкой!) восстановить документ можно только из резервной копии базы. Поэтому всегда делайте бэкап перед массовой очисткой.
Почему после удаления помеченных документов база не уменьшилась в размере?
1С использует механизм усечённых таблиц — место в базе не освобождается сразу, а помечается как доступное для новых данных. Чтобы реально уменьшить файл, выполните операцию Сжать базу данных в конфигураторе (Администрирование → Выгрузить/Загрузить данные → Сжать).
Как удалить помеченные документы в облачной версии 1С?
В 1С:Fresh и других облачных решениях нет прямого доступа к SQL и регламентным заданиям. Используйте:
- Стандартный интерфейс (раздел
Все функции → Очистка данных). - Обработки из каталога решений 1С (доступны через
Все функции → Дополнительные отчёты и обработки). - Обращение в поддержку 1С (если нужна массовая очистка).
Сколько времени занимает очистка 10 000 помеченных документов?
Зависит от конфигурации и "железа":
- На локальном сервере с SSD: ~10–30 минут.
- В облаке или на HDD: до 2–3 часов.
- При использовании SQL-запросов: 1–5 минут (но рискованно!).
Рекомендуется разбивать очистку на партии по 1000–2000 документов.
Можно ли настроить автоматическое удаление документов старше года?
Да, для этого:
- Создайте регламентное задание
Очистка помеченных объектов. - В настройках укажите фильтр по дате (например,
Дата < ТекущаяДата() - 365). - Запускайте раз в месяц.
Для документов с движениями предварительно настройте задание на снятие проводок.