Очистка базы 1С:Управление небольшой фирмой (УНФ) от всех данных — задача, с которой рано или поздно сталкивается каждый администратор или опытный пользователь. Причины могут быть разными: тестирование новой функциональности, обучение сотрудников на "чистой" базе, подготовка демо-версии для презентации или устранение последствий критичных ошибок. Однако просто удалить все записи вручную — не вариант: это займёт часы и чревато ошибками.

В этой статье мы разберём легитимные способы полной очистки базы УНФ, которые сохранят структуру конфигурации, справочники и настройки, но удалят все документы, остатки и движения. Особое внимание уделим безопасности: как избежать потери важных данных, какие резервные копии создать и как проверить результат. Также рассмотрим нюансы для разных версий 1С:Предприятие 8.3 и типов баз (файловых и клиент-серверных).

Почему нельзя просто удалить файлы базы вручную

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

  • 📂 Файл .1CD содержит не только данные, но и метаданные конфигурации — структуру справочников, документов, регистров. Его удаление равносильно удалению всей базы.
  • 🔄 Даже если вы скопируете пустую базу поверх старой, может некорректно обработать замену из-за различий в версиях платформы или конфигурации.
  • 🔐 В клиент-серверных базах (PostgreSQL, MS SQL) прямая манипуляция файлами вообще невозможна — данные хранятся в СУБД, а не в файловой системе.

Единственный безопасный путь — использовать встроенные механизмы 1С или специализированные обработки. Далее мы рассмотрим оба варианта.

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

Подготовка к очистке: резервное копирование и проверка прав

Перед любыми манипуляциями с базой обязательно создайте резервную копию. Даже если вы работаете с тестовой базой, ошибка в скрипте или сбой платформы может привести к необратимым последствиям. Вот минимальный чек-лист:

Создать резервную копию базы через Конфигуратор (Файл → Сохранить данные как...)

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

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

Убедиться в наличии прав "Администрирование" в конфигураторе

Отключить регламентные задания (если они есть)

-->

Для файловых баз резервную копию можно создать прямо в Конфигураторе: Файл → Сохранить данные как.... Для клиент-серверных баз используйте средства СУБД (например, pg_dump для PostgreSQL).

⚠️ Внимание: Если база используется в режиме управляемого приложения (например, в облачном сервисе 1С:Фреш), стандартные методы очистки могут не сработать. В этом случае обратитесь к документации вашего провайдера или используйте Внешние обработки с правами администратора.

Также проверьте версию платформы (Справка → О программе). Некоторые обработки очистки могут не поддерживать устаревшие релизы (например, ниже 8.3.10).

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

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

Инструкция:

  1. Откройте базу в режиме Конфигуратора (1CV8.EXE /F "путь_к_базе").
  2. Перейдите в Администрирование → Поддержка и обслуживание → Удаление помеченных объектов.
  3. В открывшемся окне нажмите Пометить все объекты на удаление (или выберите конкретные типы данных).
  4. Подтвердите действие и дождитесь завершения процесса.
  5. Выполните Файл → Открыть в режиме предприятия и проверьте результат.
Тип данных Удаляется ли обработкой? Примечания
Документы (Реализация, Поступление и т.д.) Да Удаляются полностью, включая движения
Справочники (Номенклатура, Контрагенты) Частично Удаляются только помеченные элементы, пустые справочники остаются
Регистры накопления (Остатки товаров) Да Очищаются движения, но структура регистра сохраняется
Планы обмена Нет Требуется ручная очистка или специализированная обработка

Этот метод не подходит, если вам нужна полностью "чистая" база без остатков справочников. Для глубокой очистки используйте следующий способ.

💡

Если после удаления в базе остались "мусорные" записи (например, пустые элементы справочников), выполните реиндексацию через Администрирование → Тестирование и исправление. Это ускорит работу базы.

Способ 2: Полная очистка через обработку "Выгрузка/Загрузка данных XML"

Для полной очистки (включая справочники, планы счетов и настройки) используйте механизм выгрузки/загрузки данных в формате XML. Суть метода: выгрузить только структуру конфигурации (без данных), а затем загрузить её обратно в пустую базу.

