Работа с базой данных в 1С:Зарплата и Управление Персоналом 8.3 часто сопровождается необходимостью удаления устаревших или ошибочных записей. Однако стандартное удаление через интерфейс программы лишь помечает объекты на удаление, не стирая их физически. Это создаёт иллюзию освобождения пространства, тогда как на самом деле данные продолжают занимать место и могут влиять на производительность системы. Особенно актуальна проблема для крупных предприятий, где база содержит тысячи помеченных объектов — от сотрудников до начислений.

В этой статье вы найдёте пошаговые инструкции по полному удалению помеченных объектов в 1С 8.3 ЗУП, включая ручные и автоматизированные методы. Мы разберём нюансы работы с разными типами данных (справочники, документы, регистры), предостережём от типичных ошибок и расскажем, как избежать потери критически важной информации. Также вы узнаете, почему удаление через "Операции → Удаление помеченных объектов" не всегда очищает базу полностью, и что делать в таких случаях.

Почему объекты только помечаются на удаление, а не удаляются сразу?

Архитектура 1С:Предприятие 8.3 построена на принципе логического удаления, а не физического. Это означает, что при нажатии кнопки Удалить система не стирает запись из базы данных, а лишь проставляет специальный флаг — ПометкаУдаления = Истина. Такой подход имеет несколько преимуществ:

  • 🔄 Возможность восстановления. Если объект был удалён по ошибке, его можно вернуть без использования резервных копий.
  • 📊 Сохранение истории. Помеченные объекты остаются в отчётах и регистрах, что важно для аудита и анализа данных за прошлые периоды.
  • 🔗 Целостность ссылок. Если объект используется в других документах (например, сотрудник в ведомостях), физическое удаление может нарушить связи.

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

📊 Как часто вы очищаете базу 1С ЗУП от помеченных объектов?
Раз в месяц
Раз в квартал
Раз в год
Никогда не очищал
Только при замедлении работы

Подготовка к удалению: резервное копирование и проверка зависимостей

Прежде чем приступать к очистке, обязательно создайте резервную копию базы. Даже если вы уверены в своих действиях, ошибка при удалении может привести к потере критичных данных — например, истории начислений или кадровых приказов. В 1С 8.3 ЗУП резервное копирование выполняется через:

  • 💾 Администрирование → Обслуживание → Резервное копирование и восстановление
  • 🖥️ Внешние инструменты (например, 1С:Технология автоматизированного резервного копирования или скрипты на SQL для серверных баз).

Также проверьте зависимости объектов. Некоторые помеченные записи могут использоваться в:

  • 📑 Документах (например, сотрудник в ведомости на выплату зарплаты).
  • 📈 Регистрах накопления (остатки по начислениям или удержаниям).
  • 🔗 Справочниках (подчинённые элементы, например, должности в подразделениях).

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

💡

Если в базе используются расширения конфигурации, проверьте, не блокируют ли они удаление некоторых объектов. Отключите расширения временно через Администрирование → Печать и отчёты → Расширения конфигурации.

Способ 1: Стандартное удаление через интерфейс 1С ЗУП

Самый простой метод — использовать встроенную обработку Удаление помеченных объектов. Она доступна по пути:

Операции → Удаление помеченных объектов

Алгоритм действий:

  1. Откройте обработку и нажмите Заполнить — система просканирует базу и покажет все помеченные объекты.
  2. В таблице отметьте галочками типы объектов, которые нужно удалить (например, Справочник.Сотрудники или Документ.ПриказОПриемеНаРаботу).
  3. Нажмите Удалить отмеченные и подтвердите действие.

Однако у этого способа есть ограничения:

  • ❌ Не удаляет объекты, на которые есть ссылки в регистрах (например, начисления зарплаты).
  • ❌ Может зависать при большом количестве помеченных записей (более 10 000).
  • ❌ Не очищает исторические данные в регистрах сведений (например, КадровыеДанныеСотрудников).

Создать резервную копию базы

Закрыть все сеансы пользователей

Проверить свободное место на диске (минимум 20% от размера базы)

Отключить фоновые задачи (например, регламентные операции)-->

Способ 2: Удаление через консоль запросов (для опытных пользователей)

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

Запрос = Новый Запрос;

Запрос.Текст =

"ВЫБРАТЬ

| Сотрудники.Ссылка КАК Ссылка

|ИЗ

| Справочник.Сотрудники КАК Сотрудники

|ГДЕ

| Сотрудники.ПометкаУдаления = ИСТИНА";

Результат = Запрос.Выполнить();

Выборка = Результат.Выбрать();

Пока Выборка.Следующий() Цикл

Объект = Выборка.Ссылка.ПолучитьОбъект();

Объект.Удалить(Истина); // Истина - окончательное удаление

КонецЦикла;

Преимущества метода:

  • ✅ Возможность выборочного удаления (например, только сотрудников, уволенных до 2020 года).
  • ✅ Работает с большими объёмами данных (можно разбивать на пакеты по 1000 записей).
  • ✅ Позволяет обходить блокировки, если они не критичны.

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

Что делать если запрос выдаёт ошибку "Объект используется"?

Если при попытке удаления вы видите сообщение "Объект используется в документе [Номер]", значит, запись нельзя удалить без предварительной очистки ссылок. В этом случае:

1. Найдите документ, блокирующий удаление (через отчёт Анализ использования объектов).

2. Удалите или перенастройте ссылку в документе (например, замените сотрудника на другого).

3. Повторите попытку удаления.

Если документ критичен (например, ведомость на выплату), рассмотрите вариант архивирования вместо удаления.

Способ 3: Использование внешних обработок для массовой очистки

