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

В этой статье мы разберём все возможные сценарии: удаление базы в файловом режиме, на Microsoft SQL Server, PostgreSQL, а также через консоль администрирования 1С. Особое внимание уделим нюансам резервного копирования, правам доступа и проверке зависимостей. Если вы не уверены в своих действиях — сначала протестируйте процедуру на нерабочей копии сервера.

Перед началом работ убедитесь, что у вас есть:

  • 🔑 Права администратора на сервере 1С и СУБД
  • 💾 Актуальная резервная копия базы (даже если она "ненужная")
  • 📋 Список пользователей, подключённых к базе (для принудительного отключения)
  • 🛠️ Доступ к консоли администрирования 1С:Предприятия или SQL Server Management Studio
📊 Какую СУБД вы используете для 1С?
Microsoft SQL Server
PostgreSQL
Файловый режим
Другая

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

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

  1. Создайте полную копию базы через стандартные средства СУБД или инструменты 1С. Для SQL Server это может быть скрипт:
    BACKUP DATABASE [Your1CBase] TO DISK = 'C:\Backup\Your1CBase.bak' WITH COPY_ONLY, COMPRESSION;
  2. Проверьте зависимости других баз. Например, если удаляемая база используется как источник данных для обменов или отчётности в других информационных базах 1С.
  3. Убедитесь, что нет активных сессий. В SQL Server Management Studio это можно сделать запросом:
    SELECT session_id, login_name, host_name, program_name
    

    FROM sys.dm_exec_sessions

    WHERE DB_NAME(database_id) = 'Your1CBase';

Если база интегрирована с внешними системами (например, через REST API или RabbitMQ), проверьте настройки этих систем — возможно, там прописаны прямые ссылки на удаляемую базу.

💡

Для баз 1С на PostgreSQL используйте утилиту pg_dump с ключом --format=custom — это позволит восстановить базу даже на другой версии PostgreSQL.

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

2. Удаление базы 1С в файловом режиме

Файловый режим — самый простой вариант, но и здесь есть подводные камни. База хранится в виде файлов с расширением .1CD (основной файл) и .1Cv8Log (журнал транзакций). Простое удаление этих файлов через Проводник Windows может привести к ошибкам, если:

  • 🔄 База в данный момент используется (даже в фоновом режиме)
  • 🔒 Файлы заблокированы антивирусом или службами Windows
  • 📂 Путь к базе содержит кириллические символы или пробелы (может вызвать проблемы при восстановлении)

Правильный алгоритм:

  1. Откройте Консоль администрирования 1С (1Cv8.exe /ADMIN).
  2. Найдите нужную базу в списке, кликните правой кнопкой и выберите Удалить.
  3. Если база не удаляется через консоль — остановите службу Агент сервера 1С:Предприятия (services.msc) и удалите файлы вручную.

Остановить службу "Агент сервера 1С:Предприятия"|Закрыть все сессии 1С на сервере|Проверить, что файлы не заблокированы|Удалить файлы .1CD и .1Cv8Log|Перезапустить службу агента-->

После удаления рекомендуется очистить каталог от временных файлов (например, .tmp или .lk), которые могли остаться от предыдущих сессий.

3. Удаление базы 1С на Microsoft SQL Server

Для баз 1С на MS SQL Server процесс сложнее — здесь нельзя просто удалить файлы. Необходимо работать через SQL Server Management Studio (SSMS) или T-SQL-команды. Важно учитывать, что 1С создаёт не только саму базу данных, но и:

  • 📁 Файлы данных (.mdf) и журналов (.ldf)
  • 👥 Логины SQL, привязанные к базе (например, USR_1CV8)
  • 🔗 Связанные объекты: задачи агента SQL, триггеры, хранимые процедуры

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

  1. Откройте SSMS, подключитесь к серверу под учётной записью с правами sysadmin.
  2. В объекте Databases найдите базу 1С, кликните правой кнопкой и выберите Tasks → Detach (отсоединить). Это безопаснее, чем сразу удалять.
  3. Если база не отсоединяется — выполните запрос для принудительного закрытия сессий:
    USE master;
    

    ALTER DATABASE [Your1CBase] SET SINGLE_USER WITH ROLLBACK IMMEDIATE;

    DROP DATABASE [Your1CBase];

  4. Удалите файлы .mdf и .ldf с диска (обычно они лежат в C:\Program Files\Microsoft SQL Server\MSSQL*\Data).