Пошаговая инструкция:

  1. Создайте новую пустую базу УНФ той же версии, что и исходная (Файл → Новая информационная база).
  2. В исходной базе откройте Администрирование → Выгрузка данных (XML).
  3. В настройках выгрузки снимите все галочки, кроме:
    • 📋 Конфигурация (метаданные)
    • 🔧 Настройки пользователей (опционально, если нужно сохранить права)
  • Выгрузите данные в файл (например, structure.xml).
  • Откройте новую пустую базу и выполните Администрирование → Загрузка данных (XML), указав выгруженный файл.
  • После загрузки проверьте структуру: все справочники и документы должны быть пустыми, но доступными для заполнения.
  • ⚠️ Внимание: Этот метод не сохраняет индивидуальные настройки отчётов, права доступа пользователей (если не выгружали) и внешние обработки. Если они критичны, их придётся настраивать заново.

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

    Что делать если загрузка XML прерывается с ошибкой?

    Если при загрузке XML возникает ошибка типа "Несоответствие версий конфигурации", проверьте:

    1. Совпадение версий платформы 1С в исходной и новой базе (должны быть идентичны).

    2. Отсутствие изменений в конфигурации (если базы отличаются, используйте СравнитьКонфигурации() в Конфигураторе).

    3. Достаточно ли прав у пользователя (требуются права "Администратор").

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

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

    Если вам нужна избирательная очистка (например, удалить только документы за определённый период или очистить конкретные регистры), можно использовать скрипты на встроенном языке . Этот метод требует знаний программирования, но даёт максимальную гибкость.

    Пример скрипта для удаления всех документов в базе:

    Процедура ОчиститьВсеДокументы()
    

    МассивДокументов = Новый Массив;

    МассивДокументов.Добавить(Метаданные.Документы.РеализацияТоваровУслуг);

    МассивДокументов.Добавить(Метаданные.Документы.ПоступлениеТоваровУслуг);

    // Добавьте другие типы документов по аналогии

    Для Каждого ТипДокумента Из МассивДокументов Цикл

    Выборка = ТипДокумента.Выбрать();

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

    Попытка

    Выборка.Удалить();

    Исключение

    Сообщить("Ошибка удаления документа: " + ОписаниеОшибки());

    КонецПопытки;

    КонецЦикла;

    КонецЦикла;

    Сообщить("Очистка документов завершена!");

    КонецПроцедуры

    Для выполнения скрипта:

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

      Метаданные.РегистрыНакопления.ТоварыНаСкладах.Очистить();
      ⚠️ Внимание: Скрипты выполняются без транзакций — если произойдёт сбой, база может остаться в неконсистентном состоянии. Всегда тестируйте скрипты на копии базы!
      💡

      Программная очистка позволяет удалить данные выборочно (например, только за 2023 год или только по определённому складу), но требует знания языка 1С и осторожности при работе с транзакциями.

      Очистка клиент-серверных баз (PostgreSQL, MS SQL)

      Если ваша база 1С:УНФ работает на PostgreSQL или Microsoft SQL Server, процесс очистки имеет особенности. В отличие от файловых баз, здесь данные хранятся в СУБД, и прямая манипуляция таблицами может нарушить целостность.

      Безопасные способы:

      • 🔄 Создать новую базу данных в СУБД и прикрепить её к 1С через Конфигуратор (Администрирование → Информационные базы). Затем перенести структуру через XML (см. Способ 2).
      • 🧹 Использовать внешние обработки с поддержкой SQL-запросов (например, "Универсальная очистка базы" от партнёров 1С).
      • 🛠 Для PostgreSQL можно воспользоваться утилитой pg_dump с ключом --schema-only, чтобы выгрузить только структуру таблиц, а затем создать новую базу и загрузить в неё схему.

      Пример команды для выгрузки структуры PostgreSQL:

      pg_dump -U пользователь -d имя_базы --schema-only -f структура.sql

      Для MS SQL аналогичный результат даст скрипт:

      -- Генерация скрипта для схемы базы данных
      

      USE master;

      GO

      EXEC sp_msforeachtable 'DROP TABLE ?';

      GO

      -- Затем восстановите структуру из резервной копии или скрипта создания базы

      ⚠️ Внимание: Прямое удаление таблиц в СУБД (например, через DROP TABLE) приведёт к неработоспособности базы 1С. Всегда используйте механизмы 1С или создавайте новую базу.

      Проверка результата и устранение ошибок после очистки

      После очистки базы обязательно выполните проверку на корректность работы. Вот что нужно сделать:

      1. Тестирование и исправление:
        • 🔍 Запустите Администрирование → Тестирование и исправление с галочками: Проверять логическую целостность, Проверять ссылочную целостность, Реиндексировать таблицы.
        • 📊 Проверьте, что все справочники открываются без ошибок (например, Номенклатура, Контрагенты).
        • 📄 Создайте тестовые документы (например, Реализация товаров) и убедитесь, что они проводятся без ошибок.
    6. Проверка прав пользователей:
      • 👤 Убедитесь, что права доступа сохранены (если выгружали настройки пользователей в XML).
      • 🔑 Проверьте работу ролей (например, Полные права, Бухгалтер).
  • Оптимизация производительности:
    • 📉 Выполните Сжать таблицы базы данных (для файловых баз).
    • 🔄 Для клиент-серверных баз запустите REINDEX DATABASE (PostgreSQL) или DBCC INDEXDEFRAG (MS SQL).
  • Типичные ошибки после очистки и их решения:

    Ошибка Возможная причина Решение
    Не открываются справочники Повреждение метаданных при выгрузке/загрузке XML Восстановите структуру из резервной копии или создайте новую базу
    Ошибка при проведении документов Несоответствие версий конфигурации Обновите конфигурацию до актуальной версии
    Медленная работа базы Фрагментация таблиц после массового удаления Выполните реиндексацию и сжатие

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

    FAQ: Частые вопросы по очистке базы 1С УНФ

    Можно ли очистить базу без Конфигуратора, прямо из режима предприятия?

    Нет, для полной очистки требуются права Администратора, которые доступны только в Конфигураторе. Однако вы можете удалить отдельные документы или справочники в режиме предприятия, если у вашей роли есть соответствующие права (например, Удаление помеченных объектов). Для массовой очистки это неэффективно.

    Как очистить базу в 1С:Фреш или облачном сервисе?

    В облачных сервисах (например, 1С:Фреш) нет доступа к Конфигуратору. Варианты:

    • Использовать внешние обработки с правами администратора (если разрешено провайдером).
    • Обратиться в поддержку сервиса с запросом на сброс базы.
    • Создать новую базу в личном кабинете и перенести в неё только необходимые настройки.

    Уточните возможности у вашего провайдера — некоторые сервисы предоставляют инструменты для "сброса" базы в демо-состояние.

    Почему после очистки в базе остаются "мусорные" записи (например, пустые элементы справочников)?

    Это происходит из-за особенностей хранения данных в 1С:

    • Справочники могут содержать предопределённые элементы (например, "Основной склад"), которые не удаляются стандартными методами.
    • При массовом удалении некоторые объекты могут оставаться из-за ссылочной целостности (например, если на элемент справочника ссылается документ в архиве).
    • В регистрах сведений могут сохраняться системные записи (например, настройки пользователей).

    Чтобы удалить их, используйте скрипты с явным указанием условий или вручную пометьте ненужные элементы на удаление.

    Можно ли очистить базу выборочно (например, только за 2023 год)?

    Да, для этого подходят:

    • Скрипты на встроенном языке (см. Способ 3) с фильтрацией по дате.
    • Обработка "Групповое изменение реквизитов" — позволяет массово помечать документы за период на удаление.
    • Внешние обработки от партнёров 1С (например, "Универсальный отбор и обработка данных").

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

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

    Запрос.Текст = "ВЫБРАТЬ Ссылка ИЗ Документ.РеализацияТоваровУслуг ГДЕ Дата МЕЖДУ &НачалоПериода И &КонецПериода";

    Запрос.УстановитьПараметр("НачалоПериода", '01.01.2023');

    Запрос.УстановитьПараметр("КонецПериода", '31.12.2023');

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

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

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

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

    Док.Удалить();

    КонецЦикла;

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

    Если база повреждена и не запускается даже в Конфигураторе, попробуйте следующие шаги:

    1. Тестирование и исправление:

      Запустите с ключом /Repair:

      1CV8.EXE /F "путь_к_базе" /Repair
    2. Выгрузка данных через chdbfl:

      Используйте утилиту chdbfl.exe (входит в комплект 1С) для выгрузки данных в DT-файл:

      chdbfl.exe -f "путь_к_базе.1CD" -dump "выгрузка.dt"

      Затем создайте новую базу и загрузите в неё данные через chdbfl -load.

    3. Обращение к специалистам:

      Если база критично повреждена (например, из-за сбоя диска), восстановить её самостоятельно может быть невозможно. В этом случае обратитесь в службу поддержки 1С или к сертифицированным партнёрам.