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

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

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

📊 Какой тип базы 1С вы администрируете?
Файловый вариант
Microsoft SQL Server
PostgreSQL
Не знаю, какой у меня тип

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

Первый и самый важный этап — подготовка системы. Пренебрежение этим шагом часто приводит к сбоям в работе кластера или потере данных. Начните с создания резервной копии базы, которую планируете переименовать. Это правило актуально как для файлового варианта, так и для SQL-баз.

Для файлового варианта достаточно скопировать каталог с базой (обычно это папка с расширением .1CD) в безопасное место. Для SQL-баз используйте стандартные инструменты резервного копирования:

  • 🔄 Microsoft SQL Server: выполните бэкап через SQL Server Management Studio или команду BACKUP DATABASE
  • 🐘 PostgreSQL: используйте утилиту pg_dump или pg_basebackup
  • 📁 Файловый вариант: скопируйте папку базы и файл 1Cv8.1CD (или 1Cv8.DT для старых версий)

Также убедитесь, что у вас есть права администратора на сервере 1С:Предприятия и на SQL-сервере (если используется клиент-серверный вариант). Без соответствующих прав вы не сможете выполнить переименование или изменить настройки кластера.

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

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

ALTER DATABASE [ИмяБазы] SET SINGLE_USER WITH ROLLBACK IMMEDIATE;

2. Способы переименования: файловый vs SQL-вариант

Метод переименования зависит от того, какой тип базы данных вы используете. Рассмотрим оба варианта подробно.

Файловый вариант (локальная или сетевая папка):

  • 📂 Переименование происходит путём изменения имени папки с базой и правки параметров в Центре управления кластером.
  • 🔧 Требуется обновить путь к базе в настройках кластера через консоль администрирования или файл conf.cfg.
  • 🔄 После переименования папки необходимо перезагрузить службу 1С:Предприятия.

Клиент-серверный вариант (Microsoft SQL Server или PostgreSQL):

  • 🗃️ Изменение имени базы данных выполняется на уровне СУБД с последующим обновлением ссылок в кластере .
  • 🔗 Требуется синхронизация имени в Центре управления кластером и на SQL-сервере.
  • 🔄 Возможно, потребуется пересоздать ссылки на базу в конфигураторе.

Для SQL-варианта процесс сложнее, так как затрагивает две системы: саму СУБД и кластер . Рассмотрим каждый из способов подробнее в следующих разделах.

💡

Файловый вариант переименовывается проще, но требует осторожности при работе с путями к каталогам. SQL-вариант более надёжен для крупных баз, но процесс занимает больше времени.

3. Пошаговая инструкция: переименование файловой базы

Если ваша база хранится в файловом варианте (расширение .1CD или .DT), следуйте этой инструкции:

Шаг 1. Остановите службу кластера

Откройте Центр управления кластером 1С (1C:Enterprise 8 Cluster Administration) и остановите службу. Альтернативно можно использовать команду в PowerShell:

Stop-Service -Name "1C:Enterprise 8 Server Agent"

Шаг 2. Переименуйте папку с базой

Перейдите в каталог, где хранится база (обычно это C:\ProgramData\1C\1Cv8\ или сетевая папка), и переименуйте папку с расширением .1CD. Например, если база называлась Бухгалтерия.1CD, а новое имя — ГлавнаяБухгалтерия.1CD, просто измените название папки.

Шаг 3. Обновите настройки в кластере

Откройте Центр управления кластером, найдите вашу базу в списке и нажмите Изменить. В поле Каталог информационной базы укажите новый путь к папке. Сохраните изменения.

