Новое имя для информационной базы: от строки в списке до базы в СУБД
Содержание
Если нужно поменять только название, которое видно в окне запуска, выделите базу в списке, нажмите Изменить…, впишите новое имя и нажмите Готово. Данные, пользователи и настройки при этом не меняются. Переименовать саму базу данных 1С сложнее: у файловой базы это каталог на диске, у серверной — имя информационной базы в кластере и отдельное имя базы в СУБД (MS SQL Server или PostgreSQL).
Беда обычно в том, что старое имя прописано в десятке мест: ярлыки у пользователей, скрипты резервного копирования, веб-публикация, настройки обменов. Поменяли его в одном месте — утром половина офиса не может войти. Порядок действий общий для платформы 8.3 и не зависит от конфигурации: одинаково для Бухгалтерии 3.0, ЗУП 3.1, УТ 11 и других.
Что именно переименовываем и как подготовиться
У одной базы может быть до трёх разных «имён». Сначала решите, какое из них вам мешает.
| Что меняем | Где живёт | Сложность | Нужно выгонять пользователей |
|---|---|---|---|
| Имя в списке баз | файл ibases.v8i на каждом компьютере | 1 минута | нет |
| Каталог файловой базы | папка с файлом 1Cv8.1CD | 10–15 минут | да |
| Имя ИБ в кластере сервера 1С | реестр кластера (Srvr=...;Ref=...) | 20–30 минут | да |
| Имя базы в СУБД | MS SQL Server, PostgreSQL | 15–30 минут | да |
Имя в кластере и имя базы в СУБД — разные вещи. ИБ в кластере может называться buh, а база в SQL — buh_2019_copy. Часто достаточно поменять что-то одно.
Если хотите, чтобы новое название было видно в заголовке окна программы, переименовывать базу вообще не нужно. В типовых конфигурациях на БСП это поле «Заголовок программы» в разделе Администрирование → Общие настройки.
Перед переименованием каталога, ИБ или базы в СУБД:
- 📦 Сделайте резервную копию: выгрузку
.dtчерез Конфигуратор (Администрирование → Выгрузить информационную базу) или бэкап средствами СУБД. - 📣 Предупредите пользователей и выберите время, когда в базе никто не работает : вечер, выходной.
- 🔍 Запишите, где используется старое имя: ярлыки, скрипты, планировщик задач, веб-публикация, внешние обработки с подключением через COM.
- 🔑 Проверьте, что у вас есть пароль администратора базы 1С, администратора кластера (если задан) и учётная запись СУБД с правом переименования.
Все способы, кроме смены имени в списке, требуют, чтобы в базе не было сеансов. Принудительное завершение сеансов обрывает работу пользователей: несохранённые документы пропадут.
Как переименовать файловую базу 1С
Файловая база — это каталог, внутри которого лежит файл 1Cv8.1CD. Переименовывают именно каталог. Сам файл 1Cv8.1CD переименовывать нельзя: платформа ищет файл с этим именем и без него базу не откроет.
Шаг 1. Убедитесь, что база закрыта
Закройте 1С на всех компьютерах, которые работают с базой. Признак того, что кто-то ещё внутри: Windows при переименовании пишет, что папка или файл в ней открыты в другой программе.
Если база лежит в общей папке на сервере, открытые файлы видно в оснастке «Управление компьютером» → «Общие папки» → «Открытые файлы». Закрывать их оттуда можно, но человек, который в этот момент работает в 1С, потеряет несохранённое.
Шаг 2. Переименуйте каталог
Например, было D:\Bases\Buh, станет D:\Bases\Buh_OOO_Romashka. Обычное переименование в проводнике. Права доступа
NTFS к папке сохраняются.
Кириллица и пробелы в пути допустимы, но для скриптов резервного копирования удобнее латиница без пробелов: меньше возни с кавычками.
Шаг 3. Поправьте путь в списке баз
В окне запуска 1С выделите базу и нажмите Изменить…. На первом шаге поменяйте имя, если нужно, на втором — путь к каталогу. Нажмите Далее и Готово.
Если базу открывают с нескольких компьютеров, путь нужно поменять на каждом. Быстрее сделать это через общий список баз (раздел про ярлыки ниже).
Если старую строку проще удалить и добавить базу заново через Добавить… → Добавление в список существующей информационной базы, это тоже работает. Данные в базе не пострадают: удаление строки из списка не трогает файлы на диске.
Переименование базы на сервере 1С: имя ИБ в кластере
У клиент-серверной базы имя, которое вводят при подключении (Ref в строке Srvr="srv1c";Ref="buh";), хранится в реестре кластера. В свойствах информационной базы в консоли администрирования серверов поле «Имя» недоступно для изменения. Рабочий способ — удалить регистрацию ИБ в кластере, оставив базу в СУБД, и зарегистрировать её заново под новым именем.
Пошагово в консоли администрирования
- Откройте консоль администрирования серверов 1С:Предприятия, разверните кластер →
Информационные базы. - Откройте свойства нужной ИБ и запишите все параметры: сервер баз данных, тип СУБД, имя базы данных, пользователя СУБД, смещение дат, флажки блокировок и выдачи лицензий. Без этих данных новую регистрацию не сделать.
- В свойствах включите блокировку начала сеансов и блокировку регламентных заданий. Завершите оставшиеся сеансы в ветке
Сеансы. - Удалите ИБ из кластера. В окне удаления выберите «Оставить базу данных без изменений». Варианты «Удалить базу данных» и «Очистить базу данных » уничтожат данные.
- Создайте новую ИБ: правой кнопкой по ветке
Информационные базы→Создать→Информационная база. - Укажите новое имя, а в поле «База данных» — имя существующей базы в СУБД. Тип СУБД, сервер, пользователь и смещение дат — как в записанных параметрах.
- Снимите флажок «Создать базу данных в случае ее отсутствия». Если в имени базы данных опечатка, сервер не создаст пустую базу рядом с рабочей, а выдаст ошибку.
- Поставьте флажок «Установить блокировку регламентных заданий», пока не проверите базу. Нажмите
ОК.
Новая регистрация получает новый идентификатор в кластере. Настройки уровня кластера, которые были у старой ИБ (профиль безопасности, параметры внешнего управления сеансами, «Разрешить выдачу лицензий сервером»), выставьте заново.
Тот же результат можно получить утилитой rac — командами работы с infobase. Точный набор параметров для вашей версии платформы смотрите в rac help infobase.
Новое имя базы данных в MS SQL Server
Имя базы в SQL Server меняют, когда оно путает администраторов или нужно освободить старое имя под другую базу. Порядок такой: заблокировать сеансы в 1С, переименовать базу в SQL, поменять имя базы в свойствах ИБ в консоли кластера.
Шаг 1. Отключите соединения
Даже когда пользователи вышли, рабочие процессы 1С (rphost) могут держать соединения с базой. SQL Server не переименует базу, пока к ней есть подключения. Поэтому сначала включите блокировку сеансов в консоли кластера, затем переведите базу в однопользовательский режим.
Шаг 2. Переименуйте базу
В SQL Server Management Studio: правой кнопкой по базе → «Переименовать». Или запросом:
ALTER DATABASE [buh_old] SET SINGLE_USER WITH ROLLBACK IMMEDIATE;
ALTER DATABASE [buh_old] MODIFY NAME = [buh_romashka];
ALTER DATABASE [buh_romashka] SET MULTI_USER;
WITH ROLLBACK IMMEDIATE откатывает незавершённые транзакции и разрывает все соединения. Запускайте только после блокировки сеансов в 1С.
Шаг 3. Поправьте ИБ в консоли кластера
Откройте свойства информационной базы, в поле «База данных» укажите новое имя (buh_romashka), введите логин и пароль администратора ИБ, если консоль их запросит. Имя ИБ в кластере при этом не меняется, пользователи подключаются по-старому.
Файлы базы остаются со старыми именами
MODIFY NAME меняет только имя базы. Физические файлы buh_old.mdf и buh_old_log.ldf и логические имена файлов остаются прежними. Для 1С это неважно. Если порядок на диске нужен, логические имена меняют так:
ALTER DATABASE [buh_romashka] MODIFY FILE (NAME = N'buh_old', NEWNAME = N'buh_romashka');
ALTER DATABASE [buh_romashka] MODIFY FILE (NAME = N'buh_old_log', NEWNAME = N'buh_romashka_log');
Физические файлы переименовывают отдельно: перевести базу в OFFLINE, переименовать файлы на диске, указать новые пути через MODIFY FILE (NAME = ..., FILENAME = '...'), вернуть базу в ONLINE. Это делают в то же окно обслуживания и только при свежем бэкапе.
Переименование базы в PostgreSQL и других СУБД
В PostgreSQL база переименовывается одной командой, но с двумя условиями: к ней не должно быть ни одного подключения, а выполнять команду нужно, будучи подключённым к другой базе (например, postgres). Право есть у владельца базы с атрибутом CREATEDB и у суперпользователя.
Порядок:
- В консоли кластера 1С включите блокировку начала сеансов для ИБ.
- Подключитесь к базе
postgresчерезpsqlили pgAdmin. - Завершите оставшиеся соединения и переименуйте базу:
SELECT pg_terminate_backend(pid)
FROM pg_stat_activity
WHERE datname = 'buh_old' AND pid <> pg_backend_pid();
ALTER DATABASE buh_old RENAME TO buh_romashka;
- В свойствах ИБ в консоли кластера 1С укажите новое имя базы данных.
PostgreSQL приводит имена без кавычек к нижнему регистру. Если база создана с заглавными буквами (Buh_Old), имя в команде берите в двойные кавычки: ALTER DATABASE "Buh_Old" RENAME TO buh_romashka;. Новое имя проще сразу задать строчными латинскими буквами.
Для IBM Db2 и Oracle, которые 1С тоже поддерживает, логика та же: переименование средствами СУБД, затем новое имя в свойствах ИБ. Альтернатива — создать базу с нужным именем и загрузить в неё выгрузку .dt.
Альтернатива, когда переименование не проходит
Если прав на переименование нет или СУБД его не позволяет, сделайте копию под новым именем:
| Способ | Когда подходит | Риски |
|---|---|---|
| Бэкап СУБД и восстановление под новым именем | база большая, нужен быстрый перенос | старая база остаётся, её легко перепутать |
Выгрузка .dt и загрузка в новую ИБ | смена СУБД или сервера заодно | на базе в десятки гигабайт загрузка идёт часами |
| Новая регистрация на ту же базу СУБД | меняется только имя ИБ в кластере | забыть перенести настройки кластера |
После проверки копии старую базу удаляйте не сразу: подержите её неделю-две недоступной для пользователей.
Как обновить список баз, ярлыки и всё, что ссылается на старое имя
Это раздел, о котором забывают. После смены каталога или имени ИБ пройдитесь по всем местам, где записано старое подключение.
Список баз у пользователей
Список хранится в файле %APPDATA%\1C\1CEStart\ibases.v8i. Это текстовый файл, каждая база в нём — секция:
[Бухгалтерия Ромашка]
Connect=Srvr="srv1c";Ref="buh_romashka";
ID=3f1c2a8e-5b7d-4c1e-9a0f-2d6e8b4c7a11
Folder=/
Имя в квадратных скобках — то, что видно в окне запуска. Connect — путь к файловой базе (File="D:\Bases\Buh_OOO_Romashka";) или сервер и имя ИБ. Файл можно поправить блокнотом при закрытой 1С и разослать пользователям.
Удобнее завести общий список: положить .v8i в сетевую папку и указать его в настройках окна запуска (кнопка Настройка… → список адресов общих информационных баз). Тогда при следующем переименовании правится один файл.
Что ещё проверить
- 🖥️ Ярлыки и bat-файлы с параметрами запуска
/F"путь"или/S"сервер\имя". - 💾 Скрипты резервного копирования и задачи в планировщике Windows.
- 🌐 Веб-публикацию: в файле
default.vrdатрибутibсодержит строку подключения со старым именем. Переопубликуйте базу через Конфигуратор или поправьте файл. - 🔄 Обмены и интеграции, где база-приёмник указана строкой подключения: COM-соединение, внешние источники, сервисы на сторонней стороне.
- 📊 Внешние обработки и отчёты, которые подключаются к другой базе по имени.
- 🛡️ Мониторинг и системы обслуживания SQL (планы обслуживания, задания агента), если меняли имя базы в СУБД.
Проверка базы 1С после переименования
При первом запуске после смены каталога или имени ИБ типовая конфигурация на БСП может сообщить, что информационная база перемещена или восстановлена из копии, и заблокировать работу с внешними ресурсами: обмены, отправку почты, регламентные задания. Это защита от того, чтобы тестовая копия не начала отправлять отчётность и письма от имени рабочей базы.
Если вы переименовали рабочую базу, в этом окне подтвердите, что база перемещена, а не скопирована. Если это копия, выберите вариант про копию: внешние ресурсы останутся заблокированы.
Если база не открывается, сверьте сообщение:
- Ошибка о том, что файл базы не найден, — в списке баз старый путь к каталогу, или файл
1Cv8.1CDслучайно переименовали. - Сообщение, что информационная база не обнаружена, — в строке подключения старое имя ИБ, а регистрации с таким именем в кластере уже нет.
- Ошибка СУБД о невозможности открыть базу — в свойствах ИБ в консоли кластера осталось старое имя базы данных или неверный пользователь СУБД.
Если что-то пошло не так и времени на поиск нет, вернуть всё обратно быстро: переименуйте каталог или базу в СУБД в прежнее имя, восстановите параметры ИБ из записанных на этапе подготовки. Данные при правильном порядке действий не теряются.