Действие Команда T-SQL Примечание
Просмотр активных сессий EXEC sp_who2; Ищите строки с именем вашей базы в колонке DBName
Принудительное отключение пользователей ALTER DATABASE [BaseName] SET SINGLE_USER WITH ROLLBACK IMMEDIATE; Требуются права sysadmin
Удаление базы DROP DATABASE [BaseName]; Файлы на диске останутся — удаляйте их вручную
Удаление логинов 1С DROP LOGIN [USR_1CV8]; Только если логин не используется другими базами
⚠️ Внимание: Если на сервере SQL включён Always On Availability Groups, удаление базы может нарушить работу группы доступности. Перед процедурой исключите базу из группы или перенесите её в режим RESTORING.

4. Удаление базы 1С на PostgreSQL

Для PostgreSQL процесс похож на SQL Server, но есть ключевые различия. Базы 1С на PostgreSQL часто используют расширения (plpgsql, uuid-ossp), которые могут остаться после удаления. Также важно учитывать, что:

  • 🐧 Пользователь postgres должен иметь права на удаление
  • 🔌 Служба 1С может блокировать подключение к базе
  • 📡 Репликация (если настроена) требует отдельной остановки

Инструкция для PostgreSQL:

  1. Подключитесь к серверу через psql или pgAdmin:
    sudo -u postgres psql
  2. Закройте все соединения с базой:
    SELECT pg_terminate_backend(pg_stat_activity.pid)
    

    FROM pg_stat_activity

    WHERE pg_stat_activity.datname = 'your_1c_base';

  3. Удалите базу:
    DROP DATABASE your_1c_base;
  4. При необходимости удалите пользователя 1С:
    DROP ROLE usr_1cv8;

Если база была частью кластера PostgreSQL с репликацией, выполните на мастер-сервере:

SELECT pg_drop_replication_slot('slot_name');
Что делать, если PostgreSQL выдаёт ошибку "database is being accessed by other users"?

Эта ошибка означает, что к базе подключены активные сессии, включая скрытые (например, от мониторинговых систем или бэкап-скриптов). Решение:

1. Проверьте все подключения через SELECT * FROM pg_stat_activity WHERE datname = 'your_1c_base';

2. Принудительно завершите их с помощью pg_terminate_backend(pid).

3. Если проблема сохраняется — перезапустите службу PostgreSQL (sudo systemctl restart postgresql).

5. Удаление базы через консоль администрирования 1С

Консоль администрирования (1Cv8.exe /ADMIN) — универсальный инструмент для управления базами 1С, включая их удаление. Этот метод подходит для всех типов баз (файловых, SQL, PostgreSQL), но имеет ограничения:

  • ⚙️ Не удаляет физические файлы базы на диске (только запись в списке баз)
  • 🔗 Не очищает настройки публикации на веб-сервере (если база была опубликована)
  • 📡 Не удаляет задачи в Планировщике 1С (например, регламентные задания)

Как удалить базу через консоль:

  1. Запустите консоль администрирования от имени администратора.
  2. В дереве слева выберите Центральный сервер 1С:ПредприятияКластеры → ваш кластер.
  3. В правой части найдите базу, кликните правой кнопкой и выберите Удалить.
  4. Подтвердите удаление. База исчезнет из списка, но её файлы останутся на диске.

После этого:

  • 🗑️ Удалите файлы базы вручную (для файлового режима или SQL/PostgreSQL-файлы).
  • 🌐 Если база была опубликована на веб-сервере (IIS или Apache), удалите виртуальный каталог через Диспетчер IIS.
💡

Консоль администрирования 1С не удаляет физические данные — только запись о базе в центральном каталоге. Всегда проверяйте диск после удаления!

6. Проверка после удаления и очистка следов

Удаление базы — это только половина работы. Чтобы избежать проблем в будущем, необходимо:

  1. Проверить освободившееся место на диске. Если место не освободилось — возможно, файлы базы остались в корзине или заблокированы.
  2. Очистить кэш 1С. В папке %APPDATA%\1C\1cv8 (для Windows) или ~/.1cv8 (для Linux) могут остаться временные файлы.
  3. Обновить список баз в клиентских приложениях 1С. Иногда удалённая база продолжает отображаться в списке до перезапуска службы агента.

Для SQL Server и PostgreSQL дополнительно:

  • 🔄 Проверьте логи транзакций — они могут занимать гигабайты места даже после удаления базы.
  • 📊 Удалите статистику мониторинга (например, в SQL Server Profiler или pg_stat_activity).
  • 🔧 Обновите конфигурационные файлы 1С (например, conf.cfg или srvinfo), если в них были прописаны параметры удалённой базы.