Шаг 4. Перезагрузите службу и проверьте доступ

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

  • 🔹 Путь к папке указан корректно (без опечаток).
  • 🔹 У службы есть права на доступ к новой папке.
  • 🔹 В имени папки нет запрещённых символов (например, \ / : * ? " < > |).

Убедиться, что служба кластера запущена|

Проверить видимость базы в списке информационных баз|

Подключиться к базе под администратором|

Проверить целостность данных (открыть несколько документов)-->

4. Переименование базы на Microsoft SQL Server

Для клиент-серверного варианта с Microsoft SQL Server процесс состоит из двух частей: изменение имени на уровне СУБД и обновление ссылок в кластере .

Часть 1. Переименование в SQL Server

Подключитесь к серверу через SQL Server Management Studio и выполните следующий запрос:

ALTER DATABASE [СтарыйИдентификатор] MODIFY NAME = [НовыйИдентификатор];

Например, если старая база называлась Base_Accounting, а новая — Main_Accounting, запрос будет:

ALTER DATABASE [Base_Accounting] MODIFY NAME = [Main_Accounting];

Часть 2. Обновление в кластере 1С

Откройте Центр управления кластером, выберите базу и нажмите Изменить. В поле Имя базы данных на сервере SQL укажите новое имя. Сохраните изменения и перезапустите службу кластера.

Часть 3. Проверка работоспособности

После переименования проверьте:

  • 🔹 База отображается в списке под новым именем.
  • 🔹 Пользователи могут подключиться без ошибок.
  • 🔹 В журнале кластера (1C:Enterprise 8 Server.log) нет ошибок, связанных с подключением к SQL.
⚠️ Внимание: Если после переименования база не открывается с ошибкой "Не найдена база данных", проверьте, что имя базы указано точно так же, как в SQL Server (с учётом регистра, если сервер чувствителен к этому). Также убедитесь, что пользователь на SQL-сервере имеет права на новую базу.

5. Особенности переименования в PostgreSQL

Для PostgreSQL процесс похож на Microsoft SQL Server, но есть нюансы. Во-первых, для переименования требуется подключение под суперпользователем (обычно postgres). Во-вторых, в PostgreSQL нельзя переименовать базу, если к ней подключены пользователи — все сеансы должны быть закрыты.

Шаг 1. Подключитесь к PostgreSQL

Используйте команду в терминале или через pgAdmin:

psql -U postgres -h localhost -p 5432

Шаг 2. Закройте все подключения к базе

Выполните запрос для принудительного отключения пользователей:

SELECT pg_terminate_backend(pg_stat_activity.pid)

FROM pg_stat_activity

WHERE pg_stat_activity.datname = 'СтараяБаза';

Шаг 3. Переименуйте базу

Используйте команду:

ALTER DATABASE "СтараяБаза" RENAME TO "НоваяБаза";

Шаг 4. Обновите настройки в кластере 1С

Аналогично SQL Server, обновите имя базы в Центре управления кластером и перезапустите службу.

После переименования проверьте, что в файле pg_hba.conf (конфигурация доступа к PostgreSQL) нет ограничений для новой базы. Если используете с PostgreSQL в Docker-контейнере, не забудьте обновить переменные окружения, если имя базы задано там.

💡

Если после переименования в PostgreSQL возникает ошибка "FATAL: database "СтараяБаза" does not exist", проверьте, что в конфигурационном файле кластера (conf.cfg) не осталось старых ссылок на имя базы. Иногда они кэшируются, и требуется полная перезагрузка сервера.

6. Типичные ошибки и их решение

Даже при строгом следовании инструкции могут возникать ошибки. Рассмотрим самые распространённые из них и способы их устранения.

Ошибка Причина Решение
Не найдена база данных (Database not found) Несовпадение имени базы в кластере 1С и на SQL-сервере Проверьте регистр и точность имени в настройках кластера и СУБД
Отказано в доступе (Access denied) Недостаточно прав у пользователя 1С на новую базу Назначьте права db_owner пользователю 1С в SQL Server
База данных используется (Database in use) К базе подключены пользователи или процессы Закройте все сеансы или используйте WITH ROLLBACK IMMEDIATE
Неверный формат базы данных Повреждение файлов при переименовании папки (файловый вариант) Восстановите базу из резервной копии и повторите процедуру

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

Для проверки целостности после переименования рекомендуется:

  • 🔍 Запустить тестирование и исправление базы через Конфигуратор (Администрирование → Тестирование и исправление).
  • 📊 Проверить основные отчёты и документы на корректность отображения.
  • 🔄 Убедиться, что резервное копирование проходит без ошибок.
Что делать, если после переименования база не открывается?

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

1. Восстановите резервную копию и повторите процедуру.

2. Проверьте журналы кластера (1C:Enterprise 8 Server.log) на наличие ошибок подключения.

3. Убедитесь, что версия платформы 1С совместима с версией SQL-сервера (особенно актуально для PostgreSQL).

4. Если используете Docker, проверьте, что имя базы корректно прописано в переменных окружения контейнера.

7. Дополнительные настройки после переименования

В некоторых случаях переименование базы требует дополнительных действий, особенно если база интегрирована с другими системами или используется в распределённых конфигурациях.

Для распределённых информационных баз (РИБ):

Если переименованная база участвует в обмене данными, необходимо обновить настройки узлов обмена. Для этого:

  1. Откройте Конфигуратор главной базы.
  2. Перейдите в Администрирование → Распределённые информационные базы.
  3. Обновите имя узла, соответствующее переименованной базе.
  4. Выполните полную синхронизацию данных.

Для интеграций через веб-сервисы или REST:

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

Для планировщика задач:

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

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

8. Автоматизация переименования с помощью скриптов

Если вам часто приходится переименовывать базы (например, при тестировании или развёртывании новых проектов), можно автоматизировать процесс с помощью скриптов. Ниже приведён пример на PowerShell для переименования файловой базы:

$oldName = "Бухгалтерия.1CD"

$newName = "ГлавнаяБухгалтерия.1CD"

$path = "C:\ProgramData\1C\1Cv8\"

Останавливаем службу кластера

Stop-Service -Name "1C:Enterprise 8 Server Agent" -Force

Переименовываем папку

Rename-Item -Path "$path\$oldName" -NewName $newName

Обновляем настройки в кластере (требуется ручная правка или использование ras.exe)

Запускаем службу обратно

Start-Service -Name "1C:Enterprise 8 Server Agent"

Для Microsoft SQL Server можно использовать следующий SQL-скрипт, который переименовывает базу и обновляет права доступа:

USE master;

GO

ALTER DATABASE [СтараяБаза] MODIFY NAME = [НоваяБаза];

GO

-- Обновляем права для пользователя 1С

EXEC sp_addrolemember 'db_owner', 'USR1CV8';

GO

Автоматизация особенно полезна в случаях, когда нужно переименовать несколько баз или выполнить процедуру на нескольких серверах. Однако использование скриптов требует предварительного тестирования в безопасной среде, так как ошибка в скрипте может привести к потере доступа ко всем базам кластера.

💡

Автоматизация переименования ускоряет процесс, но требует тщательной проверки скриптов перед выполнением на рабочем сервере. Всегда тестируйте скрипты на тестовом окружении!

FAQ: Частые вопросы по переименованию баз в 1С

Можно ли переименовать базу, не останавливая кластер?

Нет, для файлового варианта необходимо остановить службу кластера, так как в противном случае возможны ошибки доступа к файлам. Для SQL-варианта можно обойтись без остановки кластера, но потребуется закрыть все активные сеансы пользователей.

Что будет, если в имени базы использовать пробелы или кириллицу?

В файловом варианте пробелы и кириллица в имени папки допустимы, но могут вызвать проблемы при работе с некоторыми скриптами или внешними системами. В SQL-варианте (особенно для Microsoft SQL Server) лучше избегать пробелов — используйте подчёркивание (_) или camelCase. Кириллица в имени базы SQL может привести к ошибкам при подключении из некоторых клиентов.

Как переименовать базу, если она используется в облачном сервисе (1С:Fresh, 1С:Линк)?

В облачных сервисах 1С:Fresh или 1С:Линк самостоятельное переименование базы невозможно. Для изменения имени необходимо обратиться в техническую поддержку провайдера. В некоторых случаях может потребоваться создание новой базы с последующим переносом данных.

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

Это происходит, если в настройках прав доступа на SQL-сервере использовалось старое имя базы. После переименования пользователь теряет привязку к базе. Решение: обновите права доступа через SQL Server Management Studio или pgAdmin, назначив пользователю роль db_owner для новой базы.

Можно ли отменить переименование, если что-то пошло не так?

Да, если у вас есть резервная копия базы. Восстановите её и верните старое имя. В случае SQL-варианта также потребуется обновить имя в кластере . Если резервной копии нет, но база открывается под новым именем, можно попробовать переименовать её обратно, следуя той же инструкции.