Работа с помеченными на удаление документами в 1С:Предприятие 8.3 — одна из самых частых задач, с которой сталкиваются бухгалтеры, администраторы и программисты. На первый взгляд процедура кажется простой: поставил галочку «Пометка на удаление» — и готово. Но на практике пользователи сталкиваются с массой нюансов: от невозможности окончательного удаления до ошибок при очистке базы. Эта статья поможет разобраться, как правильно и безопасно удалить помеченные документы, избежав типичных проблем.
В отличие от физического удаления (когда запись стирается из базы навсегда), пометка на удаление в 1С 8.3 работает как «мягкое» удаление. Документ остаётся в базе, но перестаёт участвовать в расчётах, отчётах и проводках. Это удобно для восстановления данных, но со временем накапливается «мусор», который замедляет работу системы. Опытные администраторы знают: неконтролируемое накопление помеченных объектов может увеличить размер базы на 30–50% и тормозить регламентные операции.
В этой статье мы рассмотрим все актуальные способы удаления — от ручного через интерфейс до программного с использованием запросов. Особое внимание уделим типичным ошибкам (например, Ошибка блокировки данных или Нарушение ссылочной целостности) и объясним, как их обойти. Если вы администрируете 1С или просто хотите поддерживать базу в чистоте, этот материал станет вашим гидом.
1. Почему документы не удаляются сразу: механизм пометки в 1С 8.3
В 1С:Предприятие нет функции «удалить навсегда» в один клик — и это осознанное решение разработчиков. Пометка на удаление (ПометкаУдаления = Истина) работает как «корзина»: объект исключается из бизнес-логики, но остаётся в базе для возможного восстановления. Такой подход защищает от случайных потерь данных, но требует периодической «уборки».
Что происходит при пометке:
- 📄 Документ исчезает из журналов и отчётов, но остаётся в таблицах базы данных.
- 🔗 Все ссылки на него (в проводках, регистрах, других документах) сохраняются, но игнорируются системой.
- 🗑️ Объект занимает место на диске и может тормозить регламентные операции (например,
Тестирование и исправление).
Главная причина, по которой пользователи не могут окончательно удалить помеченные документы — нарушение ссылочной целостности. Например, если на документ ссылается проводка в регистре бухгалтерии или запись в регистре накопления, 1С заблокирует удаление. В таких случаях требуется предварительная очистка зависимых объектов.
2. Способ 1: Удаление через стандартный интерфейс 1С 8.3
Самый простой метод — использовать встроенные инструменты платформы. Он подходит для небольших баз и единичных документов. Чтобы окончательно удалить помеченные объекты:
- Откройте журнал документов (например,
Продажи → Реализация товаров и услуг). - Включите отображение помеченных объектов: нажмите
Ещё → Показать помеченные на удаление. - Выделите нужные документы (можно использовать
Ctrl+Aдля выделения всех). - Нажмите
Ещё → Удалить помеченные.
Если кнопка Удалить помеченные неактивна, проверьте:
- 🔒 Права пользователя: у вас должна быть роль с правом
АдминистрированиеилиПолные права. - 🔄 Режим работы: в 1С:Предприятие (не в конфигураторе!) и без активных блокировок.
- 📊 Тип документа: некоторые объекты (например,
ОперацииилиПлатежные поручения) требуют предварительной очистки движений.
Убедиться, что нет активных пользователей в базе|Сделать резервную копию (обязательно!)|Проверить права текущего пользователя|Закрыть все открытые формы и отчёты-->
Важно: в некоторых конфигурациях (например, 1С:Бухгалтерия 3.0) для массового удаления требуется запуск регламентного задания Очистка помеченных объектов. Оно доступно в разделе Администрирование → Поддержка и обслуживание → Регламентные операции.
Если документы не удаляются через интерфейс, попробуйте использовать Все функции (Ctrl+Shift+F12) и найдите команду Очистка помеченных объектов в дереве объектов.
3. Способ 2: Программное удаление с помощью запросов
Для опытных пользователей и администраторов удобнее работать напрямую с базой через язык запросов 1С. Этот метод позволяет гибко управлять удалением, например, очищать только документы определённого типа или за конкретный период.
Пример запроса для удаления всех помеченных документов типа РеализацияТоваровУслуг:
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| РеализацияТоваровУслуг.Ссылка КАК Ссылка
|ИЗ
| Документ.РеализацияТоваровУслуг КАК РеализацияТоваровУслуг
|ГДЕ
| РеализацияТоваровУслуг.ПометкаУдаления = ИСТИНА";
Результат = Запрос.Выполнить();
Выборка = Результат.Выбрать();
Пока Выборка.Следующий() Цикл
Объект = Выборка.Ссылка.ПолучитьОбъект();
Объект.Удалить();
КонецЦикла;
Преимущества программного подхода:
- 🎯 Точный контроль: можно фильтровать по дате, контрагенту, сумме и другим параметрам.
- 📈 Массовая обработка: подходит для баз с тысячами помеченных документов.
- 🔧 Автоматизация: запрос можно встроить в регламентное задание или внешнюю обработку.
Ограничения:
- ⚠️ Требует знания языка 1С и структуры базы.
- ⚠️ Опасно для новичков: ошибка в запросе может удалить не те данные.
- ⚠️ Не работает, если на документы есть ссылки в регистрах (нужна предварительная очистка движений).
Как очистить движения перед удалением документов
Для документов, которые формируют движения (например, реализации или поступления), перед удалением нужно очистить записи в регистрах. Сделать это можно с помощью метода ОчиститьДвижения():
Док = Документы.РеализацияТоваровУслуг.НайтиПоНомеру("РТ-000123");
Док.ОчиститьДвижения();
Док.Удалить();
Если не очистить движения, система выдаст ошибку Нельзя удалить документ, по которому есть движения.
4. Способ 3: Использование обработки «Удаление помеченных объектов»
Для упрощения массового удаления в 1С существует стандартная обработка УдалениеПомеченныхОбъектов.epf. Она входит в комплект поставки платформы и позволяет гибко настраивать очистку.
Как использовать:
- Откройте конфигуратор (
1Cv8.exe /Config). - Перейдите в
Файл → Открыть → Выбрать файл обработки(обычно находится в каталогеC:\Program Files\1cv8\8.3.{версия}\bin\1cv8\templates\Русифицированные\УдалениеПомеченныхОбъектов.epf). - Запустите обработку в режиме 1С:Предприятие.
- В окне обработки выберите типы объектов для очистки (например,
Документы,Справочники). - Нажмите
Выполнить.
Преимущества обработки:
| Функция | Описание |
|---|---|
| Фильтрация по типам | Можно выбрать только документы, справочники или регистры |
| Предварительный просмотр | Показывает список объектов, которые будут удалены |
| Лог операций | Сохраняет отчёт об удалённых объектах и ошибках |
| Работа с большими базами | Оптимизирована для обработки тысяч записей |
Обратите внимание: обработка не удаляет объекты, на которые есть ссылки в других таблицах. Для таких случаев требуется ручная доработка или использование Тестирования и исправления.
Обработка УдалениеПомеченныхОбъектов.epf — самый безопасный способ массовой очистки, так как позволяет предварительно просмотреть список удаляемых объектов и сохранить лог.
5. Типичные ошибки и как их избежать
При удалении помеченных документов пользователи часто сталкиваются с ошибками. Рассмотрим самые распространённые и способы их решения.
Ошибка 1: «Объект заблокирован другим пользователем»
Причина: в базе работают другие пользователи, или документ заблокирован регламентным заданием.
⚠️ Внимание: Никогда не удаляйте помеченные объекты в рабочее время — это может прервать работу коллег. Оптимальное время для очистки: ночью или в выходные, когда в базе нет пользователей.
Решение:
- 🔄 Перезапустите 1С в монопольном режиме (
1Cv8.exe /Monopoly). - 🚫 Отключите всех пользователей через
Администрирование → Активные пользователи. - ⏳ Подождите 10–15 минут — иногда блокировки снимаются автоматически.
Ошибка 2: «Нарушение ссылочной целостности»
Причина: на документ ссылаются другие объекты (проводки, регистры, задачи).
Решение:
- 🔍 Используйте отчёт
Анализ ссылочной целостности(доступен в 1С:Бухгалтерия черезОтчёты → Стандартные → Анализ ссылочной целостности). - 🧹 Очистите движения документа (см. спойлер в разделе 3).
- 🔄 Попробуйте удалить сначала зависимые объекты (например, задачи или комментарии).
Ошибка 3: «Недостаточно прав»
Причина: у текущего пользователя нет роли с правом Администрирование или Удаление помеченных объектов.
Решение:
- 👤 Зайдите под пользователем с полными правами (например,
Администратор). - 🔧 Настройте права в конфигураторе:
Администрирование → Пользователи → Настройка прав. - 📜 Добавьте роль
Администрирование системыили создайте новую роль с правомУдалениеПомеченныхОбъектов.
6. Как автоматизировать удаление: регламентные задания и скрипты
Ручная очистка помеченных документов отнимает время, особенно в крупных базах. Чтобы упростить процесс, можно настроить автоматическое удаление с помощью регламентных заданий или внешних обработок.
Вариант 1: Регламентное задание в 1С
В большинстве типовых конфигураций (например, 1С:Бухгалтерия 3.0 или 1С:Управление торговлей 11) есть встроенное задание Очистка помеченных объектов. Чтобы его настроить:
- Перейдите в
Администрирование → Поддержка и обслуживание → Регламентные операции. - Найдите задание
Очистка помеченных объектови нажмитеНастроить расписание. - Укажите периодичность (например,
Ежемесячнов последнюю пятницу). - Сохраните настройки.
Вариант 2: Внешняя обработка с расписанием
Для гибкой настройки можно создать внешнюю обработку на языке 1С и запускать её по расписанию через Планировщик заданий Windows или cron (для Linux-серверов). Пример кода для обработки:
Процедура ОчиститьПомеченныеДокументы() Экспорт
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ РАЗРЕШЕННЫЕ
| Документ.Ссылка КАК Ссылка
|ИЗ
| Документ КАК Документ
|ГДЕ
| Документ.ПометкаУдаления = ИСТИНА
| И Документ.ЭтоГруппа() = ЛОЖЬ";
Результат = Запрос.Выполнить();
Выборка = Результат.Выбрать();
Пока Выборка.Следующий() Цикл
Попытка
Объект = Выборка.Ссылка.ПолучитьОбъект();
Объект.Удалить();
Исключение
ЗаписатьЛог(ОписаниеОшибки());
КонецПопытки;
КонецЦикла;
КонецПроцедуры
Чтобы запустить обработку по расписанию:
- 📅 Создайте задачу в
Планировщике заданий Windowsс командой:
"C:\Program Files\1cv8\8.3.22.1234\bin\1cv8.exe" DESIGNER /S "ИмяСервера\ИмяБазы" /N "Администратор" /P "Пароль" /Execute "Путь\к\обработке.epf"
- ⏰ Установите триггер (например, еженедельно в 2:00 ночи).
- 📤 Настройте отправку лога на email (через
ЗаписатьЛог()иПослатьПочту()).
7. Когда удалять не нужно: альтернативные подходы
Не всегда окончательное удаление помеченных документов оправдано. В некоторых случаях лучше использовать альтернативные методы, которые сохранят историю данных и не нарушат ссылочную целостность.
Альтернатива 1: Архивация данных
Вместо удаления можно перенести устаревшие документы в архивную базу. Это актуально для:
- 📂 Документов старше 3–5 лет (по требованиям налогового законодательства).
- 📊 Данных, которые могут понадобиться для анализа (например, история продаж).
- 🔒 Объектов, на которые ссылаются другие системы (например, 1С:Зарплата и 1С:Бухгалтерия).
Для архивации используйте:
- Встроенную обработку
Выгрузка данных в XML. - Специализированные решения (например, 1С:Архив или StoreHouse).
- Ручной перенос в отдельную базу с помощью
Консоли задач.
Альтернатива 2: Сжатие базы
Если цель — уменьшить размер файла базы, вместо удаления можно выполнить Тестирование и исправление с опцией Сжать таблицы. Это удалит физические пробелы в файле 1Cv8.1CD, но сохранит все помеченные объекты.
Как запустить:
- Закройте всех пользователей.
- Откройте базу в конфигураторе (
1Cv8.exe /Config). - Выберите
Администрирование → Тестирование и исправление. - Отметьте галочки
Проверять логическую целостностьиСжать таблицы. - Нажмите
Выполнить.
Альтернатива 3: Перенос в историческую базу
Для крупных предприятий актуально ведение двух баз:
- 📈 Рабочая база — только актуальные данные (текущий год + 1–2 прошлых).
- 📚 Историческая база — архив документов за предыдущие периоды.
Такой подход снижает нагрузку на рабочую базу и ускоряет формирование отчётов.
8. FAQ: Ответы на частые вопросы
Можно ли восстановить документ после окончательного удаления?
Нет. После выполнения команды Удалить() или очистки через обработку УдалениеПомеченныхОбъектов.epf объект физически удаляется из базы. Единственный способ восстановления — восстановление из резервной копии (если она была сделана до удаления).
Если документ был просто помечен на удаление (галочка ПометкаУдаления = Истина), его можно восстановить:
- Откройте журнал документов.
- Включите отображение помеченных объектов (
Ещё → Показать помеченные на удаление). - Снимите галочку
Пометка на удалениев карточке документа.
Почему после удаления помеченных документов база не уменьшилась в размере?
Причина в том, что 1С не сокращает физический размер файла базы автоматически. Даже после удаления объектов файл 1Cv8.1CD остаётся прежнего размера, но внутри него появляются «пустые» области.
Чтобы уменьшить размер файла, выполните:
Тестирование и исправлениес опциейСжать таблицы(в конфигураторе).- Выгрузку/загрузку базы через
dt/cf(для небольших баз). - Использование утилиты
chdbfl.exe(для файлового варианта 1С).
Пример команды для chdbfl.exe:
chdbfl.exe C:\Bases\MyBase /Compact
Как удалить помеченные документы в облачной версии 1С (1С:Fresh)?
В 1С:Fresh нет прямого доступа к базе, поэтому стандартные методы (обработки, запросы) не работают. Чтобы очистить помеченные объекты:
- Обратитесь в поддержку 1С:Fresh с запросом на очистку.
- Используйте встроенные инструменты (если доступны в вашем тарифе):
- 📅
Администрирование → Регламентные операции → Очистка помеченных объектов. - 🗑️
Настройки → Обслуживание → Архивация и очистка данных.
Обратите внимание: в облаке некоторые операции могут быть ограничены или платными (например, архивация данных старше 3 лет).
Можно ли удалить помеченные документы избирательно (например, только за 2020 год)?
Да. Для этого используйте:
- Стандартный фильтр в журнале документов (установите период и отметьте
Показать помеченные на удаление). - Запрос с условием по дате:
Запрос.Текст =
"ВЫБРАТЬ
| Документ.РеализацияТоваровУслуг.Ссылка КАК Ссылка
|ИЗ
| Документ.РеализацияТоваровУслуг КАК Документ
|ГДЕ
| Документ.ПометкаУдаления = ИСТИНА
| И Документ.Дата МЕЖДУ &НачалоПериода И &КонецПериода";
- Обработку
УдалениеПомеченныхОбъектов.epfс предварительным отбором по дате.
Для массовой очистки по периоду удобнее использовать скрипт с параметрами:
Процедура УдалитьПомеченныеПоПериоду(Начало, Конец)
Запрос = Новый Запрос;
Запрос.Параметры.Вставить("Начало", Начало);
Запрос.Параметры.Вставить("Конец", Конец);
// ... остальной код аналогичен примеру выше
КонецПроцедуры
Что делать, если при удалении появляется ошибка «Документ участвует в последовательности»?
Эта ошибка возникает, если документ входит в последовательность проводок (например, в бухгалтерском или налоговом учёте). Чтобы её обойти:
- Проверьте, какие проводки зависят от документа:
ВЫБРАТЬ
РегистрБухгалтерииХоз.Период,
РегистрБухгалтерииХоз.Регистратор КАК Документ,
РегистрБухгалтерииХоз.СчетДт,
РегистрБухгалтерииХоз.СчетКт
ИЗ
РегистрБухгалтерии.Хозрасчетный КАК РегистрБухгалтерииХоз
ГДЕ
РегистрБухгалтерииХоз.Регистратор = &СсылкаНаДокумент
- Удалите или перенастройте зависимые проводки вручную.
- Используйте обработку
ПереносДокументов, чтобы «пересоздать» последовательность без проблемного документа. - В крайнем случае обратитесь к программисту для правки движений через
Прямые запросы к SQL(только для опытных специалистов!).
⚠️ Внимание: Изменение проводок может нарушить бухгалтерский баланс. Перед правкой обязательно проконсультируйтесь с главбухом и сделайте резервную копию.