⚠️ Внимание: Если вы удалили базу, которая была источником для регламентных заданий (например, выгрузка данных в 1С:ЗУП или 1С:Бухгалтерия), эти задания продолжат выполняться, но будут выдавать ошибки. Проверьте список заданий в консоли администрирования 1С!

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

Даже опытные администраторы иногда сталкиваются с проблемами при удалении баз 1С. Вот самые распространённые ошибки и способы их предотвращения:

Ошибка Причина Решение
"Database in use" (SQL Server) Активные соединения или блокировки Используйте ALTER DATABASE ... SET SINGLE_USER WITH ROLLBACK IMMEDIATE
"Permission denied" (PostgreSQL) Недостаточно прав у пользователя Подключитесь под postgres или назначьте права SUPERUSER
Файлы базы не удаляются Блокировка антивирусом или службой 1С Остановите службу Агент сервера 1С и антивирус
База остаётся в списке после удаления Кэш консоли администрирования Перезапустите службу srvinfo или очистите кэш
Ошибки репликации после удаления База была частью реплики Остановите репликацию перед удалением или настройте её заново

Если после удаления базы 1С перестали работать другие базы на сервере, проверьте:

  • 🔌 Подключение к СУБД — возможно, были удалены общие логины (например, USR_1CV8).
  • 📂 Права на каталоги — иногда вместе с базой удаляются общие папки для обменов.
  • 🔄 Зависимости в конфигурациях — если удалённая база была источником данных для других баз через COM-соединение или HTTP-сервисы.

FAQ: Частые вопросы об удалении баз 1С

Можно ли удалить базу 1С прямо из конфигуратора?

Нет, конфигуратор (1Cv8.exe /CONFIG) не предоставляет инструментов для удаления базы. Он предназначен для изменения структуры данных, а не для администрирования сервера. Для удаления используйте консоль администрирования 1С или средства СУБД (SSMS, pgAdmin).

Что делать, если при удалении базы SQL Server пишет "The database could not be exclusively locked"?

Эта ошибка означает, что к базе подключены пользователи или системные процессы (например, резервное копирование или репликация). Решения:

  1. Переведите базу в режим SINGLE_USER с опцией ROLLBACK IMMEDIATE.
  2. Проверьте задачи агента SQL Server — возможно, запущено резервное копирование.
  3. Если база участвует в Always On, сначала исключите её из группы доступности.
Как удалить базу 1С, если она повреждена и не открывается?

Для повреждённых баз:

  • 🔧 Файловый режим: просто удалите файлы .1CD и .1Cv8Log после остановки службы агента 1С.
  • 🗃️ SQL Server: используйте DROP DATABASE с флагом WITH NORECOVERY, если база в состоянии RECOVERING.
  • 🐘 PostgreSQL: подключитесь в режиме single-user и выполните DROP DATABASE с флагом FORCE (если поддерживается вашей версией).

Если база критически важна, сначала попробуйте восстановить её с помощью chdbfl.exe (для файлового режима) или REPAIR_ALLOW_DATA_LOSS (для SQL Server).

Нужно ли перезагружать сервер после удаления базы 1С?

Перезагрузка сервера не требуется в 99% случаев. Однако рекомендуется:

  • Перезапустить службу агента 1С (Агент сервера 1С:Предприятия).
  • Обновить список баз в клиентских приложениях (иногда требуется перезапуск 1С).
  • Если удалялась база на PostgreSQL с активными подключениями — перезапустите службу postgresql.
Как удалить базу 1С, если она опубликована на веб-сервере?

Публикация базы на веб-сервере (например, для работы через браузер) добавляет сложностей. Порядок действий:

  1. Удалите базу через консоль администрирования 1С (как описано выше).
  2. Откройте Диспетчер IIS (для Windows) или конфигурацию Apache/Nginx (для Linux).
  3. Удалите виртуальный каталог, связанный с базой (обычно называется так же, как база).
  4. Проверьте файл webinst.conf (для IIS) или default-vhost.conf (для Apache) — удалите упоминания базы.
  5. Перезапустите веб-сервер (iisreset или sudo systemctl restart apache2).

Если база была опубликована с использованием 1С:Веб-расширение, также удалите соответствующие записи в файле webserver.conf (обычно лежит в каталоге установки 1С).