Для автоматизации процесса можно воспользоваться внешними обработками, разработанными сообществом 1С. Популярные решения:

  • 📌 "Универсальная обработка удаления помеченных объектов" (доступна на Инфостарт).
  • 📌 "Очистка базы 1С ЗУП" (включает дополнительные проверки зависимостей).
  • 📌 "Помощник по удалению данных" (с визуальным интерфейсом для выбора типов объектов).

Преимущества внешних обработок:

Критерий Стандартная обработка Внешняя обработка
Скорость работы Медленнее (однопоточно) Быстрее (оптимизированные алгоритмы)
Гибкость настроек Ограничена Расширенные фильтры (по датам, типам объектов)
Логгирование Отсутствует Детальные отчёты об удалённых объектах
Работа с блокировками Прерывается при ошибках Пропускает заблокированные объекты

Пример настройки внешней обработки:

  1. Скачайте файл обработки (например, ОчисткаБазыЗУП.epf).
  2. Откройте его через Файл → Открыть в 1С.
  3. Выберите типы объектов для удаления (например, Справочник.ФизическиеЛица, Документ.КадровыйПриказ).
  4. Укажите период (если нужно удалить только устаревшие записи).
  5. Запустите обработку и дождитесь завершения.
💡

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

Типичные ошибки и как их избежать

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

  • 🚫 "Недостаточно прав". Убедитесь, что ваш пользователь имеет роль Администратор или Полные права в настройках Администрирование → Пользователи.
  • 🚫 "Объект используется в регистре". Используйте отчёт Анализ использования объектов, чтобы найти и удалить зависимости.
  • 🚫 "Зависание при удалении". Разбейте процесс на части (например, удаляйте по 500 записей за раз).
  • 🚫 "Ошибка блокировки". Закройте все сеансы других пользователей через Администрирование → Активные пользователи.

Особенно опасна ошибка "Нарушение ссылочной целостности". Она возникает, если вы пытаетесь удалить объект, на который ссылаются системные регистры (например, РегистрНакопления.ЗарплатаКВыплате). В этом случае:

⚠️ Внимание: Не пытайтесь удалить такие объекты вручную через запрос. Это может привести к невозможности формирования отчётности (например, 6-НДФЛ или РСВ). Вместо этого архивируйте данные или переносите их в отдельную базу.

Как проверить, что объекты удалены полностью?

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

  1. Откройте Операции → Удаление помеченных объектов и нажмите Заполнить. Если список пуст — объекты удалены.
  2. Выполните запрос к базе:
    ВЫБРАТЬ КОЛИЧЕСТВО(*) КАК Количество
    

    ИЗ Справочник.Сотрудники

    ГДЕ ПометкаУдаления = ИСТИНА

    Если результат — 0, помеченных сотрудников нет.

  3. Проверьте размер файла базы (.1CD для файлового варианта или таблицы в SQL Server). После очистки он должен уменьшиться.

Также рекомендуется сформировать тестовые отчёты (например, Свод по начислениям или Кадровый отчёт), чтобы убедиться, что данные отображаются корректно.

💡

Если после удаления база всё равно работает медленно, проверьте индексы таблиц в SQL Server Management Studio (для клиент-серверного варианта). Часто проблема кроется не в объёме данных, а в фрагментации индексов.

FAQ: Частые вопросы по удалению помеченных объектов в 1С ЗУП

Можно ли восстановить объект после окончательного удаления?

Нет, после окончательного удаления (с флагом Истина в методе Удалить()) объект восстановить невозможно. Единственный способ вернуть данные — восстановление базы из резервной копии. Именно поэтому так важно делать бэкап перед очисткой.

Почему после удаления помеченных объектов база не уменьшилась в размере?

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

  1. Закройте все сеансы пользователей.
  2. Выполните Администрирование → Тестирование и исправление.
  3. Отметьте галочкой Сжать базу данных и запустите процесс.
Как удалить помеченные объекты в облачной версии 1С ЗУП?

В 1С:Fresh или других облачных решениях нет прямого доступа к инструментам физического удаления. Однако вы можете:

  • Обратиться в техническую поддержку 1С с запросом на очистку.
  • Использовать архивацию данных вместо удаления (перенос устаревших записей в отдельный справочник).
  • Настроить автоматическое удаление через регламентные задачи (если функция поддерживается тарифом).
⚠️ Внимание: В облачных версиях некоторые операции могут быть ограничены политикой провайдера. Уточняйте детали в личном кабинете или у менеджера.
Что делать, если при удалении появляется ошибка "Транзакция прервана"?

Эта ошибка возникает из-за:

  • Длительных операций (например, удаление 50 000 записей за раз). Разбейте процесс на части.
  • Блокировок других пользователей. Закройте все сеансы через Администрирование → Активные пользователи.
  • Нехватки памяти. Перезапустите сервер 1С:Предприятие или увеличьте лимиты в настройках кластера.

Если проблема повторяется, попробуйте использовать режим монопольного доступа (запуск 1С с ключом /UC:администратор /P:пароль).

Можно ли настроить автоматическое удаление помеченных объектов?

Да, в 1С 8.3 ЗУП можно создать регламентное задание для периодической очистки. Для этого:

  1. Перейдите в Администрирование → Поддержка и обслуживание → Регламентные операции.
  2. Создайте новое задание с типом Удаление помеченных объектов.
  3. Настройте расписание (например, раз в месяц в нерабочее время).
  4. Укажите параметры фильтрации (какие типы объектов очищать).

Однако будьте осторожны: автоматическое удаление может нарушить отчётность, если очистятся данные за закрытые периоды.